X-Git-Url: https://defiant.homedns.org/gitweb/?p=ros_wild_thumper.git;a=blobdiff_plain;f=avr%2Fmotor_ctrl%2Fmain.c;h=f8a5c34b95fbb81eebca2a3e7ea923610e661c19;hp=2713674b951e8a8f2cd6b0c0fe28812a3bbc43a7;hb=7eb812cb0e80682d3266da4edac105c288f6ef16;hpb=cd1512dc132f9069479bff8e73a8adabbca9ddf0 diff --git a/avr/motor_ctrl/main.c b/avr/motor_ctrl/main.c index 2713674..f8a5c34 100644 --- a/avr/motor_ctrl/main.c +++ b/avr/motor_ctrl/main.c @@ -87,6 +87,8 @@ * 0x91 Motor 2 switch * 0x92 Motor 3 switch * 0x93 Motor 4 switch + * 0x94 Front Handicap + * 0x95 Aft Handicap * free * 0xA0 Reset reason * 0xA1 TLE Error status @@ -156,6 +158,8 @@ static volatile ufloat_t angle={0.0}; static volatile float cur_speed_lin=0; static volatile float cur_speed_rot=0; static volatile uint8_t count_test=0; +static volatile uint8_t front_handicap=0; +static volatile uint8_t aft_handicap=0; ISR(TWI_vect) { @@ -340,6 +344,14 @@ ISR(TWI_vect) motor4_switch = TWDR; TWI_ACK; break; + case 0x94: // Front Handicap + front_handicap = TWDR; + TWI_ACK; + break; + case 0x95: // Aft Handicap + aft_handicap = TWDR; + TWI_ACK; + break; case 0xff: // bootloader bootloader = TWDR; default: @@ -948,10 +960,10 @@ int main(void) { speed_wish_left*=STEP_PER_M; speed_wish_right*=STEP_PER_M; - speed1_wish = speed_wish_left; - speed2_wish = speed_wish_left; - speed3_wish = speed_wish_right; - speed4_wish = speed_wish_right; + speed1_wish = speed_wish_left * (100-aft_handicap)/100.0; + speed2_wish = speed_wish_left * (100-front_handicap)/100.0; + speed3_wish = speed_wish_right * (100-front_handicap)/100.0; + speed4_wish = speed_wish_right * (100-aft_handicap)/100.0; motor1_mode = MOTOR_PID; motor2_mode = MOTOR_PID; motor3_mode = MOTOR_PID;