Page 689 - 2
P. 689

float speed_pos = 0;
            float speed_x = 0;
            float speed_y = 0;
            int X_DIR=0;
            int Y_DIR=0;


            // Timer 0 output compare interrupt service routine
            interrupt [TIM0_COMP] void timer0_comp_isr(void)
            {
                if(speed_x < -0.5 || speed_x > 0.5){
                X_A4988_DIR = X_DIR;
                X_A4988_STEP = !X_A4988_STEP; }
            }
            // Timer2 output compare interrupt service routine
            interrupt [TIM2_COMP] void timer2_comp_isr(void)
            {
                if(speed_y < -0.5 || speed_y > 0.5){
                Y_A4988_DIR = Y_DIR;
                Y_A4988_STEP = !Y_A4988_STEP; }
            }


            void button()
            {
                if(data0 == 'L') {PORTG=0x01;}
                else if(data0 == 'R') {PORTG=0x02;}
                else {PORTG=0x03;}


                if(data0 == 'l') speed_x += 0.01;
                else if(speed_x > 0) speed_x -= 0.01;
                if(data0 == 'r') speed_x -= 0.01;
                else if(speed_x < 0) speed_x += 0.01;


                if(data0 == 'u') speed_y += 0.01;
                else if(speed_y > 0) speed_y -= 0.01;
                if(data0 == 'd') speed_y -= 0.01;
                else if(speed_y < 0) speed_y += 0.01;


                if(speed_x>500) speed_x=500;
                if(speed_x<-500) speed_x=-500;
                if(speed_y>500) speed_y=500;
                if(speed_y<-500) speed_y=-500;
            }
            void init_pwm()
            {
                // Timer/Counter 0 initialization


                                                         - 689 -
   684   685   686   687   688   689   690   691   692   693   694