Interface layer for the mbed boards ready for the JAVA library
Dependencies: C12832 LM75B MMA7660 mbed FXOS8700Q
Fork of frdm_serial by
main.cpp@3:990f8380da21, 2015-11-24 (annotated)
- Committer:
- Condo2k4
- Date:
- Tue Nov 24 20:30:53 2015 +0000
- Revision:
- 3:990f8380da21
- Parent:
- 2:2dcdbb85cae0
- Child:
- 4:39e949908fc5
setBoardLED, setShieldLED (red+green), printLCDText, interrupts & getTemp working features.; ; To do/test: shield led blue, magno, accel(s), pots, button state
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
azazeal88 | 1:38f32fc3db2c | 1 | #include "mbed.h" |
co657_mjrb6 | 0:6891aea05ef2 | 2 | #include "C12832.h" |
co657_mjrb6 | 0:6891aea05ef2 | 3 | #include "LM75B.h" |
azazeal88 | 1:38f32fc3db2c | 4 | #include "MMA7660.h" |
azazeal88 | 1:38f32fc3db2c | 5 | #include "FXOS8700CQ.h" |
azazeal88 | 1:38f32fc3db2c | 6 | |
azazeal88 | 1:38f32fc3db2c | 7 | //OUTPUTS |
azazeal88 | 1:38f32fc3db2c | 8 | |
Condo2k4 | 3:990f8380da21 | 9 | DigitalOut lr(PTB22), lg(PTE26), lb(PTB21); |
Condo2k4 | 3:990f8380da21 | 10 | PwmOut xr(D5), xg(D9), xb(D8); |
azazeal88 | 1:38f32fc3db2c | 11 | C12832 lcd(D11, D13, D12, D7, D10); |
co657_mjrb6 | 0:6891aea05ef2 | 12 | |
azazeal88 | 1:38f32fc3db2c | 13 | //INPUTS |
azazeal88 | 1:38f32fc3db2c | 14 | |
azazeal88 | 1:38f32fc3db2c | 15 | LM75B temp(D14, D15); |
Condo2k4 | 2:2dcdbb85cae0 | 16 | MMA7660 accel(D14, D15); |
Condo2k4 | 2:2dcdbb85cae0 | 17 | FXOS8700CQ magAccel(D14, D15, FXOS8700CQ_SLAVE_ADDR1); |
azazeal88 | 1:38f32fc3db2c | 18 | |
Condo2k4 | 3:990f8380da21 | 19 | InterruptIn sw2_int(SW2), sw3_int(SW3), up_int(A2), down_int(A3), left_int(A4), right_int(A5), fire_int(D4); |
Condo2k4 | 3:990f8380da21 | 20 | DigitalIn sw2(SW2), sw3(SW3), up(A2), down(A3), left(A4), right(A5), fire(D4); |
azazeal88 | 1:38f32fc3db2c | 21 | |
azazeal88 | 1:38f32fc3db2c | 22 | AnalogIn pot1(A0), pot2(A1); |
co657_mjrb6 | 0:6891aea05ef2 | 23 | |
Condo2k4 | 3:990f8380da21 | 24 | //INTERRUPT FLAGS |
co657_mjrb6 | 0:6891aea05ef2 | 25 | |
azazeal88 | 1:38f32fc3db2c | 26 | uint16_t flags; |
azazeal88 | 1:38f32fc3db2c | 27 | #define SW2_DOWN 0x0001 |
azazeal88 | 1:38f32fc3db2c | 28 | #define SW2_UP 0x0002 |
azazeal88 | 1:38f32fc3db2c | 29 | #define SW3_UP 0x0004 |
azazeal88 | 1:38f32fc3db2c | 30 | #define SW3_DOWN 0x0008 |
azazeal88 | 1:38f32fc3db2c | 31 | #define UP_UP 0x0010 |
azazeal88 | 1:38f32fc3db2c | 32 | #define UP_DOWN 0x0020 |
azazeal88 | 1:38f32fc3db2c | 33 | #define DOWN_UP 0x0040 |
azazeal88 | 1:38f32fc3db2c | 34 | #define DOWN_DOWN 0x0080 |
azazeal88 | 1:38f32fc3db2c | 35 | #define LEFT_UP 0x0100 |
azazeal88 | 1:38f32fc3db2c | 36 | #define LEFT_DOWN 0x0200 |
azazeal88 | 1:38f32fc3db2c | 37 | #define RIGHT_UP 0x0400 |
azazeal88 | 1:38f32fc3db2c | 38 | #define RIGHT_DOWN 0x0800 |
azazeal88 | 1:38f32fc3db2c | 39 | #define FIRE_UP 0x1000 |
azazeal88 | 1:38f32fc3db2c | 40 | #define FIRE_DOWN 0x2000 |
co657_mjrb6 | 0:6891aea05ef2 | 41 | |
azazeal88 | 1:38f32fc3db2c | 42 | //COMMS |
co657_mjrb6 | 0:6891aea05ef2 | 43 | |
co657_mjrb6 | 0:6891aea05ef2 | 44 | Serial pc(USBTX, USBRX); |
co657_mjrb6 | 0:6891aea05ef2 | 45 | |
Condo2k4 | 2:2dcdbb85cae0 | 46 | //INTERRUPT HANDLERS |
Condo2k4 | 2:2dcdbb85cae0 | 47 | |
azazeal88 | 1:38f32fc3db2c | 48 | void sw2Down(){ flags |= SW2_DOWN; } |
azazeal88 | 1:38f32fc3db2c | 49 | void sw2Up() { flags |= SW2_UP; } |
azazeal88 | 1:38f32fc3db2c | 50 | |
azazeal88 | 1:38f32fc3db2c | 51 | void sw3Down(){ flags |= SW3_DOWN; } |
azazeal88 | 1:38f32fc3db2c | 52 | void sw3Up() { flags |= SW3_UP; } |
azazeal88 | 1:38f32fc3db2c | 53 | |
azazeal88 | 1:38f32fc3db2c | 54 | void upDown(){ flags |= UP_DOWN; } |
azazeal88 | 1:38f32fc3db2c | 55 | void upUp() { flags |= UP_UP; } |
azazeal88 | 1:38f32fc3db2c | 56 | |
azazeal88 | 1:38f32fc3db2c | 57 | void downDown(){ flags |= DOWN_DOWN; } |
azazeal88 | 1:38f32fc3db2c | 58 | void downUp() { flags |= DOWN_UP; } |
azazeal88 | 1:38f32fc3db2c | 59 | |
azazeal88 | 1:38f32fc3db2c | 60 | void leftDown(){ flags |= LEFT_DOWN; } |
azazeal88 | 1:38f32fc3db2c | 61 | void leftUp() { flags |= LEFT_UP; } |
azazeal88 | 1:38f32fc3db2c | 62 | |
azazeal88 | 1:38f32fc3db2c | 63 | void rightDown(){ flags |= RIGHT_DOWN; } |
azazeal88 | 1:38f32fc3db2c | 64 | void rightUp() { flags |= RIGHT_UP; } |
azazeal88 | 1:38f32fc3db2c | 65 | |
azazeal88 | 1:38f32fc3db2c | 66 | void fireDown(){ flags |= FIRE_DOWN; } |
azazeal88 | 1:38f32fc3db2c | 67 | void fireUp() { flags |= FIRE_UP; } |
azazeal88 | 1:38f32fc3db2c | 68 | |
Condo2k4 | 2:2dcdbb85cae0 | 69 | /* |
Condo2k4 | 2:2dcdbb85cae0 | 70 | Return the state of a requested pin |
Condo2k4 | 2:2dcdbb85cae0 | 71 | */ |
azazeal88 | 1:38f32fc3db2c | 72 | void readDigitalIn() { |
azazeal88 | 1:38f32fc3db2c | 73 | bool val; |
azazeal88 | 1:38f32fc3db2c | 74 | switch(pc.getc()) { |
azazeal88 | 1:38f32fc3db2c | 75 | case '2': val=sw2; break; |
Condo2k4 | 2:2dcdbb85cae0 | 76 | case '3': val=sw3; break; |
azazeal88 | 1:38f32fc3db2c | 77 | case 'u': val=up; break; |
azazeal88 | 1:38f32fc3db2c | 78 | case 'd': val=down; break; |
azazeal88 | 1:38f32fc3db2c | 79 | case 'l': val=left; break; |
azazeal88 | 1:38f32fc3db2c | 80 | case 'r': val=right; break; |
azazeal88 | 1:38f32fc3db2c | 81 | case 'f': val=fire; break; |
azazeal88 | 1:38f32fc3db2c | 82 | default: return; |
co657_mjrb6 | 0:6891aea05ef2 | 83 | } |
azazeal88 | 1:38f32fc3db2c | 84 | pc.printf(val?"t;":"f;"); |
co657_mjrb6 | 0:6891aea05ef2 | 85 | } |
co657_mjrb6 | 0:6891aea05ef2 | 86 | |
Condo2k4 | 2:2dcdbb85cae0 | 87 | /* |
Condo2k4 | 2:2dcdbb85cae0 | 88 | Return the state of a requested potentiometer |
Condo2k4 | 2:2dcdbb85cae0 | 89 | */ |
azazeal88 | 1:38f32fc3db2c | 90 | void readPot() { |
azazeal88 | 1:38f32fc3db2c | 91 | float val; |
azazeal88 | 1:38f32fc3db2c | 92 | switch(pc.getc()) { |
azazeal88 | 1:38f32fc3db2c | 93 | case '1': val=pot1; break; |
azazeal88 | 1:38f32fc3db2c | 94 | case '2': val=pot2; break; |
azazeal88 | 1:38f32fc3db2c | 95 | default: return; |
azazeal88 | 1:38f32fc3db2c | 96 | } |
azazeal88 | 1:38f32fc3db2c | 97 | pc.printf("%6.4f;",val); |
co657_mjrb6 | 0:6891aea05ef2 | 98 | } |
co657_mjrb6 | 0:6891aea05ef2 | 99 | |
Condo2k4 | 3:990f8380da21 | 100 | //BLOCK LEVEL READ & WRITE |
Condo2k4 | 3:990f8380da21 | 101 | |
Condo2k4 | 3:990f8380da21 | 102 | void sendData(void* data, int len) { |
Condo2k4 | 3:990f8380da21 | 103 | for(char* c = (char*)data;len--;) |
Condo2k4 | 3:990f8380da21 | 104 | pc.putc(*(c++)); |
Condo2k4 | 3:990f8380da21 | 105 | } |
Condo2k4 | 3:990f8380da21 | 106 | |
Condo2k4 | 3:990f8380da21 | 107 | void readData(void* data, int len) { |
Condo2k4 | 3:990f8380da21 | 108 | char* c = (char*)data; |
Condo2k4 | 3:990f8380da21 | 109 | while(len>0) { |
Condo2k4 | 3:990f8380da21 | 110 | *c = pc.getc(); |
Condo2k4 | 3:990f8380da21 | 111 | c++; |
Condo2k4 | 3:990f8380da21 | 112 | len--; |
Condo2k4 | 3:990f8380da21 | 113 | } |
Condo2k4 | 3:990f8380da21 | 114 | } |
Condo2k4 | 3:990f8380da21 | 115 | |
Condo2k4 | 3:990f8380da21 | 116 | //PRETTY WAITING LEDS (Modified from Fred Barnes) |
Condo2k4 | 3:990f8380da21 | 117 | |
Condo2k4 | 3:990f8380da21 | 118 | Ticker waitTicker; |
Condo2k4 | 3:990f8380da21 | 119 | int ctr; |
Condo2k4 | 3:990f8380da21 | 120 | |
Condo2k4 | 3:990f8380da21 | 121 | uint8_t brilvl(int offset) { |
Condo2k4 | 3:990f8380da21 | 122 | if(offset>311) offset-=312; |
Condo2k4 | 3:990f8380da21 | 123 | if (offset < 52) return (uint8_t)(offset * 5); |
Condo2k4 | 3:990f8380da21 | 124 | if (offset < 156) return 255; |
Condo2k4 | 3:990f8380da21 | 125 | if (offset < 208) return (uint8_t)((207 - offset) * 5); |
Condo2k4 | 3:990f8380da21 | 126 | return 0; |
Condo2k4 | 3:990f8380da21 | 127 | } |
Condo2k4 | 3:990f8380da21 | 128 | |
Condo2k4 | 3:990f8380da21 | 129 | void waitTick() { |
Condo2k4 | 3:990f8380da21 | 130 | ctr++;// |
Condo2k4 | 3:990f8380da21 | 131 | // if (ctr > 311) { |
Condo2k4 | 3:990f8380da21 | 132 | // ctr -= 312; |
Condo2k4 | 3:990f8380da21 | 133 | // } |
Condo2k4 | 3:990f8380da21 | 134 | // xr = brilvl( ctr )/255.0; |
Condo2k4 | 3:990f8380da21 | 135 | // xg = brilvl(ctr+104)/255.0; |
Condo2k4 | 3:990f8380da21 | 136 | // xb = brilvl(ctr+208)/255.0; |
Condo2k4 | 3:990f8380da21 | 137 | xr = 1; |
Condo2k4 | 3:990f8380da21 | 138 | xg = 1; |
Condo2k4 | 3:990f8380da21 | 139 | xb = 0; |
Condo2k4 | 3:990f8380da21 | 140 | } |
Condo2k4 | 3:990f8380da21 | 141 | |
Condo2k4 | 3:990f8380da21 | 142 | void cleanup() { |
Condo2k4 | 3:990f8380da21 | 143 | lr = lg = lb = 1; |
Condo2k4 | 3:990f8380da21 | 144 | xr = xg = xb = 1; |
Condo2k4 | 3:990f8380da21 | 145 | temp.read(); |
Condo2k4 | 3:990f8380da21 | 146 | lcd.cls(); |
Condo2k4 | 3:990f8380da21 | 147 | pc.putc('+'); |
Condo2k4 | 3:990f8380da21 | 148 | } |
Condo2k4 | 3:990f8380da21 | 149 | |
Condo2k4 | 3:990f8380da21 | 150 | int main() { |
azazeal88 | 1:38f32fc3db2c | 151 | //SETUP |
Condo2k4 | 3:990f8380da21 | 152 | pc.baud(9600); |
azazeal88 | 1:38f32fc3db2c | 153 | |
Condo2k4 | 3:990f8380da21 | 154 | lr = lg = lb = 1; |
co657_mjrb6 | 0:6891aea05ef2 | 155 | |
co657_mjrb6 | 0:6891aea05ef2 | 156 | sw2_int.mode (PullUp); |
co657_mjrb6 | 0:6891aea05ef2 | 157 | sw2_int.fall(&sw2Down); |
co657_mjrb6 | 0:6891aea05ef2 | 158 | sw2_int.rise(&sw2Up); |
co657_mjrb6 | 0:6891aea05ef2 | 159 | |
co657_mjrb6 | 0:6891aea05ef2 | 160 | sw3_int.mode (PullUp); |
co657_mjrb6 | 0:6891aea05ef2 | 161 | sw3_int.fall(&sw3Down); |
co657_mjrb6 | 0:6891aea05ef2 | 162 | sw3_int.rise(&sw3Up); |
co657_mjrb6 | 0:6891aea05ef2 | 163 | |
azazeal88 | 1:38f32fc3db2c | 164 | up_int.mode (PullUp); |
azazeal88 | 1:38f32fc3db2c | 165 | up_int.fall(&upDown); |
azazeal88 | 1:38f32fc3db2c | 166 | up_int.rise(&upUp); |
azazeal88 | 1:38f32fc3db2c | 167 | up_int.disable_irq(); |
azazeal88 | 1:38f32fc3db2c | 168 | |
azazeal88 | 1:38f32fc3db2c | 169 | down_int.mode (PullUp); |
azazeal88 | 1:38f32fc3db2c | 170 | down_int.fall(&downDown); |
azazeal88 | 1:38f32fc3db2c | 171 | down_int.rise(&downUp); |
azazeal88 | 1:38f32fc3db2c | 172 | |
azazeal88 | 1:38f32fc3db2c | 173 | left_int.mode (PullUp); |
azazeal88 | 1:38f32fc3db2c | 174 | left_int.fall(&leftDown); |
azazeal88 | 1:38f32fc3db2c | 175 | left_int.rise(&leftUp); |
azazeal88 | 1:38f32fc3db2c | 176 | |
azazeal88 | 1:38f32fc3db2c | 177 | right_int.mode (PullUp); |
azazeal88 | 1:38f32fc3db2c | 178 | right_int.fall(&rightDown); |
azazeal88 | 1:38f32fc3db2c | 179 | right_int.rise(&rightUp); |
azazeal88 | 1:38f32fc3db2c | 180 | |
azazeal88 | 1:38f32fc3db2c | 181 | fire_int.mode (PullUp); |
azazeal88 | 1:38f32fc3db2c | 182 | fire_int.fall(&fireDown); |
azazeal88 | 1:38f32fc3db2c | 183 | fire_int.rise(&fireUp); |
co657_mjrb6 | 0:6891aea05ef2 | 184 | |
Condo2k4 | 3:990f8380da21 | 185 | //Pretty wait |
Condo2k4 | 3:990f8380da21 | 186 | ctr=0; |
Condo2k4 | 3:990f8380da21 | 187 | lcd.locate(0,0); |
Condo2k4 | 3:990f8380da21 | 188 | lcd.printf("Awaiting connection..."); |
Condo2k4 | 3:990f8380da21 | 189 | waitTicker.attach(&waitTick,0.02); |
Condo2k4 | 3:990f8380da21 | 190 | while(pc.getc()!='-'); |
Condo2k4 | 3:990f8380da21 | 191 | waitTicker.detach(); |
Condo2k4 | 3:990f8380da21 | 192 | cleanup(); |
Condo2k4 | 3:990f8380da21 | 193 | |
Condo2k4 | 3:990f8380da21 | 194 | union { |
Condo2k4 | 3:990f8380da21 | 195 | float f; |
Condo2k4 | 3:990f8380da21 | 196 | int i; |
Condo2k4 | 3:990f8380da21 | 197 | char c[4]; |
Condo2k4 | 3:990f8380da21 | 198 | } val; |
azazeal88 | 1:38f32fc3db2c | 199 | |
azazeal88 | 1:38f32fc3db2c | 200 | for(;;) { |
Condo2k4 | 2:2dcdbb85cae0 | 201 | //Check if any interrupts fired |
azazeal88 | 1:38f32fc3db2c | 202 | if(flags&SW2_UP) { |
Condo2k4 | 3:990f8380da21 | 203 | flags&=!SW2_UP; |
Condo2k4 | 3:990f8380da21 | 204 | pc.printf("!2u"); |
azazeal88 | 1:38f32fc3db2c | 205 | } |
azazeal88 | 1:38f32fc3db2c | 206 | if(flags&SW2_DOWN) { |
Condo2k4 | 3:990f8380da21 | 207 | flags&=!SW2_DOWN; |
Condo2k4 | 3:990f8380da21 | 208 | pc.printf("!2d"); |
azazeal88 | 1:38f32fc3db2c | 209 | } |
azazeal88 | 1:38f32fc3db2c | 210 | if(flags&SW3_UP) { |
Condo2k4 | 3:990f8380da21 | 211 | flags&=!SW3_UP; |
Condo2k4 | 3:990f8380da21 | 212 | pc.printf("!3u"); |
azazeal88 | 1:38f32fc3db2c | 213 | } |
azazeal88 | 1:38f32fc3db2c | 214 | if(flags&SW3_DOWN) { |
Condo2k4 | 3:990f8380da21 | 215 | flags&=!SW3_DOWN; |
Condo2k4 | 3:990f8380da21 | 216 | pc.printf("!3d"); |
azazeal88 | 1:38f32fc3db2c | 217 | } |
azazeal88 | 1:38f32fc3db2c | 218 | if(flags&UP_UP) { |
Condo2k4 | 3:990f8380da21 | 219 | flags&=!UP_UP; |
Condo2k4 | 3:990f8380da21 | 220 | pc.printf("!uu"); |
azazeal88 | 1:38f32fc3db2c | 221 | } |
azazeal88 | 1:38f32fc3db2c | 222 | if(flags&UP_DOWN) { |
Condo2k4 | 3:990f8380da21 | 223 | flags&=!UP_DOWN; |
Condo2k4 | 3:990f8380da21 | 224 | pc.printf("!ud"); |
co657_mjrb6 | 0:6891aea05ef2 | 225 | } |
azazeal88 | 1:38f32fc3db2c | 226 | if(flags&DOWN_UP) { |
Condo2k4 | 3:990f8380da21 | 227 | flags&=!DOWN_UP; |
Condo2k4 | 3:990f8380da21 | 228 | pc.printf("!du"); |
azazeal88 | 1:38f32fc3db2c | 229 | } |
azazeal88 | 1:38f32fc3db2c | 230 | if(flags&DOWN_DOWN) { |
Condo2k4 | 3:990f8380da21 | 231 | flags&=!DOWN_DOWN; |
Condo2k4 | 3:990f8380da21 | 232 | pc.printf("!dd"); |
azazeal88 | 1:38f32fc3db2c | 233 | } |
azazeal88 | 1:38f32fc3db2c | 234 | if(flags&LEFT_UP) { |
Condo2k4 | 3:990f8380da21 | 235 | flags&=!LEFT_UP; |
Condo2k4 | 3:990f8380da21 | 236 | pc.printf("!lu"); |
azazeal88 | 1:38f32fc3db2c | 237 | } |
azazeal88 | 1:38f32fc3db2c | 238 | if(flags&LEFT_DOWN) { |
Condo2k4 | 3:990f8380da21 | 239 | flags&=!LEFT_DOWN; |
Condo2k4 | 3:990f8380da21 | 240 | pc.printf("!ld"); |
co657_mjrb6 | 0:6891aea05ef2 | 241 | } |
azazeal88 | 1:38f32fc3db2c | 242 | if(flags&RIGHT_UP) { |
Condo2k4 | 3:990f8380da21 | 243 | flags&=!RIGHT_UP; |
Condo2k4 | 3:990f8380da21 | 244 | pc.printf("!ru"); |
azazeal88 | 1:38f32fc3db2c | 245 | } |
azazeal88 | 1:38f32fc3db2c | 246 | if(flags&RIGHT_DOWN) { |
Condo2k4 | 3:990f8380da21 | 247 | flags&=!RIGHT_DOWN; |
Condo2k4 | 3:990f8380da21 | 248 | pc.printf("!rd"); |
azazeal88 | 1:38f32fc3db2c | 249 | } |
azazeal88 | 1:38f32fc3db2c | 250 | if(flags&FIRE_UP) { |
Condo2k4 | 3:990f8380da21 | 251 | flags&=!FIRE_UP; |
Condo2k4 | 3:990f8380da21 | 252 | pc.printf("!fu"); |
azazeal88 | 1:38f32fc3db2c | 253 | } |
azazeal88 | 1:38f32fc3db2c | 254 | if(flags&FIRE_DOWN) { |
Condo2k4 | 3:990f8380da21 | 255 | flags&=!FIRE_DOWN; |
Condo2k4 | 3:990f8380da21 | 256 | pc.printf("!fd"); |
co657_mjrb6 | 0:6891aea05ef2 | 257 | } |
azazeal88 | 1:38f32fc3db2c | 258 | |
azazeal88 | 1:38f32fc3db2c | 259 | //Check for host requests |
co657_mjrb6 | 0:6891aea05ef2 | 260 | if(pc.readable()) { |
Condo2k4 | 3:990f8380da21 | 261 | char cmd = pc.getc(); |
Condo2k4 | 3:990f8380da21 | 262 | switch(cmd) { |
azazeal88 | 1:38f32fc3db2c | 263 | case 'R': { //read digital input |
azazeal88 | 1:38f32fc3db2c | 264 | readDigitalIn(); |
azazeal88 | 1:38f32fc3db2c | 265 | break; |
azazeal88 | 1:38f32fc3db2c | 266 | } |
azazeal88 | 1:38f32fc3db2c | 267 | case 'p': { |
azazeal88 | 1:38f32fc3db2c | 268 | readPot(); |
Condo2k4 | 3:990f8380da21 | 269 | break; |
azazeal88 | 1:38f32fc3db2c | 270 | } |
azazeal88 | 1:38f32fc3db2c | 271 | case 't': { //read temp |
Condo2k4 | 3:990f8380da21 | 272 | float t = temp.read(); |
Condo2k4 | 3:990f8380da21 | 273 | sendData(&t,4); |
azazeal88 | 1:38f32fc3db2c | 274 | break; |
azazeal88 | 1:38f32fc3db2c | 275 | } |
azazeal88 | 1:38f32fc3db2c | 276 | case 'a': {//read shield accel |
Condo2k4 | 3:990f8380da21 | 277 | float x, y, z; |
Condo2k4 | 3:990f8380da21 | 278 | x = accel.x(); |
Condo2k4 | 3:990f8380da21 | 279 | y = accel.y(); |
Condo2k4 | 3:990f8380da21 | 280 | z = accel.z(); |
Condo2k4 | 3:990f8380da21 | 281 | sendData(&x,4); |
Condo2k4 | 3:990f8380da21 | 282 | sendData(&y,4); |
Condo2k4 | 3:990f8380da21 | 283 | sendData(&z,4); |
azazeal88 | 1:38f32fc3db2c | 284 | break; |
azazeal88 | 1:38f32fc3db2c | 285 | } |
azazeal88 | 1:38f32fc3db2c | 286 | case 'l': { //shield led |
azazeal88 | 1:38f32fc3db2c | 287 | float r, g, b; |
Condo2k4 | 3:990f8380da21 | 288 | readData(&r,4); |
Condo2k4 | 3:990f8380da21 | 289 | readData(&g,4); |
Condo2k4 | 3:990f8380da21 | 290 | readData(&b,4); |
Condo2k4 | 3:990f8380da21 | 291 | xr = 1.0f-r; xg = 1.0f-g; xb = 1.0f-b; |
azazeal88 | 1:38f32fc3db2c | 292 | break; |
azazeal88 | 1:38f32fc3db2c | 293 | } |
azazeal88 | 1:38f32fc3db2c | 294 | case 'L': { // board led |
Condo2k4 | 3:990f8380da21 | 295 | char raw = pc.getc(); |
Condo2k4 | 3:990f8380da21 | 296 | char r = ((raw>>2)&1)?0:1; |
Condo2k4 | 3:990f8380da21 | 297 | char g = ((raw>>1)&1)?0:1; |
Condo2k4 | 3:990f8380da21 | 298 | char b = (raw&1)?0:1; |
azazeal88 | 1:38f32fc3db2c | 299 | lr = r; lg = g; lb = b; |
azazeal88 | 1:38f32fc3db2c | 300 | break; |
azazeal88 | 1:38f32fc3db2c | 301 | } |
azazeal88 | 1:38f32fc3db2c | 302 | case 'M': { //read board magno |
azazeal88 | 1:38f32fc3db2c | 303 | SRAWDATA m, a; |
azazeal88 | 1:38f32fc3db2c | 304 | magAccel.get_data(&a,&m); |
Condo2k4 | 3:990f8380da21 | 305 | sendData(&m.x,2); |
Condo2k4 | 3:990f8380da21 | 306 | sendData(&m.y,2); |
Condo2k4 | 3:990f8380da21 | 307 | sendData(&m.z,2); |
azazeal88 | 1:38f32fc3db2c | 308 | break; |
azazeal88 | 1:38f32fc3db2c | 309 | } |
azazeal88 | 1:38f32fc3db2c | 310 | case 'A': { //read board accel |
azazeal88 | 1:38f32fc3db2c | 311 | SRAWDATA m, a; |
azazeal88 | 1:38f32fc3db2c | 312 | magAccel.get_data(&a,&m); |
Condo2k4 | 3:990f8380da21 | 313 | sendData(&a.x,2); |
Condo2k4 | 3:990f8380da21 | 314 | sendData(&a.y,2); |
Condo2k4 | 3:990f8380da21 | 315 | sendData(&a.z,2); |
azazeal88 | 1:38f32fc3db2c | 316 | break; |
azazeal88 | 1:38f32fc3db2c | 317 | } |
azazeal88 | 1:38f32fc3db2c | 318 | case 'P': { //set lcd position |
Condo2k4 | 3:990f8380da21 | 319 | unsigned char x, y; |
Condo2k4 | 3:990f8380da21 | 320 | x = pc.getc(); |
Condo2k4 | 3:990f8380da21 | 321 | y = pc.getc(); |
azazeal88 | 1:38f32fc3db2c | 322 | lcd.locate(x,y); |
Condo2k4 | 3:990f8380da21 | 323 | break; |
azazeal88 | 1:38f32fc3db2c | 324 | } |
azazeal88 | 1:38f32fc3db2c | 325 | case 'S': { //print lcd text |
Condo2k4 | 3:990f8380da21 | 326 | char buff[256]; |
Condo2k4 | 3:990f8380da21 | 327 | unsigned char len = pc.getc(); |
Condo2k4 | 3:990f8380da21 | 328 | char * j= buff; |
Condo2k4 | 3:990f8380da21 | 329 | while(len>0) { |
Condo2k4 | 3:990f8380da21 | 330 | *j++=pc.getc(); |
Condo2k4 | 3:990f8380da21 | 331 | len--; |
azazeal88 | 1:38f32fc3db2c | 332 | } |
Condo2k4 | 3:990f8380da21 | 333 | *j=0; |
Condo2k4 | 3:990f8380da21 | 334 | lcd.printf(buff); |
Condo2k4 | 3:990f8380da21 | 335 | break; |
azazeal88 | 1:38f32fc3db2c | 336 | } |
Condo2k4 | 3:990f8380da21 | 337 | case 'D': { //set lcd pixel |
Condo2k4 | 3:990f8380da21 | 338 | char x = pc.getc(); |
Condo2k4 | 3:990f8380da21 | 339 | char y = pc.getc(); |
Condo2k4 | 3:990f8380da21 | 340 | char c = pc.getc(); |
azazeal88 | 1:38f32fc3db2c | 341 | lcd.pixel(x,y,c); |
Condo2k4 | 3:990f8380da21 | 342 | break; |
azazeal88 | 1:38f32fc3db2c | 343 | } |
azazeal88 | 1:38f32fc3db2c | 344 | case 'C': { //clear lcd |
azazeal88 | 1:38f32fc3db2c | 345 | lcd.cls(); |
Condo2k4 | 3:990f8380da21 | 346 | break; |
Condo2k4 | 3:990f8380da21 | 347 | } |
Condo2k4 | 3:990f8380da21 | 348 | case '-': { //reconnection |
Condo2k4 | 3:990f8380da21 | 349 | cleanup(); break; |
azazeal88 | 1:38f32fc3db2c | 350 | } |
azazeal88 | 1:38f32fc3db2c | 351 | default: break; |
co657_mjrb6 | 0:6891aea05ef2 | 352 | } |
co657_mjrb6 | 0:6891aea05ef2 | 353 | } |
co657_mjrb6 | 0:6891aea05ef2 | 354 | } |
co657_mjrb6 | 0:6891aea05ef2 | 355 | } |