Firmware development for use with LF21

Dependencies:   USBDevice max32630fthr

Fork of FTHR_USB_serial by Maxim Integrated

Committer:
nwaskewicz
Date:
Fri Sep 15 19:23:38 2017 +0000
Revision:
9:3c7f27df0b01
Parent:
8:e985d3e26b75
Child:
10:aec9f740a325
updated with new commands

Who changed what in which revision?

UserRevisionLine numberNew 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 9:3c7f27df0b01 45 spi.format(8,3);
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 }