if(cnt_IRC_pusher >= match_IRC_pusher){
sbit(flags, PUSHER_ON_POS);//stop motors, set flag position OK
move_pusher(ENGINE_FW, 0);// stop moving
- act_position_pusher = cnt_IRC_pusher;
+ if(pusher_dir == ENGINE_FW)
+ act_position_pusher += cnt_IRC_pusher;
+ else
+ act_position_pusher -= cnt_IRC_pusher;
fsm->current_state = &stop_pusher;//set new state
}// pozooor druha jednotka
#include "def.h"
+unsigned char pusher_dir, last_pusher_dir;
+volatile unsigned int act_position_pusher, last_position_pusher, req_position_pusher;
+unsigned volatile int match_IRC_pusher, cnt_IRC_pusher; //register which cnt_IRC will be compared with
+volatile uint32_t can_req_position_pusher;
+
+
+
//************************************************************************************
//******************** declaration of interrupt service rutines **********************
//************************************************************************************
-unsigned char pusher_dir;
-volatile unsigned int act_position_pusher, last_position_pusher, req_position_pusher;
-unsigned volatile int match_IRC_pusher, cnt_IRC_pusher; //register which cnt_IRC will be compared with
-volatile uint32_t can_req_position_pusher;
-
+
#endif /*__PUSHER_H*/