Firmware for an Android accessory electric bicycle. See http://www.danielcasner.org/tag/ebike/ for some more information on my build.
Dependencies: AndroidAccessory mbed
Diff: main.cpp
- Revision:
- 2:e2c3c7340fb3
- Parent:
- 1:be88f22fc412
- Child:
- 3:dc564aaf8a81
--- a/main.cpp Sat Aug 11 21:20:13 2012 +0000 +++ b/main.cpp Mon Aug 20 05:18:03 2012 +0000 @@ -1,10 +1,14 @@ #include "mbed.h" #include "AndroidAccessory.h" +#include "throttle.h" -DigitalOut led1(LED1); -DigitalOut led2(LED2); -DigitalOut led3(LED3); -DigitalOut led4(LED4); +DigitalOut l_running(LED1); +DigitalOut l_cruise(LED2); +DigitalOut l_error(LED3); +DigitalOut l_debug(LED4); + +AnalogIn break_l(p19); +AnalogIn break_r(p20); static const size_t OUTL=61; static const size_t INBL=61; @@ -20,19 +24,27 @@ private: void onTick(); + void throttleTick(); char buffer[OUTL]; int bcount; + unsigned int blink_counter; Ticker tick; Timeout n; + Throttle* thr; + float I, v_f, v_r, cadence; }; DroidCycleMbed::DroidCycleMbed() : AndroidAccessory(INBL, OUTL, - "DC Labs", - "DroidCycle", - "Android E-Bike controller interface", - "0.1", - "http://www.danielcasner.org", - "0000000123456789") { + "DC Labs", + "DroidCycle", + "Android E-Bike controller interface", + "0.1", + "http://www.danielcasner.org", + "0000000123456789"), + bcount(0), + blink_counter(0), + thr(NULL) { + thr = Throttle::getThrottle(&I, &v_f, &v_r, &cadence, &break_l, &break_r); tick.attach(this, &DroidCycleMbed::onTick, 0.010); } @@ -57,14 +69,17 @@ void DroidCycleMbed::onTick() { - + blink_counter++; + if (blink_counter < 10) l_running = 1; + else if (blink_counter < 100) l_running = 0; + else blink_counter = 0; } int main() { - while(1) { - led1 = 1; - wait(0.2); - led1 = 0; - wait(0.2); + DroidCycleMbed instance; + + USBInit(); + while (1) { + USBLoop(); } }