Firmware for an Android accessory electric bicycle. See http://www.danielcasner.org/tag/ebike/ for some more information on my build.

Dependencies:   AndroidAccessory mbed

Committer:
DanielC
Date:
Sat Aug 11 21:10:31 2012 +0000
Revision:
0:220280db0a7b
Child:
1:be88f22fc412
Start of a structure.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
DanielC 0:220280db0a7b 1 #include "mbed.h"
DanielC 0:220280db0a7b 2 #include "AndroidAccessory.h"
DanielC 0:220280db0a7b 3
DanielC 0:220280db0a7b 4 DigitalOut led1(LED1);
DanielC 0:220280db0a7b 5 DigitalOut led2(LED2);
DanielC 0:220280db0a7b 6 DigitalOut led3(LED3);
DanielC 0:220280db0a7b 7 DigitalOut led4(LED4);
DanielC 0:220280db0a7b 8
DanielC 0:220280db0a7b 9 static const size_t OUTL=61;
DanielC 0:220280db0a7b 10 static const size_t INBL=61;
DanielC 0:220280db0a7b 11
DanielC 0:220280db0a7b 12 class DroidCycleMbed : public AndroidAccessory {
DanielC 0:220280db0a7b 13 public:
DanielC 0:220280db0a7b 14 DroidCycleMbed() : AndroidAccessory(INBL, OUTL,
DanielC 0:220280db0a7b 15 "DC Labs",
DanielC 0:220280db0a7b 16 "DroidCycle",
DanielC 0:220280db0a7b 17 "Android E-Bike controller interface",
DanielC 0:220280db0a7b 18 "0.1",
DanielC 0:220280db0a7b 19 "http://www.danielcasner.org",
DanielC 0:220280db0a7b 20 "0000000012345678") {
DanielC 0:220280db0a7b 21 tick.attach(this, &DroidCycleMbed::onTick, 0.010);
DanielC 0:220280db0a7b 22 }
DanielC 0:220280db0a7b 23
DanielC 0:220280db0a7b 24 virtual void setupDevice() {
DanielC 0:220280db0a7b 25 virtual void resetDevice();
DanielC 0:220280db0a7b 26 virtual int callbackRead(u8 *buff, int len);
DanielC 0:220280db0a7b 27 virtual int callbackWrite();
DanielC 0:220280db0a7b 28
DanielC 0:220280db0a7b 29 private:
DanielC 0:220280db0a7b 30 void onTick();
DanielC 0:220280db0a7b 31 char buffer[OUTL];
DanielC 0:220280db0a7b 32 int bcount;
DanielC 0:220280db0a7b 33 Ticker tick;
DanielC 0:220280db0a7b 34 Timeout n;
DanielC 0:220280db0a7b 35 };
DanielC 0:220280db0a7b 36
DanielC 0:220280db0a7b 37 void DroidCycleMbed::setupDevice() {
DanielC 0:220280db0a7b 38 for (int i=0; i<OUTL; i++) buffer[i] = 0;
DanielC 0:220280db0a7b 39 bcount = 0;
DanielC 0:220280db0a7b 40 }
DanielC 0:220280db0a7b 41
DanielC 0:220280db0a7b 42 void DroidCycleMbed::resetDevice() {
DanielC 0:220280db0a7b 43 setupDevice();
DanielC 0:220280db0a7b 44 }
DanielC 0:220280db0a7b 45
DanielC 0:220280db0a7b 46 int DroidCycleMbed::callbackRead(u8 *buf, int len) {
DanielC 0:220280db0a7b 47 for (int i=0; i<INBL; i++) buf[i] = 0;
DanielC 0:220280db0a7b 48
DanielC 0:220280db0a7b 49 return 0;
DanielC 0:220280db0a7b 50 }
DanielC 0:220280db0a7b 51
DanielC 0:220280db0a7b 52 int DroidCycleMbed::callbackWrite() {
DanielC 0:220280db0a7b 53 return false;
DanielC 0:220280db0a7b 54 }
DanielC 0:220280db0a7b 55
DanielC 0:220280db0a7b 56
DanielC 0:220280db0a7b 57 void DroidCycleMbed::onTick() {
DanielC 0:220280db0a7b 58
DanielC 0:220280db0a7b 59 }
DanielC 0:220280db0a7b 60
DanielC 0:220280db0a7b 61 int main() {
DanielC 0:220280db0a7b 62 while(1) {
DanielC 0:220280db0a7b 63 myled = 1;
DanielC 0:220280db0a7b 64 wait(0.2);
DanielC 0:220280db0a7b 65 myled = 0;
DanielC 0:220280db0a7b 66 wait(0.2);
DanielC 0:220280db0a7b 67 }
DanielC 0:220280db0a7b 68 }