void sched_init(void) { /* timer 1 interrupt init */ sched_int = 0; TIMSK1 = BV(OCIE1A); TCCR1B = BV(CS11) | BV(WGM12); /* clk/8, Clear Timer on Compare Match (OCR1A) */ OCR1A = INT1_CNT; PB_OUT (FLIPBIT_DDR, FLIPBIT); /* set flipbit as output */ }
void motor_init(void) { TCCR0A = BV(WGM00)|BV(WGM01); /* 10 bit phase correct PWM */ TCCR0B = BV(CS00); /* prescaler clk_io/1 works for 16 MHz */ /* left motor */ PB_OUT (M_L_C_DDR, M_L_C); /* set pin connected to L298 in3 as output */ PB_OUT (M_L_D_DDR, M_L_D); /* set pin connected to L298 in4 as output */ PB_OUT (M_L_DDR, M_L); /* set pin connected to L298 Enable B (PWM 0A) as output */ M_L_PWM_OFF; prop_set_l = 0; /* right motor */ PB_OUT (M_R_C_DDR, M_R_C); /* set pin connected to L298 in1 as output */ PB_OUT (M_R_D_DDR, M_R_D); /* set pin connected to L298 in2 as output */ PB_OUT (M_R_DDR, M_R); /* set pin connected to L298 Enable A (PWM 0B) as output */ M_R_PWM_OFF; prop_set_r = 0; }