Firmware development for use with LF21
Dependencies: USBDevice max32630fthr
Fork of FTHR_USB_serial by
main.cpp@11:8a8562282546, 2017-09-26 (annotated)
- Committer:
- nwaskewicz
- Date:
- Tue Sep 26 20:56:05 2017 +0000
- Revision:
- 11:8a8562282546
- Parent:
- 10:aec9f740a325
updated i2c and pwm declarations
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
switches | 0:60a522ae2e35 | 1 | #include "mbed.h" |
switches | 2:57500e991166 | 2 | #include "max32630fthr.h" |
switches | 1:6923b075c8d7 | 3 | #include "USBSerial.h" |
nwaskewicz | 8:e985d3e26b75 | 4 | //#include "string.h" |
switches | 0:60a522ae2e35 | 5 | |
nwaskewicz | 9:3c7f27df0b01 | 6 | #define LF21_I2C_WRITE 0xD2 |
nwaskewicz | 9:3c7f27df0b01 | 7 | #define LF21_I2C_READ 0xD3 |
nwaskewicz | 9:3c7f27df0b01 | 8 | |
switches | 1:6923b075c8d7 | 9 | // Hardware serial port over DAPLink |
switches | 2:57500e991166 | 10 | Serial daplink(P2_1, P2_0); |
switches | 1:6923b075c8d7 | 11 | |
switches | 3:601c11238ccb | 12 | // Virtual serial port over USB |
switches | 3:601c11238ccb | 13 | USBSerial microUSB; |
switches | 3:601c11238ccb | 14 | |
nwaskewicz | 8:e985d3e26b75 | 15 | SPI spi(P5_1, P5_2, P5_0); // mosi, miso, sclk |
nwaskewicz | 11:8a8562282546 | 16 | I2C *i2c; |
nwaskewicz | 8:e985d3e26b75 | 17 | DigitalOut spicsb(P4_0); // spi csb line |
nwaskewicz | 11:8a8562282546 | 18 | PwmOut *pwm; |
nwaskewicz | 8:e985d3e26b75 | 19 | |
nwaskewicz | 8:e985d3e26b75 | 20 | DigitalOut p3_0(P3_0); |
nwaskewicz | 8:e985d3e26b75 | 21 | DigitalOut p3_1(P3_1); |
nwaskewicz | 8:e985d3e26b75 | 22 | DigitalOut p3_2(P3_2); |
nwaskewicz | 8:e985d3e26b75 | 23 | DigitalOut p3_3(P3_3); |
nwaskewicz | 8:e985d3e26b75 | 24 | DigitalOut p5_3(P5_3); |
nwaskewicz | 8:e985d3e26b75 | 25 | DigitalOut p5_4(P5_4); |
nwaskewicz | 8:e985d3e26b75 | 26 | DigitalOut p5_5(P5_5); |
nwaskewicz | 8:e985d3e26b75 | 27 | DigitalOut p5_6(P5_6); |
nwaskewicz | 8:e985d3e26b75 | 28 | |
switches | 2:57500e991166 | 29 | DigitalOut rLED(LED1); |
switches | 2:57500e991166 | 30 | DigitalOut gLED(LED2); |
switches | 2:57500e991166 | 31 | DigitalOut bLED(LED3); |
nwaskewicz | 9:3c7f27df0b01 | 32 | MAX32630FTHR pegasus(MAX32630FTHR::VIO_1V8); |
nwaskewicz | 8:e985d3e26b75 | 33 | |
nwaskewicz | 8:e985d3e26b75 | 34 | int ascii(char a, char b); |
nwaskewicz | 9:3c7f27df0b01 | 35 | int ldo(char a, char b); |
switches | 0:60a522ae2e35 | 36 | |
switches | 0:60a522ae2e35 | 37 | // main() runs in its own thread in the OS |
switches | 0:60a522ae2e35 | 38 | // (note the calls to Thread::wait below for delays) |
switches | 0:60a522ae2e35 | 39 | int main() |
switches | 0:60a522ae2e35 | 40 | { |
nwaskewicz | 8:e985d3e26b75 | 41 | char buf[10]; |
nwaskewicz | 8:e985d3e26b75 | 42 | |
nwaskewicz | 8:e985d3e26b75 | 43 | gLED = LED_OFF; |
nwaskewicz | 8:e985d3e26b75 | 44 | bLED = LED_ON; |
switches | 2:57500e991166 | 45 | rLED = LED_OFF; |
nwaskewicz | 10:aec9f740a325 | 46 | spi.format(8,0); |
nwaskewicz | 8:e985d3e26b75 | 47 | spicsb = 1; |
nwaskewicz | 9:3c7f27df0b01 | 48 | pegasus.max14690.ldo3SetVoltage(1800); |
nwaskewicz | 8:e985d3e26b75 | 49 | wait(1.0); |
nwaskewicz | 11:8a8562282546 | 50 | //i2c.frequency(100000); |
nwaskewicz | 8:e985d3e26b75 | 51 | |
nwaskewicz | 8:e985d3e26b75 | 52 | p3_0 = 0; |
nwaskewicz | 8:e985d3e26b75 | 53 | p3_1 = 1; |
nwaskewicz | 8:e985d3e26b75 | 54 | |
nwaskewicz | 8:e985d3e26b75 | 55 | p3_2 = 1; |
nwaskewicz | 8:e985d3e26b75 | 56 | p3_3 = 0; |
nwaskewicz | 8:e985d3e26b75 | 57 | |
nwaskewicz | 8:e985d3e26b75 | 58 | p5_3 = 1; |
nwaskewicz | 8:e985d3e26b75 | 59 | p5_4 = 0; |
nwaskewicz | 8:e985d3e26b75 | 60 | |
nwaskewicz | 8:e985d3e26b75 | 61 | p5_5 = 1; |
nwaskewicz | 8:e985d3e26b75 | 62 | p5_6 = 1; |
nwaskewicz | 8:e985d3e26b75 | 63 | |
switches | 1:6923b075c8d7 | 64 | while(1) { |
nwaskewicz | 8:e985d3e26b75 | 65 | |
nwaskewicz | 8:e985d3e26b75 | 66 | microUSB.scanf("%s", buf); |
nwaskewicz | 8:e985d3e26b75 | 67 | |
nwaskewicz | 8:e985d3e26b75 | 68 | // ping command, responds with pong |
nwaskewicz | 8:e985d3e26b75 | 69 | if(buf[0]=='p' && buf[1]=='i' && buf[2]=='n' && buf[3]=='g') { |
nwaskewicz | 8:e985d3e26b75 | 70 | microUSB.printf("pong\r\n"); |
nwaskewicz | 8:e985d3e26b75 | 71 | gLED=LED_OFF; |
nwaskewicz | 8:e985d3e26b75 | 72 | wait(0.01); |
nwaskewicz | 8:e985d3e26b75 | 73 | gLED=LED_ON; |
nwaskewicz | 8:e985d3e26b75 | 74 | wait(0.01); |
nwaskewicz | 8:e985d3e26b75 | 75 | gLED=LED_OFF; |
nwaskewicz | 8:e985d3e26b75 | 76 | } |
nwaskewicz | 8:e985d3e26b75 | 77 | // spi write command: spiw.addr.data |
nwaskewicz | 8:e985d3e26b75 | 78 | // addr and data in hex |
nwaskewicz | 8:e985d3e26b75 | 79 | else if (buf[0]=='s' && buf[1]=='p' && buf[2]=='i' && buf[3]=='w') { |
nwaskewicz | 9:3c7f27df0b01 | 80 | int resp = 0; |
nwaskewicz | 9:3c7f27df0b01 | 81 | char payload[2]; |
nwaskewicz | 9:3c7f27df0b01 | 82 | char response[2]; |
nwaskewicz | 8:e985d3e26b75 | 83 | payload[0] = ascii((int)buf[5],(int)buf[6]); |
nwaskewicz | 8:e985d3e26b75 | 84 | payload[1] = ascii((int)buf[8],(int)buf[9]); |
nwaskewicz | 8:e985d3e26b75 | 85 | spicsb = 0; |
nwaskewicz | 9:3c7f27df0b01 | 86 | resp = spi.write(payload, sizeof(payload), response, sizeof(response)); |
nwaskewicz | 8:e985d3e26b75 | 87 | spicsb = 1; |
nwaskewicz | 9:3c7f27df0b01 | 88 | microUSB.printf("ack.%i\r\n",resp); |
nwaskewicz | 9:3c7f27df0b01 | 89 | gLED=LED_OFF; |
nwaskewicz | 9:3c7f27df0b01 | 90 | wait(0.01); |
nwaskewicz | 9:3c7f27df0b01 | 91 | gLED=LED_ON; |
nwaskewicz | 9:3c7f27df0b01 | 92 | wait(0.01); |
nwaskewicz | 9:3c7f27df0b01 | 93 | gLED=LED_OFF; |
nwaskewicz | 9:3c7f27df0b01 | 94 | } |
nwaskewicz | 11:8a8562282546 | 95 | |
nwaskewicz | 11:8a8562282546 | 96 | // spi transmit command |
nwaskewicz | 11:8a8562282546 | 97 | // write to SPITX_EN register and leave CS low |
nwaskewicz | 11:8a8562282546 | 98 | else if (buf[0]=='s' && buf[1]=='p' && buf[2]=='i' && buf[3]=='t') { |
nwaskewicz | 9:3c7f27df0b01 | 99 | int resp = 0; |
nwaskewicz | 9:3c7f27df0b01 | 100 | char payload[2]; |
nwaskewicz | 9:3c7f27df0b01 | 101 | char response[2]; |
nwaskewicz | 11:8a8562282546 | 102 | payload[0] = ascii((int)buf[5],(int)buf[6]); |
nwaskewicz | 11:8a8562282546 | 103 | payload[1] = ascii((int)buf[8],(int)buf[9]); |
nwaskewicz | 9:3c7f27df0b01 | 104 | spicsb = 0; |
nwaskewicz | 9:3c7f27df0b01 | 105 | resp = spi.write(payload, sizeof(payload), response, sizeof(response)); |
nwaskewicz | 11:8a8562282546 | 106 | microUSB.printf("ack.%i\r\n",resp); |
nwaskewicz | 11:8a8562282546 | 107 | gLED=LED_OFF; |
nwaskewicz | 11:8a8562282546 | 108 | wait(0.01); |
nwaskewicz | 11:8a8562282546 | 109 | gLED=LED_ON; |
nwaskewicz | 11:8a8562282546 | 110 | wait(0.01); |
nwaskewicz | 11:8a8562282546 | 111 | gLED=LED_OFF; |
nwaskewicz | 11:8a8562282546 | 112 | } |
nwaskewicz | 11:8a8562282546 | 113 | |
nwaskewicz | 11:8a8562282546 | 114 | // set csb high |
nwaskewicz | 11:8a8562282546 | 115 | else if (buf[0]=='c' && buf[1]=='s' && buf[2]=='b' && buf[3]=='h') { |
nwaskewicz | 9:3c7f27df0b01 | 116 | spicsb = 1; |
nwaskewicz | 11:8a8562282546 | 117 | microUSB.printf("ack\r\n"); |
nwaskewicz | 11:8a8562282546 | 118 | gLED=LED_OFF; |
nwaskewicz | 11:8a8562282546 | 119 | wait(0.01); |
nwaskewicz | 11:8a8562282546 | 120 | gLED=LED_ON; |
nwaskewicz | 11:8a8562282546 | 121 | wait(0.01); |
nwaskewicz | 11:8a8562282546 | 122 | gLED=LED_OFF; |
nwaskewicz | 11:8a8562282546 | 123 | } |
nwaskewicz | 11:8a8562282546 | 124 | |
nwaskewicz | 11:8a8562282546 | 125 | else if (buf[0]=='p' && buf[1]=='w' && buf[2]=='m' && buf[3]=='o') { |
nwaskewicz | 11:8a8562282546 | 126 | pwm = new PwmOut(P3_4); |
nwaskewicz | 11:8a8562282546 | 127 | pwm->period_us(20); |
nwaskewicz | 11:8a8562282546 | 128 | pwm->write(0.50f); |
nwaskewicz | 9:3c7f27df0b01 | 129 | |
nwaskewicz | 11:8a8562282546 | 130 | microUSB.printf("ack\r\n"); |
nwaskewicz | 11:8a8562282546 | 131 | gLED=LED_OFF; |
nwaskewicz | 11:8a8562282546 | 132 | wait(0.01); |
nwaskewicz | 11:8a8562282546 | 133 | gLED=LED_ON; |
nwaskewicz | 11:8a8562282546 | 134 | wait(0.01); |
nwaskewicz | 11:8a8562282546 | 135 | gLED=LED_OFF; |
nwaskewicz | 11:8a8562282546 | 136 | } |
nwaskewicz | 11:8a8562282546 | 137 | |
nwaskewicz | 11:8a8562282546 | 138 | else if (buf[0]=='t' && buf[1]=='e' && buf[2]=='s' && buf[3]=='t') { |
nwaskewicz | 11:8a8562282546 | 139 | pwm = new PwmOut(P3_4); |
nwaskewicz | 11:8a8562282546 | 140 | pwm->period(0.5f); |
nwaskewicz | 11:8a8562282546 | 141 | pwm->write(0.50f); |
nwaskewicz | 11:8a8562282546 | 142 | |
nwaskewicz | 11:8a8562282546 | 143 | microUSB.printf("ack\r\n"); |
nwaskewicz | 8:e985d3e26b75 | 144 | gLED=LED_OFF; |
nwaskewicz | 8:e985d3e26b75 | 145 | wait(0.01); |
nwaskewicz | 8:e985d3e26b75 | 146 | gLED=LED_ON; |
nwaskewicz | 8:e985d3e26b75 | 147 | wait(0.01); |
nwaskewicz | 8:e985d3e26b75 | 148 | gLED=LED_OFF; |
nwaskewicz | 8:e985d3e26b75 | 149 | } |
nwaskewicz | 9:3c7f27df0b01 | 150 | |
nwaskewicz | 8:e985d3e26b75 | 151 | // spi read command: spir.addr |
nwaskewicz | 8:e985d3e26b75 | 152 | else if (buf[0]=='s' && buf[1]=='p' && buf[2]=='i' && buf[3]=='r') { |
nwaskewicz | 9:3c7f27df0b01 | 153 | int resp = 0; |
nwaskewicz | 9:3c7f27df0b01 | 154 | char payload[2]; |
nwaskewicz | 9:3c7f27df0b01 | 155 | char response[2]; |
nwaskewicz | 9:3c7f27df0b01 | 156 | payload[0] = ascii((int)buf[5],(int)buf[6]); |
nwaskewicz | 9:3c7f27df0b01 | 157 | payload[1] = 0x00; |
nwaskewicz | 8:e985d3e26b75 | 158 | spicsb = 0; |
nwaskewicz | 9:3c7f27df0b01 | 159 | resp = spi.write(payload, sizeof(payload), response, sizeof(response)); |
nwaskewicz | 8:e985d3e26b75 | 160 | spicsb = 1; |
nwaskewicz | 9:3c7f27df0b01 | 161 | microUSB.printf("ack.%i.%i\r\n", response[1], resp); |
nwaskewicz | 9:3c7f27df0b01 | 162 | gLED=LED_OFF; |
nwaskewicz | 9:3c7f27df0b01 | 163 | wait(0.01); |
nwaskewicz | 9:3c7f27df0b01 | 164 | gLED=LED_ON; |
nwaskewicz | 9:3c7f27df0b01 | 165 | wait(0.01); |
nwaskewicz | 9:3c7f27df0b01 | 166 | gLED=LED_OFF; |
nwaskewicz | 9:3c7f27df0b01 | 167 | } |
nwaskewicz | 11:8a8562282546 | 168 | |
nwaskewicz | 9:3c7f27df0b01 | 169 | // i2c write command: i2cw.addr.data |
nwaskewicz | 9:3c7f27df0b01 | 170 | else if (buf[0]=='i' && buf[1]=='2' && buf[2]=='c' && buf[3]=='w') { |
nwaskewicz | 11:8a8562282546 | 171 | i2c = new I2C(P3_4, P3_5); |
nwaskewicz | 9:3c7f27df0b01 | 172 | int response = 0; |
nwaskewicz | 9:3c7f27df0b01 | 173 | char payload[2]; |
nwaskewicz | 9:3c7f27df0b01 | 174 | payload[0] = ascii((int)buf[5],(int)buf[6]); |
nwaskewicz | 9:3c7f27df0b01 | 175 | payload[1] = ascii((int)buf[8],(int)buf[9]); |
nwaskewicz | 11:8a8562282546 | 176 | response = i2c->write(LF21_I2C_WRITE, payload, sizeof(payload)); |
nwaskewicz | 8:e985d3e26b75 | 177 | microUSB.printf("ack.%i\r\n", response); |
nwaskewicz | 8:e985d3e26b75 | 178 | gLED=LED_OFF; |
nwaskewicz | 8:e985d3e26b75 | 179 | wait(0.01); |
nwaskewicz | 8:e985d3e26b75 | 180 | gLED=LED_ON; |
nwaskewicz | 8:e985d3e26b75 | 181 | wait(0.01); |
nwaskewicz | 8:e985d3e26b75 | 182 | gLED=LED_OFF; |
nwaskewicz | 8:e985d3e26b75 | 183 | } |
nwaskewicz | 9:3c7f27df0b01 | 184 | // i2c read command: i2cr.addr |
nwaskewicz | 9:3c7f27df0b01 | 185 | else if (buf[0]=='i' && buf[1]=='2' && buf[2]=='c' && buf[3]=='r') { |
nwaskewicz | 11:8a8562282546 | 186 | i2c = new I2C(P3_4, P3_5); |
nwaskewicz | 9:3c7f27df0b01 | 187 | int response = 0; |
nwaskewicz | 9:3c7f27df0b01 | 188 | char address[1]; |
nwaskewicz | 9:3c7f27df0b01 | 189 | char payload[1]; |
nwaskewicz | 9:3c7f27df0b01 | 190 | payload[0] = 0xFF; |
nwaskewicz | 9:3c7f27df0b01 | 191 | address[0] = ascii((int)buf[5],(int)buf[6]); |
nwaskewicz | 11:8a8562282546 | 192 | response = i2c->write(LF21_I2C_WRITE, address, sizeof(address), true); |
nwaskewicz | 11:8a8562282546 | 193 | response = i2c->read(LF21_I2C_READ, payload, sizeof(payload)); |
nwaskewicz | 9:3c7f27df0b01 | 194 | microUSB.printf("ack.%i.%i\r\n", response, payload[0]); |
nwaskewicz | 9:3c7f27df0b01 | 195 | gLED=LED_OFF; |
nwaskewicz | 9:3c7f27df0b01 | 196 | wait(0.01); |
nwaskewicz | 9:3c7f27df0b01 | 197 | gLED=LED_ON; |
nwaskewicz | 9:3c7f27df0b01 | 198 | wait(0.01); |
nwaskewicz | 9:3c7f27df0b01 | 199 | gLED=LED_OFF; |
nwaskewicz | 9:3c7f27df0b01 | 200 | } |
nwaskewicz | 11:8a8562282546 | 201 | |
nwaskewicz | 8:e985d3e26b75 | 202 | // digital pin p5_5 |
nwaskewicz | 8:e985d3e26b75 | 203 | else if (buf[0]=='p' && buf[1]=='5' && buf[2]=='_' && buf[3]=='5') { |
nwaskewicz | 8:e985d3e26b75 | 204 | if (buf[5]=='1') p5_5 = 1; |
nwaskewicz | 8:e985d3e26b75 | 205 | else p5_5 = 0; |
nwaskewicz | 8:e985d3e26b75 | 206 | microUSB.printf("ack\r\n"); |
nwaskewicz | 8:e985d3e26b75 | 207 | gLED=LED_OFF; |
nwaskewicz | 8:e985d3e26b75 | 208 | wait(0.01); |
nwaskewicz | 8:e985d3e26b75 | 209 | gLED=LED_ON; |
nwaskewicz | 8:e985d3e26b75 | 210 | wait(0.01); |
nwaskewicz | 8:e985d3e26b75 | 211 | gLED=LED_OFF; |
nwaskewicz | 8:e985d3e26b75 | 212 | } |
nwaskewicz | 8:e985d3e26b75 | 213 | // digital pin p5_6 |
nwaskewicz | 8:e985d3e26b75 | 214 | else if (buf[0]=='p' && buf[1]=='5' && buf[2]=='_' && buf[3]=='6') { |
nwaskewicz | 8:e985d3e26b75 | 215 | if (buf[5]=='1') p5_6 = 1; |
nwaskewicz | 8:e985d3e26b75 | 216 | else p5_6 = 0; |
nwaskewicz | 8:e985d3e26b75 | 217 | microUSB.printf("ack\r\n"); |
nwaskewicz | 8:e985d3e26b75 | 218 | gLED=LED_OFF; |
nwaskewicz | 8:e985d3e26b75 | 219 | wait(0.01); |
nwaskewicz | 8:e985d3e26b75 | 220 | gLED=LED_ON; |
nwaskewicz | 8:e985d3e26b75 | 221 | wait(0.01); |
nwaskewicz | 8:e985d3e26b75 | 222 | gLED=LED_OFF; |
nwaskewicz | 8:e985d3e26b75 | 223 | } |
nwaskewicz | 8:e985d3e26b75 | 224 | // digital pin p5_3 |
nwaskewicz | 8:e985d3e26b75 | 225 | else if (buf[0]=='p' && buf[1]=='5' && buf[2]=='_' && buf[3]=='3') { |
nwaskewicz | 8:e985d3e26b75 | 226 | if (buf[5]=='1') p5_3 = 1; |
nwaskewicz | 8:e985d3e26b75 | 227 | else p5_3 = 0; |
nwaskewicz | 8:e985d3e26b75 | 228 | microUSB.printf("ack\r\n"); |
nwaskewicz | 8:e985d3e26b75 | 229 | gLED=LED_OFF; |
nwaskewicz | 8:e985d3e26b75 | 230 | wait(0.01); |
nwaskewicz | 8:e985d3e26b75 | 231 | gLED=LED_ON; |
nwaskewicz | 8:e985d3e26b75 | 232 | wait(0.01); |
nwaskewicz | 8:e985d3e26b75 | 233 | gLED=LED_OFF; |
nwaskewicz | 8:e985d3e26b75 | 234 | } |
nwaskewicz | 8:e985d3e26b75 | 235 | // digital pin p5_4 |
nwaskewicz | 8:e985d3e26b75 | 236 | else if (buf[0]=='p' && buf[1]=='5' && buf[2]=='_' && buf[3]=='4') { |
nwaskewicz | 8:e985d3e26b75 | 237 | if (buf[5]=='1') p5_4 = 1; |
nwaskewicz | 8:e985d3e26b75 | 238 | else p5_4 = 0; |
nwaskewicz | 8:e985d3e26b75 | 239 | microUSB.printf("ack\r\n"); |
nwaskewicz | 8:e985d3e26b75 | 240 | gLED=LED_OFF; |
nwaskewicz | 8:e985d3e26b75 | 241 | wait(0.01); |
nwaskewicz | 8:e985d3e26b75 | 242 | gLED=LED_ON; |
nwaskewicz | 8:e985d3e26b75 | 243 | wait(0.01); |
nwaskewicz | 8:e985d3e26b75 | 244 | gLED=LED_OFF; |
nwaskewicz | 8:e985d3e26b75 | 245 | } |
nwaskewicz | 8:e985d3e26b75 | 246 | // digital pin p3_1 |
nwaskewicz | 8:e985d3e26b75 | 247 | else if (buf[0]=='p' && buf[1]=='3' && buf[2]=='_' && buf[3]=='1') { |
nwaskewicz | 8:e985d3e26b75 | 248 | if (buf[5]=='1') p3_1 = 1; |
nwaskewicz | 8:e985d3e26b75 | 249 | else p3_1 = 0; |
nwaskewicz | 8:e985d3e26b75 | 250 | microUSB.printf("ack\r\n"); |
nwaskewicz | 8:e985d3e26b75 | 251 | gLED=LED_OFF; |
nwaskewicz | 8:e985d3e26b75 | 252 | wait(0.01); |
nwaskewicz | 8:e985d3e26b75 | 253 | gLED=LED_ON; |
nwaskewicz | 8:e985d3e26b75 | 254 | wait(0.01); |
nwaskewicz | 8:e985d3e26b75 | 255 | gLED=LED_OFF; |
nwaskewicz | 8:e985d3e26b75 | 256 | } |
nwaskewicz | 8:e985d3e26b75 | 257 | // digital pin p3_0 |
nwaskewicz | 8:e985d3e26b75 | 258 | else if (buf[0]=='p' && buf[1]=='3' && buf[2]=='_' && buf[3]=='0') { |
nwaskewicz | 8:e985d3e26b75 | 259 | if (buf[5]=='1') p3_0 = 1; |
nwaskewicz | 8:e985d3e26b75 | 260 | else p3_0 = 0; |
nwaskewicz | 8:e985d3e26b75 | 261 | microUSB.printf("ack\r\n"); |
nwaskewicz | 8:e985d3e26b75 | 262 | gLED=LED_OFF; |
nwaskewicz | 8:e985d3e26b75 | 263 | wait(0.01); |
nwaskewicz | 8:e985d3e26b75 | 264 | gLED=LED_ON; |
nwaskewicz | 8:e985d3e26b75 | 265 | wait(0.01); |
nwaskewicz | 8:e985d3e26b75 | 266 | gLED=LED_OFF; |
nwaskewicz | 8:e985d3e26b75 | 267 | } |
nwaskewicz | 8:e985d3e26b75 | 268 | // digital pin p3_3 |
nwaskewicz | 8:e985d3e26b75 | 269 | else if (buf[0]=='p' && buf[1]=='3' && buf[2]=='_' && buf[3]=='3') { |
nwaskewicz | 8:e985d3e26b75 | 270 | if (buf[5]=='1') p3_3 = 1; |
nwaskewicz | 8:e985d3e26b75 | 271 | else p3_3 = 0; |
nwaskewicz | 8:e985d3e26b75 | 272 | microUSB.printf("ack\r\n"); |
nwaskewicz | 8:e985d3e26b75 | 273 | gLED=LED_OFF; |
nwaskewicz | 8:e985d3e26b75 | 274 | wait(0.01); |
nwaskewicz | 8:e985d3e26b75 | 275 | gLED=LED_ON; |
nwaskewicz | 8:e985d3e26b75 | 276 | wait(0.01); |
nwaskewicz | 8:e985d3e26b75 | 277 | gLED=LED_OFF; |
nwaskewicz | 8:e985d3e26b75 | 278 | } |
nwaskewicz | 8:e985d3e26b75 | 279 | // digital pin p3_2 |
nwaskewicz | 8:e985d3e26b75 | 280 | else if (buf[0]=='p' && buf[1]=='3' && buf[2]=='_' && buf[3]=='2') { |
nwaskewicz | 8:e985d3e26b75 | 281 | if (buf[5]=='1') p3_2 = 1; |
nwaskewicz | 8:e985d3e26b75 | 282 | else p3_2 = 0; |
nwaskewicz | 8:e985d3e26b75 | 283 | microUSB.printf("ack\r\n"); |
nwaskewicz | 8:e985d3e26b75 | 284 | gLED=LED_OFF; |
nwaskewicz | 8:e985d3e26b75 | 285 | wait(0.01); |
nwaskewicz | 8:e985d3e26b75 | 286 | gLED=LED_ON; |
nwaskewicz | 8:e985d3e26b75 | 287 | wait(0.01); |
nwaskewicz | 8:e985d3e26b75 | 288 | gLED=LED_OFF; |
nwaskewicz | 8:e985d3e26b75 | 289 | } |
nwaskewicz | 9:3c7f27df0b01 | 290 | // set ldo voltage |
nwaskewicz | 9:3c7f27df0b01 | 291 | else if (buf[0]=='l' && buf[1]=='d' && buf[2]=='o') { |
nwaskewicz | 9:3c7f27df0b01 | 292 | int setting = ldo((int)buf[4],(int)buf[5]); |
nwaskewicz | 9:3c7f27df0b01 | 293 | pegasus.max14690.ldo3SetVoltage(setting*100); |
nwaskewicz | 9:3c7f27df0b01 | 294 | microUSB.printf("ack.%i\r\n",setting); |
nwaskewicz | 9:3c7f27df0b01 | 295 | gLED=LED_OFF; |
nwaskewicz | 9:3c7f27df0b01 | 296 | wait(0.01); |
nwaskewicz | 9:3c7f27df0b01 | 297 | gLED=LED_ON; |
nwaskewicz | 9:3c7f27df0b01 | 298 | wait(0.01); |
nwaskewicz | 9:3c7f27df0b01 | 299 | gLED=LED_OFF; |
nwaskewicz | 9:3c7f27df0b01 | 300 | } |
switches | 0:60a522ae2e35 | 301 | } |
nwaskewicz | 8:e985d3e26b75 | 302 | |
nwaskewicz | 9:3c7f27df0b01 | 303 | |
switches | 0:60a522ae2e35 | 304 | } |
switches | 0:60a522ae2e35 | 305 | |
nwaskewicz | 8:e985d3e26b75 | 306 | int ascii(char a, char b) |
nwaskewicz | 8:e985d3e26b75 | 307 | { |
nwaskewicz | 8:e985d3e26b75 | 308 | int val1 = 0; |
nwaskewicz | 8:e985d3e26b75 | 309 | int val2 = 0; |
nwaskewicz | 8:e985d3e26b75 | 310 | int val = 0; |
nwaskewicz | 8:e985d3e26b75 | 311 | if(a>64 && a<71) |
nwaskewicz | 8:e985d3e26b75 | 312 | { |
nwaskewicz | 8:e985d3e26b75 | 313 | val1 = (int)a-55; |
nwaskewicz | 8:e985d3e26b75 | 314 | } |
nwaskewicz | 8:e985d3e26b75 | 315 | else if(a>96 && a<103) |
nwaskewicz | 8:e985d3e26b75 | 316 | { |
nwaskewicz | 8:e985d3e26b75 | 317 | val1 = (int)a-87; |
nwaskewicz | 8:e985d3e26b75 | 318 | } |
nwaskewicz | 8:e985d3e26b75 | 319 | else val1 = (int)a-48; |
nwaskewicz | 8:e985d3e26b75 | 320 | |
nwaskewicz | 8:e985d3e26b75 | 321 | if(b>64 && b<71) |
nwaskewicz | 8:e985d3e26b75 | 322 | { |
nwaskewicz | 8:e985d3e26b75 | 323 | val2 = (int)b-55; |
nwaskewicz | 8:e985d3e26b75 | 324 | } |
nwaskewicz | 8:e985d3e26b75 | 325 | else if(b>96 && b<103) |
nwaskewicz | 8:e985d3e26b75 | 326 | { |
nwaskewicz | 8:e985d3e26b75 | 327 | val2 = (int)b-87; |
nwaskewicz | 8:e985d3e26b75 | 328 | } |
nwaskewicz | 8:e985d3e26b75 | 329 | else val2 = (int)b-48; |
nwaskewicz | 8:e985d3e26b75 | 330 | |
nwaskewicz | 8:e985d3e26b75 | 331 | val=16*val1+val2; |
nwaskewicz | 8:e985d3e26b75 | 332 | |
nwaskewicz | 9:3c7f27df0b01 | 333 | return val; |
nwaskewicz | 9:3c7f27df0b01 | 334 | } |
nwaskewicz | 9:3c7f27df0b01 | 335 | |
nwaskewicz | 9:3c7f27df0b01 | 336 | int ldo(char a, char b) |
nwaskewicz | 9:3c7f27df0b01 | 337 | { |
nwaskewicz | 9:3c7f27df0b01 | 338 | int val1 = 0; |
nwaskewicz | 9:3c7f27df0b01 | 339 | int val2 = 0; |
nwaskewicz | 9:3c7f27df0b01 | 340 | int val = 0; |
nwaskewicz | 9:3c7f27df0b01 | 341 | if(a>64 && a<71) |
nwaskewicz | 9:3c7f27df0b01 | 342 | { |
nwaskewicz | 9:3c7f27df0b01 | 343 | val1 = (int)a-55; |
nwaskewicz | 9:3c7f27df0b01 | 344 | } |
nwaskewicz | 9:3c7f27df0b01 | 345 | else if(a>96 && a<103) |
nwaskewicz | 9:3c7f27df0b01 | 346 | { |
nwaskewicz | 9:3c7f27df0b01 | 347 | val1 = (int)a-87; |
nwaskewicz | 9:3c7f27df0b01 | 348 | } |
nwaskewicz | 9:3c7f27df0b01 | 349 | else val1 = (int)a-48; |
nwaskewicz | 9:3c7f27df0b01 | 350 | |
nwaskewicz | 9:3c7f27df0b01 | 351 | if(b>64 && b<71) |
nwaskewicz | 9:3c7f27df0b01 | 352 | { |
nwaskewicz | 9:3c7f27df0b01 | 353 | val2 = (int)b-55; |
nwaskewicz | 9:3c7f27df0b01 | 354 | } |
nwaskewicz | 9:3c7f27df0b01 | 355 | else if(b>96 && b<103) |
nwaskewicz | 9:3c7f27df0b01 | 356 | { |
nwaskewicz | 9:3c7f27df0b01 | 357 | val2 = (int)b-87; |
nwaskewicz | 9:3c7f27df0b01 | 358 | } |
nwaskewicz | 9:3c7f27df0b01 | 359 | else val2 = (int)b-48; |
nwaskewicz | 9:3c7f27df0b01 | 360 | |
nwaskewicz | 9:3c7f27df0b01 | 361 | val=10*val1+val2; |
nwaskewicz | 9:3c7f27df0b01 | 362 | |
nwaskewicz | 9:3c7f27df0b01 | 363 | return val; |
nwaskewicz | 9:3c7f27df0b01 | 364 | } |