Kazuki Yamamoto / Mbed 2 deprecated uart_i2c_conv

Dependencies:   mbed

Committer:
Kazuki Yamamoto
Date:
Tue Dec 16 18:13:49 2014 +0900
Revision:
26:7810c849cb78
Parent:
24:223a68f33f09
Child:
27:53a29982d658
[ LPC824 ] register setting comment out

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Kazuki Yamamoto 9:844e301ab0fd 1 /** uart_i2c_conv for LPC824
Kazuki Yamamoto 9:844e301ab0fd 2 */
Kazuki Yamamoto 9:844e301ab0fd 3
Kazuki Yamamoto 5:07f7000ec747 4 #include "mbed.h"
Kazuki Yamamoto 22:946c08f6daff 5 #define QUAD_I2C
Kazuki Yamamoto 5:07f7000ec747 6
Kazuki Yamamoto 5:07f7000ec747 7 Serial pc(USBTX,USBRX);
Kazuki Yamamoto 22:946c08f6daff 8 /** replace
Kazuki Yamamoto 19:93814b431bf5 9 Serial pc(P0_4, P0_0);
Kazuki Yamamoto 19:93814b431bf5 10 */
Kazuki Yamamoto 22:946c08f6daff 11
Kazuki Yamamoto 9:844e301ab0fd 12 I2C dev1(I2C_SDA, I2C_SCL);//11,10 hard coded
Kazuki Yamamoto 9:844e301ab0fd 13
Kazuki Yamamoto 22:946c08f6daff 14 #ifdef QUAD_I2C
Kazuki Yamamoto 18:e3286a42cf0e 15 I2C dev2(P0_6, P0_14);//6,14 | A0, A1
Kazuki Yamamoto 18:e3286a42cf0e 16 I2C dev3(P0_23, P0_22);//23,22 | A2, A3
Kazuki Yamamoto 18:e3286a42cf0e 17 I2C dev4(P0_21, P0_20);//21,20 | A4, A5
Kazuki Yamamoto 22:946c08f6daff 18 /** replace
Kazuki Yamamoto 18:e3286a42cf0e 19 I2C dev2(P0_16, P0_27);
Kazuki Yamamoto 18:e3286a42cf0e 20 I2C dev3(P0_26, P0_25);
Kazuki Yamamoto 18:e3286a42cf0e 21 I2C dev4(P0_24, P0_15);
Kazuki Yamamoto 18:e3286a42cf0e 22 */
Kazuki Yamamoto 22:946c08f6daff 23 #else
Kazuki Yamamoto 22:946c08f6daff 24 DigitalInOut _GPIO10(P0_15);
Kazuki Yamamoto 22:946c08f6daff 25 DigitalInOut _GPIO11(P0_24);
Kazuki Yamamoto 22:946c08f6daff 26 DigitalInOut _GPIO12(P0_25);
Kazuki Yamamoto 22:946c08f6daff 27 DigitalInOut _GPIO13(P0_26);
Kazuki Yamamoto 22:946c08f6daff 28 DigitalInOut _GPIO14(P0_27);
Kazuki Yamamoto 22:946c08f6daff 29 DigitalInOut _GPIO15(P0_16);
Kazuki Yamamoto 22:946c08f6daff 30 DigitalInOut _GPIO16(P0_28);
Kazuki Yamamoto 22:946c08f6daff 31 DigitalInOut _GPIO17(P0_12);
Kazuki Yamamoto 22:946c08f6daff 32 #endif
Kazuki Yamamoto 22:946c08f6daff 33
Kazuki Yamamoto 19:93814b431bf5 34 DigitalInOut _GPIO0(D0); // P0_0
Kazuki Yamamoto 19:93814b431bf5 35 DigitalInOut _GPIO1(D1); // P0_4
Kazuki Yamamoto 19:93814b431bf5 36 DigitalInOut _GPIO2(D2); // P0_19
Kazuki Yamamoto 24:223a68f33f09 37 DigitalInOut _GPIO3(P0_1); //
Kazuki Yamamoto 19:93814b431bf5 38 DigitalInOut _GPIO4(D5); // P0_28
Kazuki Yamamoto 19:93814b431bf5 39 DigitalInOut _GPIO5(D7); // P0_17
Kazuki Yamamoto 19:93814b431bf5 40 DigitalInOut _GPIO6(D8); // P0_13
Kazuki Yamamoto 19:93814b431bf5 41 DigitalInOut _GPIO7(D10); // P0_15
Kazuki Yamamoto 22:946c08f6daff 42 /** replace
Kazuki Yamamoto 22:946c08f6daff 43 DigitalInOut _GPIO00(P0_17);
Kazuki Yamamoto 22:946c08f6daff 44 DigitalInOut _GPIO01(P0_18);
Kazuki Yamamoto 22:946c08f6daff 45 DigitalInOut _GPIO02(P0_19);
Kazuki Yamamoto 22:946c08f6daff 46 DigitalInOut _GPIO03(P0_20);
Kazuki Yamamoto 22:946c08f6daff 47 DigitalInOut _GPIO04(P0_21);
Kazuki Yamamoto 22:946c08f6daff 48 DigitalInOut _GPIO05(P0_22);
Kazuki Yamamoto 22:946c08f6daff 49 DigitalInOut _GPIO06(P0_23);
Kazuki Yamamoto 22:946c08f6daff 50 DigitalInOut _GPIO07(P0_14);
Kazuki Yamamoto 18:e3286a42cf0e 51 */
Kazuki Yamamoto 5:07f7000ec747 52
Kazuki Yamamoto 18:e3286a42cf0e 53 SPI _spi(D11, D12, D13); // mosi, miso, sclk
Kazuki Yamamoto 24:223a68f33f09 54 DigitalOut _cs(D9); // CS
Kazuki Yamamoto 24:223a68f33f09 55 /** replace
Kazuki Yamamoto 18:e3286a42cf0e 56 SPI _spi(P0_6, P0_7, P0_8); // mosi, miso, sclk
Kazuki Yamamoto 18:e3286a42cf0e 57 DigitalOut _cs(P0_9) // CS
Kazuki Yamamoto 18:e3286a42cf0e 58 */
Kazuki Yamamoto 19:93814b431bf5 59
Kazuki Yamamoto 5:07f7000ec747 60 //Table 3. ASCII commands supported by SC18IM700
Kazuki Yamamoto 5:07f7000ec747 61 //ASCII command Hex value Command function
Kazuki Yamamoto 5:07f7000ec747 62 //[X] S 0x53 I2C-bus START
Kazuki Yamamoto 5:07f7000ec747 63 //[X] P 0x50 I2C-bus STOP
Kazuki Yamamoto 9:844e301ab0fd 64 //[?] R 0x52 read SC18IM700 internal register
Kazuki Yamamoto 9:844e301ab0fd 65 //[?] W 0x57 write to SC18IM700 internal register
Kazuki Yamamoto 9:844e301ab0fd 66 //[?] I 0x49 read GPIO port
Kazuki Yamamoto 9:844e301ab0fd 67 //[?] O 0x4F write to GPIO port
Kazuki Yamamoto 5:07f7000ec747 68 //[_] Z 0x5A power down
Kazuki Yamamoto 5:07f7000ec747 69 //[X] C 0x43 change channel
Kazuki Yamamoto 9:844e301ab0fd 70 //[_] E 0x45 enable chip
Kazuki Yamamoto 9:844e301ab0fd 71 //[_] V 0x__ enable VDDIO output to chip
Kazuki Yamamoto 5:07f7000ec747 72
Kazuki Yamamoto 12:db621ae6a076 73 /**
Kazuki Yamamoto 12:db621ae6a076 74 "C| '0'| P"
Kazuki Yamamoto 12:db621ae6a076 75 "C| '1'| P"
Kazuki Yamamoto 12:db621ae6a076 76 "C| '2'| P"
Kazuki Yamamoto 12:db621ae6a076 77 "C| '3'| P"
Kazuki Yamamoto 12:db621ae6a076 78 "S| 0x_8 _0| 0x_0 _4| 0x_D _E _A _D _B _E _A _F| P"
Kazuki Yamamoto 12:db621ae6a076 79 "S| 0x_8 _0| 0x_0 _4| 0x_D _E _A _D _B _E _A _F| S| 0x_8 _1| 0x_0 _4| P"
Kazuki Yamamoto 12:db621ae6a076 80 "S| 0x_8 _1| 0x_0 _4| P"
Kazuki Yamamoto 12:db621ae6a076 81 "R| '0'| P"
Kazuki Yamamoto 12:db621ae6a076 82 "R| '0'| '1'| ...| P"
Kazuki Yamamoto 12:db621ae6a076 83 "W| '0' 0x_a _a| P"
Kazuki Yamamoto 12:db621ae6a076 84 "W| '0' 0x_a _a| '1' 0x_b _b| ...| P"
Kazuki Yamamoto 22:946c08f6daff 85 "I| '0'| P"
Kazuki Yamamoto 22:946c08f6daff 86 "O| '0'| 0x_a _a| P"
Kazuki Yamamoto 12:db621ae6a076 87 */
Kazuki Yamamoto 5:07f7000ec747 88 int main()
Kazuki Yamamoto 5:07f7000ec747 89 {
Kazuki Yamamoto 5:07f7000ec747 90 I2C* dev=&dev1;
Kazuki Yamamoto 5:07f7000ec747 91 pc.baud(115200);
Kazuki Yamamoto 9:844e301ab0fd 92
Kazuki Yamamoto 26:7810c849cb78 93 bool s = false;
Kazuki Yamamoto 26:7810c849cb78 94 dev1.frequency(900000);//900k; works around 940kHz with 200ohm pullups/ not work at 1M?
Kazuki Yamamoto 24:223a68f33f09 95 LPC_IOCON->PIO0_11 &= ~(0x03<<8);
Kazuki Yamamoto 9:844e301ab0fd 96 LPC_IOCON->PIO0_11 |= (0x02<<8);
Kazuki Yamamoto 24:223a68f33f09 97 LPC_IOCON->PIO0_10 &= ~(0x03<<8);
Kazuki Yamamoto 9:844e301ab0fd 98 LPC_IOCON->PIO0_10 |= (0x02<<8);
Kazuki Yamamoto 26:7810c849cb78 99 // LPC_I2C0->CLKDIV &= 0xFFFFFF00;
Kazuki Yamamoto 26:7810c849cb78 100 // LPC_I2C0->CLKDIV |= 0x05;
Kazuki Yamamoto 26:7810c849cb78 101 // LPC_I2C0->MSTTIME &= 0xFFFFFF00;
Kazuki Yamamoto 26:7810c849cb78 102 // LPC_I2C0->MSTTIME |= 0x00;
Kazuki Yamamoto 22:946c08f6daff 103 #ifdef QUAD_I2C
Kazuki Yamamoto 9:844e301ab0fd 104 dev2.frequency(400000);//400k
Kazuki Yamamoto 9:844e301ab0fd 105 dev3.frequency(400000);//400k
Kazuki Yamamoto 9:844e301ab0fd 106 dev4.frequency(400000);//400k
Kazuki Yamamoto 22:946c08f6daff 107 #else
Kazuki Yamamoto 22:946c08f6daff 108 DigitalInOut* gpio1[]={
Kazuki Yamamoto 22:946c08f6daff 109 &_GPI10,
Kazuki Yamamoto 22:946c08f6daff 110 &_GPI11,
Kazuki Yamamoto 22:946c08f6daff 111 &_GPI12,
Kazuki Yamamoto 22:946c08f6daff 112 &_GPI13,
Kazuki Yamamoto 22:946c08f6daff 113 &_GPI14,
Kazuki Yamamoto 22:946c08f6daff 114 &_GPI15,
Kazuki Yamamoto 22:946c08f6daff 115 &_GPI16,
Kazuki Yamamoto 22:946c08f6daff 116 &_GPI17,
Kazuki Yamamoto 22:946c08f6daff 117 };
Kazuki Yamamoto 22:946c08f6daff 118 for(int k=0; k<8; k++){
Kazuki Yamamoto 22:946c08f6daff 119 gpio1[k]->input();
Kazuki Yamamoto 24:223a68f33f09 120 gpio1[k]->mode(PullDown);
Kazuki Yamamoto 22:946c08f6daff 121 }
Kazuki Yamamoto 22:946c08f6daff 122 #endif
Kazuki Yamamoto 18:e3286a42cf0e 123 DigitalInOut* gpio0[]={
Kazuki Yamamoto 11:0d8359a6e2c2 124 &_GPIO0,
Kazuki Yamamoto 11:0d8359a6e2c2 125 &_GPIO1,
Kazuki Yamamoto 11:0d8359a6e2c2 126 &_GPIO2,
Kazuki Yamamoto 11:0d8359a6e2c2 127 &_GPIO3,
Kazuki Yamamoto 11:0d8359a6e2c2 128 &_GPIO4,
Kazuki Yamamoto 11:0d8359a6e2c2 129 &_GPIO5,
Kazuki Yamamoto 11:0d8359a6e2c2 130 &_GPIO6,
Kazuki Yamamoto 11:0d8359a6e2c2 131 &_GPIO7,
Kazuki Yamamoto 18:e3286a42cf0e 132 };
Kazuki Yamamoto 16:ba11339fd9c6 133 for(int k=0; k<8; k++){
Kazuki Yamamoto 18:e3286a42cf0e 134 gpio0[k]->input();
Kazuki Yamamoto 24:223a68f33f09 135 gpio0[k]->mode(PullDown);
Kazuki Yamamoto 16:ba11339fd9c6 136 }
Kazuki Yamamoto 16:ba11339fd9c6 137
Kazuki Yamamoto 12:db621ae6a076 138 int ack = 0;
Kazuki Yamamoto 12:db621ae6a076 139 int plength = 0;
Kazuki Yamamoto 12:db621ae6a076 140 char recieve[] = {
Kazuki Yamamoto 12:db621ae6a076 141 0x0D, 0x0E, 0x0A, 0x0D, 0x0B, 0x0E, 0x0A, 0x0F, 0xD0, 0xE0, 0xA0, 0xD0, 0xB0, 0xE0, 0xA0, 0xF0,
Kazuki Yamamoto 12:db621ae6a076 142 0x0D, 0x0E, 0x0A, 0x0D, 0x0B, 0x0E, 0x0A, 0x0F, 0xD0, 0xE0, 0xA0, 0xD0, 0xB0, 0xE0, 0xA0, 0xF0,
Kazuki Yamamoto 12:db621ae6a076 143 0x0D, 0x0E, 0x0A, 0x0D, 0x0B, 0x0E, 0x0A, 0x0F, 0xD0, 0xE0, 0xA0, 0xD0, 0xB0, 0xE0, 0xA0, 0xF0,
Kazuki Yamamoto 12:db621ae6a076 144 0x0D, 0x0E, 0x0A, 0x0D, 0x0B, 0x0E, 0x0A, 0x0F, 0xD0, 0xE0, 0xA0, 0xD0, 0xB0, 0xE0, 0xA0, 0xF0,
Kazuki Yamamoto 12:db621ae6a076 145 0x0D, 0x0E, 0x0A, 0x0D, 0x0B, 0x0E, 0x0A, 0x0F, 0xD0, 0xE0, 0xA0, 0xD0, 0xB0, 0xE0, 0xA0, 0xF0,
Kazuki Yamamoto 12:db621ae6a076 146 0x0D, 0x0E, 0x0A, 0x0D, 0x0B, 0x0E, 0x0A, 0x0F, 0xD0, 0xE0, 0xA0, 0xD0, 0xB0, 0xE0, 0xA0, 0xF0,
Kazuki Yamamoto 12:db621ae6a076 147 0x0D, 0x0E, 0x0A, 0x0D, 0x0B, 0x0E, 0x0A, 0x0F, 0xD0, 0xE0, 0xA0, 0xD0, 0xB0, 0xE0, 0xA0, 0xF0,
Kazuki Yamamoto 12:db621ae6a076 148 0x0D, 0x0E, 0x0A, 0x0D, 0x0B, 0x0E, 0x0A, 0x0F, 0xD0, 0xE0, 0xA0, 0xD0, 0xB0, 0xE0, 0xA0, 0xF0,
Kazuki Yamamoto 12:db621ae6a076 149 0x0D, 0x0E, 0x0A, 0x0D, 0x0B, 0x0E, 0x0A, 0x0F, 0xD0, 0xE0, 0xA0, 0xD0, 0xB0, 0xE0, 0xA0, 0xF0,
Kazuki Yamamoto 12:db621ae6a076 150 0x0D, 0x0E, 0x0A, 0x0D, 0x0B, 0x0E, 0x0A, 0x0F, 0xD0, 0xE0, 0xA0, 0xD0, 0xB0, 0xE0, 0xA0, 0xF0,
Kazuki Yamamoto 12:db621ae6a076 151 0x0D, 0x0E, 0x0A, 0x0D, 0x0B, 0x0E, 0x0A, 0x0F, 0xD0, 0xE0, 0xA0, 0xD0, 0xB0, 0xE0, 0xA0, 0xF0,
Kazuki Yamamoto 12:db621ae6a076 152 0x0D, 0x0E, 0x0A, 0x0D, 0x0B, 0x0E, 0x0A, 0x0F, 0xD0, 0xE0, 0xA0, 0xD0, 0xB0, 0xE0, 0xA0, 0xF0,
Kazuki Yamamoto 12:db621ae6a076 153 0x0D, 0x0E, 0x0A, 0x0D, 0x0B, 0x0E, 0x0A, 0x0F, 0xD0, 0xE0, 0xA0, 0xD0, 0xB0, 0xE0, 0xA0, 0xF0,
Kazuki Yamamoto 12:db621ae6a076 154 0x0D, 0x0E, 0x0A, 0x0D, 0x0B, 0x0E, 0x0A, 0x0F, 0xD0, 0xE0, 0xA0, 0xD0, 0xB0, 0xE0, 0xA0, 0xF0,
Kazuki Yamamoto 12:db621ae6a076 155 0x0D, 0x0E, 0x0A, 0x0D, 0x0B, 0x0E, 0x0A, 0x0F, 0xD0, 0xE0, 0xA0, 0xD0, 0xB0, 0xE0, 0xA0, 0xF0,
Kazuki Yamamoto 12:db621ae6a076 156 0x0D, 0x0E, 0x0A, 0x0D, 0x0B, 0x0E, 0x0A, 0x0F, 0xD0, 0xE0, 0xA0, 0xD0, 0xB0, 0xE0, 0xA0, 0xF0,
Kazuki Yamamoto 12:db621ae6a076 157 };
Kazuki Yamamoto 12:db621ae6a076 158 char send[] = {
Kazuki Yamamoto 12:db621ae6a076 159 0x0D, 0x0E, 0x0A, 0x0D, 0x0B, 0x0E, 0x0A, 0x0F, 0xD0, 0xE0, 0xA0, 0xD0, 0xB0, 0xE0, 0xA0, 0xF0,
Kazuki Yamamoto 12:db621ae6a076 160 0x0D, 0x0E, 0x0A, 0x0D, 0x0B, 0x0E, 0x0A, 0x0F, 0xD0, 0xE0, 0xA0, 0xD0, 0xB0, 0xE0, 0xA0, 0xF0,
Kazuki Yamamoto 12:db621ae6a076 161 0x0D, 0x0E, 0x0A, 0x0D, 0x0B, 0x0E, 0x0A, 0x0F, 0xD0, 0xE0, 0xA0, 0xD0, 0xB0, 0xE0, 0xA0, 0xF0,
Kazuki Yamamoto 12:db621ae6a076 162 0x0D, 0x0E, 0x0A, 0x0D, 0x0B, 0x0E, 0x0A, 0x0F, 0xD0, 0xE0, 0xA0, 0xD0, 0xB0, 0xE0, 0xA0, 0xF0,
Kazuki Yamamoto 12:db621ae6a076 163 0x0D, 0x0E, 0x0A, 0x0D, 0x0B, 0x0E, 0x0A, 0x0F, 0xD0, 0xE0, 0xA0, 0xD0, 0xB0, 0xE0, 0xA0, 0xF0,
Kazuki Yamamoto 12:db621ae6a076 164 0x0D, 0x0E, 0x0A, 0x0D, 0x0B, 0x0E, 0x0A, 0x0F, 0xD0, 0xE0, 0xA0, 0xD0, 0xB0, 0xE0, 0xA0, 0xF0,
Kazuki Yamamoto 12:db621ae6a076 165 0x0D, 0x0E, 0x0A, 0x0D, 0x0B, 0x0E, 0x0A, 0x0F, 0xD0, 0xE0, 0xA0, 0xD0, 0xB0, 0xE0, 0xA0, 0xF0,
Kazuki Yamamoto 12:db621ae6a076 166 0x0D, 0x0E, 0x0A, 0x0D, 0x0B, 0x0E, 0x0A, 0x0F, 0xD0, 0xE0, 0xA0, 0xD0, 0xB0, 0xE0, 0xA0, 0xF0,
Kazuki Yamamoto 12:db621ae6a076 167 0x0D, 0x0E, 0x0A, 0x0D, 0x0B, 0x0E, 0x0A, 0x0F, 0xD0, 0xE0, 0xA0, 0xD0, 0xB0, 0xE0, 0xA0, 0xF0,
Kazuki Yamamoto 12:db621ae6a076 168 0x0D, 0x0E, 0x0A, 0x0D, 0x0B, 0x0E, 0x0A, 0x0F, 0xD0, 0xE0, 0xA0, 0xD0, 0xB0, 0xE0, 0xA0, 0xF0,
Kazuki Yamamoto 12:db621ae6a076 169 0x0D, 0x0E, 0x0A, 0x0D, 0x0B, 0x0E, 0x0A, 0x0F, 0xD0, 0xE0, 0xA0, 0xD0, 0xB0, 0xE0, 0xA0, 0xF0,
Kazuki Yamamoto 12:db621ae6a076 170 0x0D, 0x0E, 0x0A, 0x0D, 0x0B, 0x0E, 0x0A, 0x0F, 0xD0, 0xE0, 0xA0, 0xD0, 0xB0, 0xE0, 0xA0, 0xF0,
Kazuki Yamamoto 12:db621ae6a076 171 0x0D, 0x0E, 0x0A, 0x0D, 0x0B, 0x0E, 0x0A, 0x0F, 0xD0, 0xE0, 0xA0, 0xD0, 0xB0, 0xE0, 0xA0, 0xF0,
Kazuki Yamamoto 12:db621ae6a076 172 0x0D, 0x0E, 0x0A, 0x0D, 0x0B, 0x0E, 0x0A, 0x0F, 0xD0, 0xE0, 0xA0, 0xD0, 0xB0, 0xE0, 0xA0, 0xF0,
Kazuki Yamamoto 12:db621ae6a076 173 0x0D, 0x0E, 0x0A, 0x0D, 0x0B, 0x0E, 0x0A, 0x0F, 0xD0, 0xE0, 0xA0, 0xD0, 0xB0, 0xE0, 0xA0, 0xF0,
Kazuki Yamamoto 12:db621ae6a076 174 0x0D, 0x0E, 0x0A, 0x0D, 0x0B, 0x0E, 0x0A, 0x0F, 0xD0, 0xE0, 0xA0, 0xD0, 0xB0, 0xE0, 0xA0, 0xF0,
Kazuki Yamamoto 12:db621ae6a076 175 };
Kazuki Yamamoto 12:db621ae6a076 176
Kazuki Yamamoto 12:db621ae6a076 177 char read = 0;
Kazuki Yamamoto 12:db621ae6a076 178 int address = 0;
Kazuki Yamamoto 12:db621ae6a076 179 int data = 0;
Kazuki Yamamoto 12:db621ae6a076 180 int _data = 0;
Kazuki Yamamoto 12:db621ae6a076 181 int length = 0;
Kazuki Yamamoto 12:db621ae6a076 182 int channel = 0;
Kazuki Yamamoto 12:db621ae6a076 183 bool CE = false;
Kazuki Yamamoto 13:aa9e9a6fcef9 184 enum command_e {
Kazuki Yamamoto 13:aa9e9a6fcef9 185 CMD_S='S',
Kazuki Yamamoto 13:aa9e9a6fcef9 186 CMD_P='P',
Kazuki Yamamoto 13:aa9e9a6fcef9 187 CMD_C='C',
Kazuki Yamamoto 13:aa9e9a6fcef9 188 CMD_R='R',
Kazuki Yamamoto 13:aa9e9a6fcef9 189 CMD_W='W',
Kazuki Yamamoto 13:aa9e9a6fcef9 190 CMD_I='I',
Kazuki Yamamoto 13:aa9e9a6fcef9 191 CMD_O='O',
Kazuki Yamamoto 13:aa9e9a6fcef9 192 };
Kazuki Yamamoto 9:844e301ab0fd 193 enum channel_e {
Kazuki Yamamoto 9:844e301ab0fd 194 CH0 = '0',
Kazuki Yamamoto 9:844e301ab0fd 195 CH1 = '1',
Kazuki Yamamoto 9:844e301ab0fd 196 CH2 = '2',
Kazuki Yamamoto 9:844e301ab0fd 197 CH3 = '3',
Kazuki Yamamoto 5:07f7000ec747 198 };
Kazuki Yamamoto 9:844e301ab0fd 199 enum register_e {
Kazuki Yamamoto 12:db621ae6a076 200 CHIP_ID = '0',
Kazuki Yamamoto 22:946c08f6daff 201 GPIO0_STAT = '1',
Kazuki Yamamoto 22:946c08f6daff 202 GPIO1_STAT = '2',
Kazuki Yamamoto 22:946c08f6daff 203 GPIO0_CONF = '3',
Kazuki Yamamoto 22:946c08f6daff 204 GPIO1_CONF = '4',
Kazuki Yamamoto 22:946c08f6daff 205 REG5,
Kazuki Yamamoto 22:946c08f6daff 206 REG6,
Kazuki Yamamoto 22:946c08f6daff 207 REG7,
Kazuki Yamamoto 22:946c08f6daff 208 REG8,
Kazuki Yamamoto 22:946c08f6daff 209 REG9,
Kazuki Yamamoto 9:844e301ab0fd 210 };
Kazuki Yamamoto 9:844e301ab0fd 211 enum chipID_e {
Kazuki Yamamoto 9:844e301ab0fd 212 ID_LPC824 = '0',
Kazuki Yamamoto 9:844e301ab0fd 213 ID_LPC1768 = '1',
Kazuki Yamamoto 9:844e301ab0fd 214 ID_LPC11UXX = '2',
Kazuki Yamamoto 9:844e301ab0fd 215 };
Kazuki Yamamoto 14:5319d562834e 216 static const uint8_t chip_id=ID_LPC824;
Kazuki Yamamoto 14:5319d562834e 217 static uint8_t registers[]={
Kazuki Yamamoto 14:5319d562834e 218 chip_id,
Kazuki Yamamoto 13:aa9e9a6fcef9 219 0xBB,
Kazuki Yamamoto 14:5319d562834e 220 0xCC,
Kazuki Yamamoto 22:946c08f6daff 221 0xDD,
Kazuki Yamamoto 22:946c08f6daff 222 0xEE,
Kazuki Yamamoto 24:223a68f33f09 223 REG5,
Kazuki Yamamoto 24:223a68f33f09 224 REG6,
Kazuki Yamamoto 24:223a68f33f09 225 REG7,
Kazuki Yamamoto 24:223a68f33f09 226 REG8,
Kazuki Yamamoto 24:223a68f33f09 227 REG9,
Kazuki Yamamoto 9:844e301ab0fd 228 };
Kazuki Yamamoto 9:844e301ab0fd 229
Kazuki Yamamoto 5:07f7000ec747 230 int i=0;
Kazuki Yamamoto 5:07f7000ec747 231 while(1) {
Kazuki Yamamoto 12:db621ae6a076 232 i=0;
Kazuki Yamamoto 12:db621ae6a076 233 length=0;
Kazuki Yamamoto 5:07f7000ec747 234 while(true) {
Kazuki Yamamoto 5:07f7000ec747 235 read=pc.getc();
Kazuki Yamamoto 5:07f7000ec747 236 recieve[i]=read;
Kazuki Yamamoto 5:07f7000ec747 237 i++;
Kazuki Yamamoto 5:07f7000ec747 238 if(read == 'P') {
Kazuki Yamamoto 5:07f7000ec747 239 plength=i;
Kazuki Yamamoto 5:07f7000ec747 240 break;
Kazuki Yamamoto 5:07f7000ec747 241 }
Kazuki Yamamoto 5:07f7000ec747 242 }
Kazuki Yamamoto 5:07f7000ec747 243 i=0;
Kazuki Yamamoto 9:844e301ab0fd 244 while(i < plength) {
Kazuki Yamamoto 5:07f7000ec747 245 switch(recieve[i]) {
Kazuki Yamamoto 13:aa9e9a6fcef9 246 case CMD_C:
Kazuki Yamamoto 5:07f7000ec747 247 {
Kazuki Yamamoto 5:07f7000ec747 248 channel=recieve[i+1];
Kazuki Yamamoto 5:07f7000ec747 249 switch(channel) {
Kazuki Yamamoto 9:844e301ab0fd 250 case CH0:
Kazuki Yamamoto 5:07f7000ec747 251 {
Kazuki Yamamoto 18:e3286a42cf0e 252 channel = CH0;
Kazuki Yamamoto 5:07f7000ec747 253 dev=&dev1;
Kazuki Yamamoto 5:07f7000ec747 254 break;
Kazuki Yamamoto 5:07f7000ec747 255 }
Kazuki Yamamoto 22:946c08f6daff 256 #ifdef QUAD_I2C
Kazuki Yamamoto 9:844e301ab0fd 257 case CH1:
Kazuki Yamamoto 5:07f7000ec747 258 {
Kazuki Yamamoto 18:e3286a42cf0e 259 channel = CH1;
Kazuki Yamamoto 5:07f7000ec747 260 dev=&dev2;
Kazuki Yamamoto 5:07f7000ec747 261 break;
Kazuki Yamamoto 5:07f7000ec747 262 }
Kazuki Yamamoto 9:844e301ab0fd 263 case CH2:
Kazuki Yamamoto 5:07f7000ec747 264 {
Kazuki Yamamoto 18:e3286a42cf0e 265 channel = CH2;
Kazuki Yamamoto 5:07f7000ec747 266 dev=&dev3;
Kazuki Yamamoto 5:07f7000ec747 267 break;
Kazuki Yamamoto 5:07f7000ec747 268 }
Kazuki Yamamoto 9:844e301ab0fd 269 case CH3:
Kazuki Yamamoto 5:07f7000ec747 270 {
Kazuki Yamamoto 18:e3286a42cf0e 271 channel = CH3;
Kazuki Yamamoto 5:07f7000ec747 272 dev=&dev4;
Kazuki Yamamoto 5:07f7000ec747 273 break;
Kazuki Yamamoto 5:07f7000ec747 274 }
Kazuki Yamamoto 22:946c08f6daff 275 #endif
Kazuki Yamamoto 5:07f7000ec747 276 default:
Kazuki Yamamoto 5:07f7000ec747 277 {
Kazuki Yamamoto 18:e3286a42cf0e 278 channel = CH0;
Kazuki Yamamoto 5:07f7000ec747 279 dev=&dev1;
Kazuki Yamamoto 5:07f7000ec747 280 break;
Kazuki Yamamoto 5:07f7000ec747 281 }
Kazuki Yamamoto 5:07f7000ec747 282 }
Kazuki Yamamoto 5:07f7000ec747 283 i+=(2);
Kazuki Yamamoto 5:07f7000ec747 284 break;
Kazuki Yamamoto 5:07f7000ec747 285 }
Kazuki Yamamoto 13:aa9e9a6fcef9 286 case CMD_S:
Kazuki Yamamoto 5:07f7000ec747 287 {
Kazuki Yamamoto 9:844e301ab0fd 288 s = true;
Kazuki Yamamoto 9:844e301ab0fd 289 ack = plength - 2 - (i+1) + (recieve[i+2] & 0x01);
Kazuki Yamamoto 18:e3286a42cf0e 290 if(ack >= 4){ //valid packet
Kazuki Yamamoto 9:844e301ab0fd 291 address = 0xff & (recieve[i+1] << 4 | (recieve[i+2] & 0x0F));
Kazuki Yamamoto 9:844e301ab0fd 292 length = 0xff & (recieve[i+3] << 4 | (recieve[i+4] & 0x0F));
Kazuki Yamamoto 18:e3286a42cf0e 293
Kazuki Yamamoto 22:946c08f6daff 294 if(address & 0x01) { //read
Kazuki Yamamoto 11:0d8359a6e2c2 295 dev->read(address, send, length, false); //added
Kazuki Yamamoto 11:0d8359a6e2c2 296 i+=(5);
Kazuki Yamamoto 18:e3286a42cf0e 297 } else { // write
Kazuki Yamamoto 11:0d8359a6e2c2 298 for(int j=0; j < (length * 2); j+=2) {
Kazuki Yamamoto 15:98ec6b372a2b 299 ack = 0xff&((recieve[5+j] << 4) | (recieve[6+j] & 0x0F));
Kazuki Yamamoto 11:0d8359a6e2c2 300 *(send+(j/2)) = ack; //added
Kazuki Yamamoto 11:0d8359a6e2c2 301 }
Kazuki Yamamoto 11:0d8359a6e2c2 302 dev->write(address, send, length, true); //added
Kazuki Yamamoto 11:0d8359a6e2c2 303 i+=(5 + length * 2);
Kazuki Yamamoto 11:0d8359a6e2c2 304 length=0;
Kazuki Yamamoto 11:0d8359a6e2c2 305 }
Kazuki Yamamoto 9:844e301ab0fd 306 }else{
Kazuki Yamamoto 9:844e301ab0fd 307 pc.printf("bad packet! %d, %d, %02X, %d\n\r",plength,i,recieve[(i+2)]&0x0F,ack);
Kazuki Yamamoto 11:0d8359a6e2c2 308 i = plength;
Kazuki Yamamoto 5:07f7000ec747 309 }
Kazuki Yamamoto 5:07f7000ec747 310 break;
Kazuki Yamamoto 5:07f7000ec747 311 }
Kazuki Yamamoto 13:aa9e9a6fcef9 312 case CMD_P:
Kazuki Yamamoto 9:844e301ab0fd 313 {
Kazuki Yamamoto 5:07f7000ec747 314 if(s){
Kazuki Yamamoto 5:07f7000ec747 315 dev->stop();
Kazuki Yamamoto 11:0d8359a6e2c2 316 s = false;
Kazuki Yamamoto 5:07f7000ec747 317 }
Kazuki Yamamoto 11:0d8359a6e2c2 318 i = plength;
Kazuki Yamamoto 5:07f7000ec747 319 for(int j=0; j<length; j++) {
Kazuki Yamamoto 5:07f7000ec747 320 pc.printf("%02X,",send[j]);
Kazuki Yamamoto 5:07f7000ec747 321 }
Kazuki Yamamoto 5:07f7000ec747 322 pc.printf("ok\n\r");
Kazuki Yamamoto 5:07f7000ec747 323 break;
Kazuki Yamamoto 9:844e301ab0fd 324 }
Kazuki Yamamoto 13:aa9e9a6fcef9 325 case CMD_R:
Kazuki Yamamoto 9:844e301ab0fd 326 {
Kazuki Yamamoto 11:0d8359a6e2c2 327 length = plength - 2;
Kazuki Yamamoto 16:ba11339fd9c6 328 if(length<1){
Kazuki Yamamoto 16:ba11339fd9c6 329 pc.printf("bad packet! %d\n\r",length);
Kazuki Yamamoto 16:ba11339fd9c6 330 i = plength + 1;
Kazuki Yamamoto 16:ba11339fd9c6 331 length = 0;
Kazuki Yamamoto 16:ba11339fd9c6 332 }else{
Kazuki Yamamoto 16:ba11339fd9c6 333 for(int j=0; j<length; j++){
Kazuki Yamamoto 16:ba11339fd9c6 334 address = recieve[i+1+j];
Kazuki Yamamoto 16:ba11339fd9c6 335 switch(address){
Kazuki Yamamoto 16:ba11339fd9c6 336 case CHIP_ID:
Kazuki Yamamoto 16:ba11339fd9c6 337 {
Kazuki Yamamoto 16:ba11339fd9c6 338 data = chip_id;
Kazuki Yamamoto 22:946c08f6daff 339 break;
Kazuki Yamamoto 22:946c08f6daff 340 }
Kazuki Yamamoto 22:946c08f6daff 341 case GPIO0_STAT:
Kazuki Yamamoto 22:946c08f6daff 342 {
Kazuki Yamamoto 22:946c08f6daff 343 data = registers[GPIO0_STAT-'0'];
Kazuki Yamamoto 16:ba11339fd9c6 344 break;
Kazuki Yamamoto 16:ba11339fd9c6 345 }
Kazuki Yamamoto 22:946c08f6daff 346 case GPIO0_CONF:
Kazuki Yamamoto 16:ba11339fd9c6 347 {
Kazuki Yamamoto 22:946c08f6daff 348 data = registers[GPIO0_CONF-'0'];
Kazuki Yamamoto 16:ba11339fd9c6 349 break;
Kazuki Yamamoto 16:ba11339fd9c6 350 }
Kazuki Yamamoto 22:946c08f6daff 351 case GPIO1_STAT:
Kazuki Yamamoto 16:ba11339fd9c6 352 {
Kazuki Yamamoto 22:946c08f6daff 353 data = registers[GPIO1_STAT-'0'];
Kazuki Yamamoto 22:946c08f6daff 354 break;
Kazuki Yamamoto 22:946c08f6daff 355 }
Kazuki Yamamoto 22:946c08f6daff 356 case GPIO1_CONF:
Kazuki Yamamoto 22:946c08f6daff 357 {
Kazuki Yamamoto 22:946c08f6daff 358 data = registers[GPIO1_CONF-'0'];
Kazuki Yamamoto 16:ba11339fd9c6 359 break;
Kazuki Yamamoto 16:ba11339fd9c6 360 }
Kazuki Yamamoto 16:ba11339fd9c6 361 default:
Kazuki Yamamoto 16:ba11339fd9c6 362 {
Kazuki Yamamoto 16:ba11339fd9c6 363 data = 0xAA;
Kazuki Yamamoto 16:ba11339fd9c6 364 break;
Kazuki Yamamoto 16:ba11339fd9c6 365 }
Kazuki Yamamoto 11:0d8359a6e2c2 366 }
Kazuki Yamamoto 16:ba11339fd9c6 367 send[j] = (char)data;
Kazuki Yamamoto 11:0d8359a6e2c2 368 }
Kazuki Yamamoto 16:ba11339fd9c6 369 i += (length+1);
Kazuki Yamamoto 11:0d8359a6e2c2 370 }
Kazuki Yamamoto 5:07f7000ec747 371 break;
Kazuki Yamamoto 9:844e301ab0fd 372 }
Kazuki Yamamoto 13:aa9e9a6fcef9 373 case CMD_W:
Kazuki Yamamoto 9:844e301ab0fd 374 {
Kazuki Yamamoto 11:0d8359a6e2c2 375 length = plength - 2;
Kazuki Yamamoto 11:0d8359a6e2c2 376 if(length < 3){
Kazuki Yamamoto 11:0d8359a6e2c2 377 pc.printf("bad packet! %d\n\r",length);
Kazuki Yamamoto 11:0d8359a6e2c2 378 i = plength + 1;
Kazuki Yamamoto 16:ba11339fd9c6 379 length = 0;
Kazuki Yamamoto 11:0d8359a6e2c2 380 }else{
Kazuki Yamamoto 11:0d8359a6e2c2 381 for(int j=0; j<length; j+=3){
Kazuki Yamamoto 11:0d8359a6e2c2 382 address = recieve[i+1+j];
Kazuki Yamamoto 15:98ec6b372a2b 383 data = 0xff & (recieve[i+2+j] << 4 | (recieve[i+3+j] & 0x0F));
Kazuki Yamamoto 11:0d8359a6e2c2 384 switch(address){
Kazuki Yamamoto 11:0d8359a6e2c2 385 case CHIP_ID:
Kazuki Yamamoto 11:0d8359a6e2c2 386 {
Kazuki Yamamoto 11:0d8359a6e2c2 387 //READ ONLY: do nothing
Kazuki Yamamoto 16:ba11339fd9c6 388 data = registers[CHIP_ID-'0'];
Kazuki Yamamoto 11:0d8359a6e2c2 389 break;
Kazuki Yamamoto 11:0d8359a6e2c2 390 }
Kazuki Yamamoto 22:946c08f6daff 391 case GPIO0_STAT:
Kazuki Yamamoto 11:0d8359a6e2c2 392 {
Kazuki Yamamoto 12:db621ae6a076 393 //READ ONLY from this command: do nothing
Kazuki Yamamoto 22:946c08f6daff 394 data = registers[GPIO0_STAT-'0'];
Kazuki Yamamoto 11:0d8359a6e2c2 395 break;
Kazuki Yamamoto 11:0d8359a6e2c2 396 }
Kazuki Yamamoto 22:946c08f6daff 397 case GPIO0_CONF:
Kazuki Yamamoto 11:0d8359a6e2c2 398 {
Kazuki Yamamoto 22:946c08f6daff 399 registers[GPIO0_CONF-'0'] = data;
Kazuki Yamamoto 16:ba11339fd9c6 400 for(int k=0; k<8; k++){
Kazuki Yamamoto 16:ba11339fd9c6 401 if(data&0x01){//output
Kazuki Yamamoto 18:e3286a42cf0e 402 gpio0[k]->output();
Kazuki Yamamoto 16:ba11339fd9c6 403 }else{//input
Kazuki Yamamoto 18:e3286a42cf0e 404 gpio0[k]->input();
Kazuki Yamamoto 18:e3286a42cf0e 405 gpio0[k]->mode(PullUp);
Kazuki Yamamoto 16:ba11339fd9c6 406 }
Kazuki Yamamoto 16:ba11339fd9c6 407 data >>= 1;
Kazuki Yamamoto 16:ba11339fd9c6 408 }
Kazuki Yamamoto 22:946c08f6daff 409 data = registers[GPIO0_CONF-'0'];
Kazuki Yamamoto 22:946c08f6daff 410 break;
Kazuki Yamamoto 22:946c08f6daff 411 }
Kazuki Yamamoto 22:946c08f6daff 412 case GPIO1_STAT:
Kazuki Yamamoto 22:946c08f6daff 413 {
Kazuki Yamamoto 22:946c08f6daff 414 //READ ONLY from this command: do nothing
Kazuki Yamamoto 22:946c08f6daff 415 data = registers[GPIO1_STAT-'0'];
Kazuki Yamamoto 22:946c08f6daff 416 break;
Kazuki Yamamoto 22:946c08f6daff 417 }
Kazuki Yamamoto 22:946c08f6daff 418 case GPIO1_CONF:
Kazuki Yamamoto 22:946c08f6daff 419 {
Kazuki Yamamoto 22:946c08f6daff 420 registers[GPIO1_CONF-'0'] = data;
Kazuki Yamamoto 22:946c08f6daff 421 #ifndef QUAD_I2C
Kazuki Yamamoto 22:946c08f6daff 422 for(int k=0; k<6; k++){
Kazuki Yamamoto 22:946c08f6daff 423 if(data&0x01){//output
Kazuki Yamamoto 22:946c08f6daff 424 gpio1[k]->output();
Kazuki Yamamoto 22:946c08f6daff 425 }else{//input
Kazuki Yamamoto 22:946c08f6daff 426 gpio1[k]->input();
Kazuki Yamamoto 22:946c08f6daff 427 gpio1[k]->mode(PullUp);
Kazuki Yamamoto 22:946c08f6daff 428 }
Kazuki Yamamoto 22:946c08f6daff 429 data >>= 1;
Kazuki Yamamoto 22:946c08f6daff 430 }
Kazuki Yamamoto 22:946c08f6daff 431 #endif
Kazuki Yamamoto 22:946c08f6daff 432 data = registers[GPIO1_CONF-'0'];
Kazuki Yamamoto 11:0d8359a6e2c2 433 break;
Kazuki Yamamoto 11:0d8359a6e2c2 434 }
Kazuki Yamamoto 11:0d8359a6e2c2 435 default:
Kazuki Yamamoto 11:0d8359a6e2c2 436 {
Kazuki Yamamoto 11:0d8359a6e2c2 437 break;
Kazuki Yamamoto 11:0d8359a6e2c2 438 }
Kazuki Yamamoto 11:0d8359a6e2c2 439 }
Kazuki Yamamoto 16:ba11339fd9c6 440 send[j/3] = (char)data;
Kazuki Yamamoto 11:0d8359a6e2c2 441 }
Kazuki Yamamoto 16:ba11339fd9c6 442 i += length+1;
Kazuki Yamamoto 16:ba11339fd9c6 443 length /= 3;
Kazuki Yamamoto 11:0d8359a6e2c2 444 }
Kazuki Yamamoto 9:844e301ab0fd 445 break;
Kazuki Yamamoto 9:844e301ab0fd 446 }
Kazuki Yamamoto 13:aa9e9a6fcef9 447 case CMD_I:
Kazuki Yamamoto 9:844e301ab0fd 448 {
Kazuki Yamamoto 18:e3286a42cf0e 449 length = plength - 2;
Kazuki Yamamoto 18:e3286a42cf0e 450 data = 0;
Kazuki Yamamoto 18:e3286a42cf0e 451 if(length != 0){
Kazuki Yamamoto 18:e3286a42cf0e 452 pc.printf("bad packet! %d\n\r",length);
Kazuki Yamamoto 18:e3286a42cf0e 453 i = plength + 1;
Kazuki Yamamoto 18:e3286a42cf0e 454 length = 0;
Kazuki Yamamoto 18:e3286a42cf0e 455 }else{
Kazuki Yamamoto 18:e3286a42cf0e 456 for(int j=0; j<8; j++){
Kazuki Yamamoto 18:e3286a42cf0e 457 _data = gpio0[j]->read();
Kazuki Yamamoto 24:223a68f33f09 458 pc.printf("_%02X, ",_data);
Kazuki Yamamoto 18:e3286a42cf0e 459 data |= (_data << j);
Kazuki Yamamoto 18:e3286a42cf0e 460 }
Kazuki Yamamoto 22:946c08f6daff 461 registers[GPIO0_STAT-'0'] = data;
Kazuki Yamamoto 18:e3286a42cf0e 462 send[0] = data;
Kazuki Yamamoto 18:e3286a42cf0e 463 length = 1;
Kazuki Yamamoto 18:e3286a42cf0e 464 }
Kazuki Yamamoto 24:223a68f33f09 465 pc.printf("%02X, ",data);
Kazuki Yamamoto 18:e3286a42cf0e 466 i+=length;
Kazuki Yamamoto 5:07f7000ec747 467 break;
Kazuki Yamamoto 9:844e301ab0fd 468 }
Kazuki Yamamoto 13:aa9e9a6fcef9 469 case CMD_O:
Kazuki Yamamoto 9:844e301ab0fd 470 {
Kazuki Yamamoto 18:e3286a42cf0e 471 length = plength - 2;
Kazuki Yamamoto 18:e3286a42cf0e 472 if(length != 2){
Kazuki Yamamoto 18:e3286a42cf0e 473 pc.printf("bad packet! %d\n\r",length);
Kazuki Yamamoto 18:e3286a42cf0e 474 i = plength + 1;
Kazuki Yamamoto 18:e3286a42cf0e 475 length = 0;
Kazuki Yamamoto 18:e3286a42cf0e 476 }else{
Kazuki Yamamoto 18:e3286a42cf0e 477 data = 0xff & (recieve[i+1] << 4 | (recieve[i+2] & 0x0F));
Kazuki Yamamoto 22:946c08f6daff 478 _data = registers[GPIO0_CONF-'0'];
Kazuki Yamamoto 18:e3286a42cf0e 479 send[0] = (char)data;
Kazuki Yamamoto 18:e3286a42cf0e 480 for(int j=0; j<8; j++){
Kazuki Yamamoto 18:e3286a42cf0e 481 if(_data&0x01){ // output
Kazuki Yamamoto 18:e3286a42cf0e 482 gpio0[j]->write(data&0x01);
Kazuki Yamamoto 18:e3286a42cf0e 483 }else{ // input
Kazuki Yamamoto 18:e3286a42cf0e 484 ; // do nothing
Kazuki Yamamoto 18:e3286a42cf0e 485 }
Kazuki Yamamoto 18:e3286a42cf0e 486 data >>= 1;
Kazuki Yamamoto 18:e3286a42cf0e 487 _data >>= 1;
Kazuki Yamamoto 18:e3286a42cf0e 488 }
Kazuki Yamamoto 18:e3286a42cf0e 489 i += length+1;
Kazuki Yamamoto 18:e3286a42cf0e 490 length = 1;
Kazuki Yamamoto 18:e3286a42cf0e 491 }
Kazuki Yamamoto 18:e3286a42cf0e 492 // pc.printf("command O is not implemented, ");
Kazuki Yamamoto 5:07f7000ec747 493 break;
Kazuki Yamamoto 9:844e301ab0fd 494 }
Kazuki Yamamoto 9:844e301ab0fd 495 case 'Z':
Kazuki Yamamoto 9:844e301ab0fd 496 {
Kazuki Yamamoto 9:844e301ab0fd 497 pc.printf("command Z is not implemented\n\r");
Kazuki Yamamoto 5:07f7000ec747 498 i=plength;
Kazuki Yamamoto 5:07f7000ec747 499 break;
Kazuki Yamamoto 9:844e301ab0fd 500 }
Kazuki Yamamoto 9:844e301ab0fd 501 case 'E':
Kazuki Yamamoto 9:844e301ab0fd 502 {
Kazuki Yamamoto 9:844e301ab0fd 503 pc.printf("command E is not implemented\n\r");
Kazuki Yamamoto 5:07f7000ec747 504 i=plength;
Kazuki Yamamoto 5:07f7000ec747 505 break;
Kazuki Yamamoto 9:844e301ab0fd 506 }
Kazuki Yamamoto 9:844e301ab0fd 507 case 'V':
Kazuki Yamamoto 9:844e301ab0fd 508 {
Kazuki Yamamoto 9:844e301ab0fd 509 pc.printf("command V is not implemented\n\r");
Kazuki Yamamoto 5:07f7000ec747 510 i=plength;
Kazuki Yamamoto 5:07f7000ec747 511 break;
Kazuki Yamamoto 9:844e301ab0fd 512 }
Kazuki Yamamoto 9:844e301ab0fd 513 default:
Kazuki Yamamoto 9:844e301ab0fd 514 {
Kazuki Yamamoto 16:ba11339fd9c6 515 pc.printf("command %c is not implemented\n\r", recieve[i]);
Kazuki Yamamoto 9:844e301ab0fd 516 i=plength;
Kazuki Yamamoto 9:844e301ab0fd 517 break;
Kazuki Yamamoto 9:844e301ab0fd 518 }
Kazuki Yamamoto 5:07f7000ec747 519 }
Kazuki Yamamoto 5:07f7000ec747 520 }
Kazuki Yamamoto 5:07f7000ec747 521 i=0;
Kazuki Yamamoto 5:07f7000ec747 522 length=0;
Kazuki Yamamoto 5:07f7000ec747 523 }
Kazuki Yamamoto 5:07f7000ec747 524 }