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