David's dead reckoning code for the LVBots competition on March 6th. Uses the mbed LPC1768, DRV8835, QTR-3RC, and two DC motors with encoders.
Dependencies: PololuEncoder Pacer mbed GeneralDebouncer
Revision 5:01ad080dc4fa, committed 2014-02-20
- Comitter:
- DavidEGrayson
- Date:
- Thu Feb 20 23:30:53 2014 +0000
- Parent:
- 4:1b20a11765c8
- Child:
- 6:89a39870e23d
- Commit message:
- Succeeded in getting high resolution PWM.
Changed in this revision
main.cpp | Show annotated file Show diff for this revision Revisions of this file |
motors.cpp | Show annotated file Show diff for this revision Revisions of this file |
--- a/main.cpp Thu Feb 20 22:59:28 2014 +0000 +++ b/main.cpp Thu Feb 20 23:30:53 2014 +0000 @@ -34,9 +34,9 @@ motors_init(); - motors_speed_set(5, 55); + motors_speed_set(5, 45); - Pacer reportPacer(250000); + Pacer reportPacer(500000); Pacer blinkPacer(200000); uint32_t eventCount = 0; uint32_t count = 0; @@ -63,9 +63,7 @@ if(reportPacer.pace()) { led2 = 1; - char str[80]; - sprintf(str, "%8x %8x %8x\n", encoder1.getCount(), count, eventCount); - pc.puts(str); + pc.printf("%8x\n", LPC_PWM1->MCR); led2 = 0; }
--- a/motors.cpp Thu Feb 20 22:59:28 2014 +0000 +++ b/motors.cpp Thu Feb 20 23:30:53 2014 +0000 @@ -11,10 +11,17 @@ { motor1Pwm.period_us(50); motor2Pwm.period_us(50); + motor1Pwm.pulsewidth_us(20); + motor2Pwm.pulsewidth_us(20); + + LPC_PWM1->MR0 = 1200; // Set the period + LPC_PWM1->MCR = (1 << 1); // Reset PWMTC when it is equal to MR0. + LPC_PWM1->MR1 = 10; + LPC_PWM1->MR3 = 600; } void motors_speed_set(int16_t motor1_speed, int16_t motor2_speed) { - motor1Pwm.pulsewidth_us(motor1_speed); - motor2Pwm.pulsewidth_us(motor2_speed); + //LPC_PWM1->MR0 = motor1_speed; + //LPC_PWM1->MR2 = motor2_speed; }