Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
LPC824/main.cpp@19:93814b431bf5, 2014-12-11 (annotated)
- Committer:
- Kazuki Yamamoto
- Date:
- Thu Dec 11 19:21:12 2014 +0900
- Revision:
- 19:93814b431bf5
- Parent:
- 18:e3286a42cf0e
- Child:
- 22:946c08f6daff
[ LPC824 ] Pinout setting(commented out)
Who changed what in which revision?
User | Revision | Line number | New 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 |
5:07f7000ec747 | 5 | |
Kazuki Yamamoto |
5:07f7000ec747 | 6 | Serial pc(USBTX,USBRX); |
Kazuki Yamamoto |
19:93814b431bf5 | 7 | /* |
Kazuki Yamamoto |
19:93814b431bf5 | 8 | Serial pc(P0_4, P0_0); |
Kazuki Yamamoto |
19:93814b431bf5 | 9 | */ |
Kazuki Yamamoto |
9:844e301ab0fd | 10 | I2C dev1(I2C_SDA, I2C_SCL);//11,10 hard coded |
Kazuki Yamamoto |
9:844e301ab0fd | 11 | |
Kazuki Yamamoto |
18:e3286a42cf0e | 12 | I2C dev2(P0_6, P0_14);//6,14 | A0, A1 |
Kazuki Yamamoto |
18:e3286a42cf0e | 13 | I2C dev3(P0_23, P0_22);//23,22 | A2, A3 |
Kazuki Yamamoto |
18:e3286a42cf0e | 14 | I2C dev4(P0_21, P0_20);//21,20 | A4, A5 |
Kazuki Yamamoto |
18:e3286a42cf0e | 15 | /* |
Kazuki Yamamoto |
18:e3286a42cf0e | 16 | I2C dev2(P0_16, P0_27); |
Kazuki Yamamoto |
18:e3286a42cf0e | 17 | I2C dev3(P0_26, P0_25); |
Kazuki Yamamoto |
18:e3286a42cf0e | 18 | I2C dev4(P0_24, P0_15); |
Kazuki Yamamoto |
18:e3286a42cf0e | 19 | */ |
Kazuki Yamamoto |
19:93814b431bf5 | 20 | DigitalInOut _GPIO0(D0); // P0_0 |
Kazuki Yamamoto |
19:93814b431bf5 | 21 | DigitalInOut _GPIO1(D1); // P0_4 |
Kazuki Yamamoto |
19:93814b431bf5 | 22 | DigitalInOut _GPIO2(D2); // P0_19 |
Kazuki Yamamoto |
19:93814b431bf5 | 23 | DigitalInOut _GPIO3(D4); // P0_18 |
Kazuki Yamamoto |
19:93814b431bf5 | 24 | DigitalInOut _GPIO4(D5); // P0_28 |
Kazuki Yamamoto |
19:93814b431bf5 | 25 | DigitalInOut _GPIO5(D7); // P0_17 |
Kazuki Yamamoto |
19:93814b431bf5 | 26 | DigitalInOut _GPIO6(D8); // P0_13 |
Kazuki Yamamoto |
19:93814b431bf5 | 27 | DigitalInOut _GPIO7(D10); // P0_15 |
Kazuki Yamamoto |
18:e3286a42cf0e | 28 | /* |
Kazuki Yamamoto |
19:93814b431bf5 | 29 | DigitalInOut _GPIO00(P0_13); |
Kazuki Yamamoto |
19:93814b431bf5 | 30 | DigitalInOut _GPIO01(P0_17); |
Kazuki Yamamoto |
19:93814b431bf5 | 31 | DigitalInOut _GPIO02(P0_18); |
Kazuki Yamamoto |
19:93814b431bf5 | 32 | DigitalInOut _GPIO03(P0_19); |
Kazuki Yamamoto |
19:93814b431bf5 | 33 | DigitalInOut _GPIO04(P0_20); |
Kazuki Yamamoto |
19:93814b431bf5 | 34 | DigitalInOut _GPIO05(P0_21); |
Kazuki Yamamoto |
19:93814b431bf5 | 35 | DigitalInOut _GPIO06(P0_22); |
Kazuki Yamamoto |
19:93814b431bf5 | 36 | DigitalInOut _GPIO07(P0_23); |
Kazuki Yamamoto |
19:93814b431bf5 | 37 | |
Kazuki Yamamoto |
19:93814b431bf5 | 38 | DigitalInOut _GPIO10(P0_14); |
Kazuki Yamamoto |
19:93814b431bf5 | 39 | DigitalInOut _GPIO11(P0_1); |
Kazuki Yamamoto |
19:93814b431bf5 | 40 | //DigitalInOut _GPIO12( ); |
Kazuki Yamamoto |
19:93814b431bf5 | 41 | //DigitalInOut _GPIO13( ); |
Kazuki Yamamoto |
19:93814b431bf5 | 42 | //DigitalInOut _GPIO14( ); |
Kazuki Yamamoto |
19:93814b431bf5 | 43 | //DigitalInOut _GPIO15( ); |
Kazuki Yamamoto |
18:e3286a42cf0e | 44 | */ |
Kazuki Yamamoto |
5:07f7000ec747 | 45 | |
Kazuki Yamamoto |
18:e3286a42cf0e | 46 | SPI _spi(D11, D12, D13); // mosi, miso, sclk |
Kazuki Yamamoto |
18:e3286a42cf0e | 47 | /* |
Kazuki Yamamoto |
18:e3286a42cf0e | 48 | SPI _spi(P0_6, P0_7, P0_8); // mosi, miso, sclk |
Kazuki Yamamoto |
18:e3286a42cf0e | 49 | DigitalOut _cs(P0_9) // CS |
Kazuki Yamamoto |
18:e3286a42cf0e | 50 | */ |
Kazuki Yamamoto |
19:93814b431bf5 | 51 | |
Kazuki Yamamoto |
19:93814b431bf5 | 52 | /** |
Kazuki Yamamoto |
19:93814b431bf5 | 53 | */ |
Kazuki Yamamoto |
5:07f7000ec747 | 54 | //Table 3. ASCII commands supported by SC18IM700 |
Kazuki Yamamoto |
5:07f7000ec747 | 55 | //ASCII command Hex value Command function |
Kazuki Yamamoto |
5:07f7000ec747 | 56 | //[X] S 0x53 I2C-bus START |
Kazuki Yamamoto |
5:07f7000ec747 | 57 | //[X] P 0x50 I2C-bus STOP |
Kazuki Yamamoto |
9:844e301ab0fd | 58 | //[?] R 0x52 read SC18IM700 internal register |
Kazuki Yamamoto |
9:844e301ab0fd | 59 | //[?] W 0x57 write to SC18IM700 internal register |
Kazuki Yamamoto |
9:844e301ab0fd | 60 | //[?] I 0x49 read GPIO port |
Kazuki Yamamoto |
9:844e301ab0fd | 61 | //[?] O 0x4F write to GPIO port |
Kazuki Yamamoto |
5:07f7000ec747 | 62 | //[_] Z 0x5A power down |
Kazuki Yamamoto |
5:07f7000ec747 | 63 | //[X] C 0x43 change channel |
Kazuki Yamamoto |
9:844e301ab0fd | 64 | //[_] E 0x45 enable chip |
Kazuki Yamamoto |
9:844e301ab0fd | 65 | //[_] V 0x__ enable VDDIO output to chip |
Kazuki Yamamoto |
5:07f7000ec747 | 66 | |
Kazuki Yamamoto |
12:db621ae6a076 | 67 | /** |
Kazuki Yamamoto |
12:db621ae6a076 | 68 | "C| '0'| P" |
Kazuki Yamamoto |
12:db621ae6a076 | 69 | "C| '1'| P" |
Kazuki Yamamoto |
12:db621ae6a076 | 70 | "C| '2'| P" |
Kazuki Yamamoto |
12:db621ae6a076 | 71 | "C| '3'| P" |
Kazuki Yamamoto |
12:db621ae6a076 | 72 | "S| 0x_8 _0| 0x_0 _4| 0x_D _E _A _D _B _E _A _F| P" |
Kazuki Yamamoto |
12:db621ae6a076 | 73 | "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 | 74 | "S| 0x_8 _1| 0x_0 _4| P" |
Kazuki Yamamoto |
12:db621ae6a076 | 75 | "R| '0'| P" |
Kazuki Yamamoto |
12:db621ae6a076 | 76 | "R| '0'| '1'| ...| P" |
Kazuki Yamamoto |
12:db621ae6a076 | 77 | "W| '0' 0x_a _a| P" |
Kazuki Yamamoto |
12:db621ae6a076 | 78 | "W| '0' 0x_a _a| '1' 0x_b _b| ...| P" |
Kazuki Yamamoto |
12:db621ae6a076 | 79 | "I| P" |
Kazuki Yamamoto |
12:db621ae6a076 | 80 | "O| 0x_a _a| P" |
Kazuki Yamamoto |
12:db621ae6a076 | 81 | */ |
Kazuki Yamamoto |
5:07f7000ec747 | 82 | int main() |
Kazuki Yamamoto |
5:07f7000ec747 | 83 | { |
Kazuki Yamamoto |
5:07f7000ec747 | 84 | I2C* dev=&dev1; |
Kazuki Yamamoto |
5:07f7000ec747 | 85 | pc.baud(115200); |
Kazuki Yamamoto |
9:844e301ab0fd | 86 | |
Kazuki Yamamoto |
9:844e301ab0fd | 87 | LPC_IOCON->PIO0_11 &= ~(0x02<<8); |
Kazuki Yamamoto |
9:844e301ab0fd | 88 | LPC_IOCON->PIO0_11 |= (0x02<<8); |
Kazuki Yamamoto |
9:844e301ab0fd | 89 | LPC_IOCON->PIO0_10 &= ~(0x02<<8); |
Kazuki Yamamoto |
9:844e301ab0fd | 90 | LPC_IOCON->PIO0_10 |= (0x02<<8); |
Kazuki Yamamoto |
5:07f7000ec747 | 91 | |
Kazuki Yamamoto |
9:844e301ab0fd | 92 | bool s = false; |
Kazuki Yamamoto |
9:844e301ab0fd | 93 | dev1.frequency(800000);//800k not work at 1M? too large pullup? |
Kazuki Yamamoto |
9:844e301ab0fd | 94 | dev2.frequency(400000);//400k |
Kazuki Yamamoto |
9:844e301ab0fd | 95 | dev3.frequency(400000);//400k |
Kazuki Yamamoto |
9:844e301ab0fd | 96 | dev4.frequency(400000);//400k |
Kazuki Yamamoto |
16:ba11339fd9c6 | 97 | |
Kazuki Yamamoto |
18:e3286a42cf0e | 98 | DigitalInOut* gpio0[]={ |
Kazuki Yamamoto |
11:0d8359a6e2c2 | 99 | &_GPIO0, |
Kazuki Yamamoto |
11:0d8359a6e2c2 | 100 | &_GPIO1, |
Kazuki Yamamoto |
11:0d8359a6e2c2 | 101 | &_GPIO2, |
Kazuki Yamamoto |
11:0d8359a6e2c2 | 102 | &_GPIO3, |
Kazuki Yamamoto |
11:0d8359a6e2c2 | 103 | &_GPIO4, |
Kazuki Yamamoto |
11:0d8359a6e2c2 | 104 | &_GPIO5, |
Kazuki Yamamoto |
11:0d8359a6e2c2 | 105 | &_GPIO6, |
Kazuki Yamamoto |
11:0d8359a6e2c2 | 106 | &_GPIO7, |
Kazuki Yamamoto |
18:e3286a42cf0e | 107 | }; |
Kazuki Yamamoto |
16:ba11339fd9c6 | 108 | for(int k=0; k<8; k++){ |
Kazuki Yamamoto |
18:e3286a42cf0e | 109 | gpio0[k]->input(); |
Kazuki Yamamoto |
18:e3286a42cf0e | 110 | gpio0[k]->mode(PullUp); |
Kazuki Yamamoto |
16:ba11339fd9c6 | 111 | } |
Kazuki Yamamoto |
16:ba11339fd9c6 | 112 | |
Kazuki Yamamoto |
12:db621ae6a076 | 113 | int ack = 0; |
Kazuki Yamamoto |
12:db621ae6a076 | 114 | int plength = 0; |
Kazuki Yamamoto |
12:db621ae6a076 | 115 | char recieve[] = { |
Kazuki Yamamoto |
12:db621ae6a076 | 116 | 0x0D, 0x0E, 0x0A, 0x0D, 0x0B, 0x0E, 0x0A, 0x0F, 0xD0, 0xE0, 0xA0, 0xD0, 0xB0, 0xE0, 0xA0, 0xF0, |
Kazuki Yamamoto |
12:db621ae6a076 | 117 | 0x0D, 0x0E, 0x0A, 0x0D, 0x0B, 0x0E, 0x0A, 0x0F, 0xD0, 0xE0, 0xA0, 0xD0, 0xB0, 0xE0, 0xA0, 0xF0, |
Kazuki Yamamoto |
12:db621ae6a076 | 118 | 0x0D, 0x0E, 0x0A, 0x0D, 0x0B, 0x0E, 0x0A, 0x0F, 0xD0, 0xE0, 0xA0, 0xD0, 0xB0, 0xE0, 0xA0, 0xF0, |
Kazuki Yamamoto |
12:db621ae6a076 | 119 | 0x0D, 0x0E, 0x0A, 0x0D, 0x0B, 0x0E, 0x0A, 0x0F, 0xD0, 0xE0, 0xA0, 0xD0, 0xB0, 0xE0, 0xA0, 0xF0, |
Kazuki Yamamoto |
12:db621ae6a076 | 120 | 0x0D, 0x0E, 0x0A, 0x0D, 0x0B, 0x0E, 0x0A, 0x0F, 0xD0, 0xE0, 0xA0, 0xD0, 0xB0, 0xE0, 0xA0, 0xF0, |
Kazuki Yamamoto |
12:db621ae6a076 | 121 | 0x0D, 0x0E, 0x0A, 0x0D, 0x0B, 0x0E, 0x0A, 0x0F, 0xD0, 0xE0, 0xA0, 0xD0, 0xB0, 0xE0, 0xA0, 0xF0, |
Kazuki Yamamoto |
12:db621ae6a076 | 122 | 0x0D, 0x0E, 0x0A, 0x0D, 0x0B, 0x0E, 0x0A, 0x0F, 0xD0, 0xE0, 0xA0, 0xD0, 0xB0, 0xE0, 0xA0, 0xF0, |
Kazuki Yamamoto |
12:db621ae6a076 | 123 | 0x0D, 0x0E, 0x0A, 0x0D, 0x0B, 0x0E, 0x0A, 0x0F, 0xD0, 0xE0, 0xA0, 0xD0, 0xB0, 0xE0, 0xA0, 0xF0, |
Kazuki Yamamoto |
12:db621ae6a076 | 124 | 0x0D, 0x0E, 0x0A, 0x0D, 0x0B, 0x0E, 0x0A, 0x0F, 0xD0, 0xE0, 0xA0, 0xD0, 0xB0, 0xE0, 0xA0, 0xF0, |
Kazuki Yamamoto |
12:db621ae6a076 | 125 | 0x0D, 0x0E, 0x0A, 0x0D, 0x0B, 0x0E, 0x0A, 0x0F, 0xD0, 0xE0, 0xA0, 0xD0, 0xB0, 0xE0, 0xA0, 0xF0, |
Kazuki Yamamoto |
12:db621ae6a076 | 126 | 0x0D, 0x0E, 0x0A, 0x0D, 0x0B, 0x0E, 0x0A, 0x0F, 0xD0, 0xE0, 0xA0, 0xD0, 0xB0, 0xE0, 0xA0, 0xF0, |
Kazuki Yamamoto |
12:db621ae6a076 | 127 | 0x0D, 0x0E, 0x0A, 0x0D, 0x0B, 0x0E, 0x0A, 0x0F, 0xD0, 0xE0, 0xA0, 0xD0, 0xB0, 0xE0, 0xA0, 0xF0, |
Kazuki Yamamoto |
12:db621ae6a076 | 128 | 0x0D, 0x0E, 0x0A, 0x0D, 0x0B, 0x0E, 0x0A, 0x0F, 0xD0, 0xE0, 0xA0, 0xD0, 0xB0, 0xE0, 0xA0, 0xF0, |
Kazuki Yamamoto |
12:db621ae6a076 | 129 | 0x0D, 0x0E, 0x0A, 0x0D, 0x0B, 0x0E, 0x0A, 0x0F, 0xD0, 0xE0, 0xA0, 0xD0, 0xB0, 0xE0, 0xA0, 0xF0, |
Kazuki Yamamoto |
12:db621ae6a076 | 130 | 0x0D, 0x0E, 0x0A, 0x0D, 0x0B, 0x0E, 0x0A, 0x0F, 0xD0, 0xE0, 0xA0, 0xD0, 0xB0, 0xE0, 0xA0, 0xF0, |
Kazuki Yamamoto |
12:db621ae6a076 | 131 | 0x0D, 0x0E, 0x0A, 0x0D, 0x0B, 0x0E, 0x0A, 0x0F, 0xD0, 0xE0, 0xA0, 0xD0, 0xB0, 0xE0, 0xA0, 0xF0, |
Kazuki Yamamoto |
12:db621ae6a076 | 132 | }; |
Kazuki Yamamoto |
12:db621ae6a076 | 133 | char send[] = { |
Kazuki Yamamoto |
12:db621ae6a076 | 134 | 0x0D, 0x0E, 0x0A, 0x0D, 0x0B, 0x0E, 0x0A, 0x0F, 0xD0, 0xE0, 0xA0, 0xD0, 0xB0, 0xE0, 0xA0, 0xF0, |
Kazuki Yamamoto |
12:db621ae6a076 | 135 | 0x0D, 0x0E, 0x0A, 0x0D, 0x0B, 0x0E, 0x0A, 0x0F, 0xD0, 0xE0, 0xA0, 0xD0, 0xB0, 0xE0, 0xA0, 0xF0, |
Kazuki Yamamoto |
12:db621ae6a076 | 136 | 0x0D, 0x0E, 0x0A, 0x0D, 0x0B, 0x0E, 0x0A, 0x0F, 0xD0, 0xE0, 0xA0, 0xD0, 0xB0, 0xE0, 0xA0, 0xF0, |
Kazuki Yamamoto |
12:db621ae6a076 | 137 | 0x0D, 0x0E, 0x0A, 0x0D, 0x0B, 0x0E, 0x0A, 0x0F, 0xD0, 0xE0, 0xA0, 0xD0, 0xB0, 0xE0, 0xA0, 0xF0, |
Kazuki Yamamoto |
12:db621ae6a076 | 138 | 0x0D, 0x0E, 0x0A, 0x0D, 0x0B, 0x0E, 0x0A, 0x0F, 0xD0, 0xE0, 0xA0, 0xD0, 0xB0, 0xE0, 0xA0, 0xF0, |
Kazuki Yamamoto |
12:db621ae6a076 | 139 | 0x0D, 0x0E, 0x0A, 0x0D, 0x0B, 0x0E, 0x0A, 0x0F, 0xD0, 0xE0, 0xA0, 0xD0, 0xB0, 0xE0, 0xA0, 0xF0, |
Kazuki Yamamoto |
12:db621ae6a076 | 140 | 0x0D, 0x0E, 0x0A, 0x0D, 0x0B, 0x0E, 0x0A, 0x0F, 0xD0, 0xE0, 0xA0, 0xD0, 0xB0, 0xE0, 0xA0, 0xF0, |
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 | }; |
Kazuki Yamamoto |
12:db621ae6a076 | 151 | |
Kazuki Yamamoto |
12:db621ae6a076 | 152 | char read = 0; |
Kazuki Yamamoto |
12:db621ae6a076 | 153 | int address = 0; |
Kazuki Yamamoto |
12:db621ae6a076 | 154 | int data = 0; |
Kazuki Yamamoto |
12:db621ae6a076 | 155 | int _data = 0; |
Kazuki Yamamoto |
12:db621ae6a076 | 156 | int length = 0; |
Kazuki Yamamoto |
12:db621ae6a076 | 157 | int channel = 0; |
Kazuki Yamamoto |
12:db621ae6a076 | 158 | bool CE = false; |
Kazuki Yamamoto |
13:aa9e9a6fcef9 | 159 | enum command_e { |
Kazuki Yamamoto |
13:aa9e9a6fcef9 | 160 | CMD_S='S', |
Kazuki Yamamoto |
13:aa9e9a6fcef9 | 161 | CMD_P='P', |
Kazuki Yamamoto |
13:aa9e9a6fcef9 | 162 | CMD_C='C', |
Kazuki Yamamoto |
13:aa9e9a6fcef9 | 163 | CMD_R='R', |
Kazuki Yamamoto |
13:aa9e9a6fcef9 | 164 | CMD_W='W', |
Kazuki Yamamoto |
13:aa9e9a6fcef9 | 165 | CMD_I='I', |
Kazuki Yamamoto |
13:aa9e9a6fcef9 | 166 | CMD_O='O', |
Kazuki Yamamoto |
13:aa9e9a6fcef9 | 167 | }; |
Kazuki Yamamoto |
9:844e301ab0fd | 168 | enum channel_e { |
Kazuki Yamamoto |
9:844e301ab0fd | 169 | CH0 = '0', |
Kazuki Yamamoto |
9:844e301ab0fd | 170 | CH1 = '1', |
Kazuki Yamamoto |
9:844e301ab0fd | 171 | CH2 = '2', |
Kazuki Yamamoto |
9:844e301ab0fd | 172 | CH3 = '3', |
Kazuki Yamamoto |
5:07f7000ec747 | 173 | }; |
Kazuki Yamamoto |
9:844e301ab0fd | 174 | enum register_e { |
Kazuki Yamamoto |
12:db621ae6a076 | 175 | CHIP_ID = '0', |
Kazuki Yamamoto |
9:844e301ab0fd | 176 | GPIO_STAT = '1', |
Kazuki Yamamoto |
18:e3286a42cf0e | 177 | GPIO_CONF = '2', |
Kazuki Yamamoto |
9:844e301ab0fd | 178 | }; |
Kazuki Yamamoto |
9:844e301ab0fd | 179 | enum chipID_e { |
Kazuki Yamamoto |
9:844e301ab0fd | 180 | ID_LPC824 = '0', |
Kazuki Yamamoto |
9:844e301ab0fd | 181 | ID_LPC1768 = '1', |
Kazuki Yamamoto |
9:844e301ab0fd | 182 | ID_LPC11UXX = '2', |
Kazuki Yamamoto |
9:844e301ab0fd | 183 | }; |
Kazuki Yamamoto |
14:5319d562834e | 184 | static const uint8_t chip_id=ID_LPC824; |
Kazuki Yamamoto |
14:5319d562834e | 185 | static uint8_t registers[]={ |
Kazuki Yamamoto |
14:5319d562834e | 186 | chip_id, |
Kazuki Yamamoto |
13:aa9e9a6fcef9 | 187 | 0xBB, |
Kazuki Yamamoto |
14:5319d562834e | 188 | 0xCC, |
Kazuki Yamamoto |
12:db621ae6a076 | 189 | // 0b00000000, // all 0 |
Kazuki Yamamoto |
12:db621ae6a076 | 190 | // 0b00000000, // all input |
Kazuki Yamamoto |
9:844e301ab0fd | 191 | }; |
Kazuki Yamamoto |
9:844e301ab0fd | 192 | |
Kazuki Yamamoto |
5:07f7000ec747 | 193 | int i=0; |
Kazuki Yamamoto |
5:07f7000ec747 | 194 | while(1) { |
Kazuki Yamamoto |
12:db621ae6a076 | 195 | i=0; |
Kazuki Yamamoto |
12:db621ae6a076 | 196 | length=0; |
Kazuki Yamamoto |
5:07f7000ec747 | 197 | while(true) { |
Kazuki Yamamoto |
5:07f7000ec747 | 198 | read=pc.getc(); |
Kazuki Yamamoto |
5:07f7000ec747 | 199 | recieve[i]=read; |
Kazuki Yamamoto |
5:07f7000ec747 | 200 | i++; |
Kazuki Yamamoto |
5:07f7000ec747 | 201 | if(read == 'P') { |
Kazuki Yamamoto |
5:07f7000ec747 | 202 | plength=i; |
Kazuki Yamamoto |
5:07f7000ec747 | 203 | break; |
Kazuki Yamamoto |
5:07f7000ec747 | 204 | } |
Kazuki Yamamoto |
5:07f7000ec747 | 205 | } |
Kazuki Yamamoto |
5:07f7000ec747 | 206 | i=0; |
Kazuki Yamamoto |
9:844e301ab0fd | 207 | while(i < plength) { |
Kazuki Yamamoto |
5:07f7000ec747 | 208 | switch(recieve[i]) { |
Kazuki Yamamoto |
13:aa9e9a6fcef9 | 209 | case CMD_C: |
Kazuki Yamamoto |
5:07f7000ec747 | 210 | { |
Kazuki Yamamoto |
5:07f7000ec747 | 211 | channel=recieve[i+1]; |
Kazuki Yamamoto |
5:07f7000ec747 | 212 | switch(channel) { |
Kazuki Yamamoto |
9:844e301ab0fd | 213 | case CH0: |
Kazuki Yamamoto |
5:07f7000ec747 | 214 | { |
Kazuki Yamamoto |
18:e3286a42cf0e | 215 | channel = CH0; |
Kazuki Yamamoto |
5:07f7000ec747 | 216 | dev=&dev1; |
Kazuki Yamamoto |
5:07f7000ec747 | 217 | break; |
Kazuki Yamamoto |
5:07f7000ec747 | 218 | } |
Kazuki Yamamoto |
9:844e301ab0fd | 219 | case CH1: |
Kazuki Yamamoto |
5:07f7000ec747 | 220 | { |
Kazuki Yamamoto |
18:e3286a42cf0e | 221 | channel = CH1; |
Kazuki Yamamoto |
5:07f7000ec747 | 222 | dev=&dev2; |
Kazuki Yamamoto |
5:07f7000ec747 | 223 | break; |
Kazuki Yamamoto |
5:07f7000ec747 | 224 | } |
Kazuki Yamamoto |
9:844e301ab0fd | 225 | case CH2: |
Kazuki Yamamoto |
5:07f7000ec747 | 226 | { |
Kazuki Yamamoto |
18:e3286a42cf0e | 227 | channel = CH2; |
Kazuki Yamamoto |
5:07f7000ec747 | 228 | dev=&dev3; |
Kazuki Yamamoto |
5:07f7000ec747 | 229 | break; |
Kazuki Yamamoto |
5:07f7000ec747 | 230 | } |
Kazuki Yamamoto |
9:844e301ab0fd | 231 | case CH3: |
Kazuki Yamamoto |
5:07f7000ec747 | 232 | { |
Kazuki Yamamoto |
18:e3286a42cf0e | 233 | channel = CH3; |
Kazuki Yamamoto |
5:07f7000ec747 | 234 | dev=&dev4; |
Kazuki Yamamoto |
5:07f7000ec747 | 235 | break; |
Kazuki Yamamoto |
5:07f7000ec747 | 236 | } |
Kazuki Yamamoto |
5:07f7000ec747 | 237 | default: |
Kazuki Yamamoto |
5:07f7000ec747 | 238 | { |
Kazuki Yamamoto |
18:e3286a42cf0e | 239 | channel = CH0; |
Kazuki Yamamoto |
5:07f7000ec747 | 240 | dev=&dev1; |
Kazuki Yamamoto |
5:07f7000ec747 | 241 | break; |
Kazuki Yamamoto |
5:07f7000ec747 | 242 | } |
Kazuki Yamamoto |
5:07f7000ec747 | 243 | } |
Kazuki Yamamoto |
5:07f7000ec747 | 244 | i+=(2); |
Kazuki Yamamoto |
5:07f7000ec747 | 245 | break; |
Kazuki Yamamoto |
5:07f7000ec747 | 246 | } |
Kazuki Yamamoto |
13:aa9e9a6fcef9 | 247 | case CMD_S: |
Kazuki Yamamoto |
5:07f7000ec747 | 248 | { |
Kazuki Yamamoto |
9:844e301ab0fd | 249 | s = true; |
Kazuki Yamamoto |
9:844e301ab0fd | 250 | ack = plength - 2 - (i+1) + (recieve[i+2] & 0x01); |
Kazuki Yamamoto |
18:e3286a42cf0e | 251 | if(ack >= 4){ //valid packet |
Kazuki Yamamoto |
9:844e301ab0fd | 252 | address = 0xff & (recieve[i+1] << 4 | (recieve[i+2] & 0x0F)); |
Kazuki Yamamoto |
9:844e301ab0fd | 253 | length = 0xff & (recieve[i+3] << 4 | (recieve[i+4] & 0x0F)); |
Kazuki Yamamoto |
18:e3286a42cf0e | 254 | |
Kazuki Yamamoto |
18:e3286a42cf0e | 255 | if( (address&0x01)) { //read |
Kazuki Yamamoto |
11:0d8359a6e2c2 | 256 | dev->read(address, send, length, false); //added |
Kazuki Yamamoto |
11:0d8359a6e2c2 | 257 | i+=(5); |
Kazuki Yamamoto |
18:e3286a42cf0e | 258 | } else { // write |
Kazuki Yamamoto |
11:0d8359a6e2c2 | 259 | for(int j=0; j < (length * 2); j+=2) { |
Kazuki Yamamoto |
15:98ec6b372a2b | 260 | ack = 0xff&((recieve[5+j] << 4) | (recieve[6+j] & 0x0F)); |
Kazuki Yamamoto |
11:0d8359a6e2c2 | 261 | *(send+(j/2)) = ack; //added |
Kazuki Yamamoto |
11:0d8359a6e2c2 | 262 | } |
Kazuki Yamamoto |
11:0d8359a6e2c2 | 263 | dev->write(address, send, length, true); //added |
Kazuki Yamamoto |
11:0d8359a6e2c2 | 264 | i+=(5 + length * 2); |
Kazuki Yamamoto |
11:0d8359a6e2c2 | 265 | length=0; |
Kazuki Yamamoto |
11:0d8359a6e2c2 | 266 | } |
Kazuki Yamamoto |
9:844e301ab0fd | 267 | }else{ |
Kazuki Yamamoto |
9:844e301ab0fd | 268 | pc.printf("bad packet! %d, %d, %02X, %d\n\r",plength,i,recieve[(i+2)]&0x0F,ack); |
Kazuki Yamamoto |
11:0d8359a6e2c2 | 269 | i = plength; |
Kazuki Yamamoto |
5:07f7000ec747 | 270 | } |
Kazuki Yamamoto |
5:07f7000ec747 | 271 | break; |
Kazuki Yamamoto |
5:07f7000ec747 | 272 | } |
Kazuki Yamamoto |
13:aa9e9a6fcef9 | 273 | case CMD_P: |
Kazuki Yamamoto |
9:844e301ab0fd | 274 | { |
Kazuki Yamamoto |
5:07f7000ec747 | 275 | if(s){ |
Kazuki Yamamoto |
5:07f7000ec747 | 276 | dev->stop(); |
Kazuki Yamamoto |
11:0d8359a6e2c2 | 277 | s = false; |
Kazuki Yamamoto |
5:07f7000ec747 | 278 | } |
Kazuki Yamamoto |
11:0d8359a6e2c2 | 279 | i = plength; |
Kazuki Yamamoto |
5:07f7000ec747 | 280 | for(int j=0; j<length; j++) { |
Kazuki Yamamoto |
5:07f7000ec747 | 281 | pc.printf("%02X,",send[j]); |
Kazuki Yamamoto |
5:07f7000ec747 | 282 | } |
Kazuki Yamamoto |
5:07f7000ec747 | 283 | pc.printf("ok\n\r"); |
Kazuki Yamamoto |
5:07f7000ec747 | 284 | break; |
Kazuki Yamamoto |
9:844e301ab0fd | 285 | } |
Kazuki Yamamoto |
13:aa9e9a6fcef9 | 286 | case CMD_R: |
Kazuki Yamamoto |
9:844e301ab0fd | 287 | { |
Kazuki Yamamoto |
11:0d8359a6e2c2 | 288 | length = plength - 2; |
Kazuki Yamamoto |
16:ba11339fd9c6 | 289 | if(length<1){ |
Kazuki Yamamoto |
16:ba11339fd9c6 | 290 | pc.printf("bad packet! %d\n\r",length); |
Kazuki Yamamoto |
16:ba11339fd9c6 | 291 | i = plength + 1; |
Kazuki Yamamoto |
16:ba11339fd9c6 | 292 | length = 0; |
Kazuki Yamamoto |
16:ba11339fd9c6 | 293 | }else{ |
Kazuki Yamamoto |
16:ba11339fd9c6 | 294 | for(int j=0; j<length; j++){ |
Kazuki Yamamoto |
16:ba11339fd9c6 | 295 | address = recieve[i+1+j]; |
Kazuki Yamamoto |
16:ba11339fd9c6 | 296 | switch(address){ |
Kazuki Yamamoto |
16:ba11339fd9c6 | 297 | case CHIP_ID: |
Kazuki Yamamoto |
16:ba11339fd9c6 | 298 | { |
Kazuki Yamamoto |
16:ba11339fd9c6 | 299 | data = chip_id; |
Kazuki Yamamoto |
16:ba11339fd9c6 | 300 | // send[j] = chip_id; |
Kazuki Yamamoto |
16:ba11339fd9c6 | 301 | break; |
Kazuki Yamamoto |
16:ba11339fd9c6 | 302 | } |
Kazuki Yamamoto |
16:ba11339fd9c6 | 303 | case GPIO_STAT: |
Kazuki Yamamoto |
16:ba11339fd9c6 | 304 | { |
Kazuki Yamamoto |
16:ba11339fd9c6 | 305 | data = registers[GPIO_STAT-'0']; |
Kazuki Yamamoto |
16:ba11339fd9c6 | 306 | // send[j] = (char)data; |
Kazuki Yamamoto |
16:ba11339fd9c6 | 307 | break; |
Kazuki Yamamoto |
16:ba11339fd9c6 | 308 | } |
Kazuki Yamamoto |
16:ba11339fd9c6 | 309 | case GPIO_CONF: |
Kazuki Yamamoto |
16:ba11339fd9c6 | 310 | { |
Kazuki Yamamoto |
16:ba11339fd9c6 | 311 | data = registers[GPIO_CONF-'0']; |
Kazuki Yamamoto |
16:ba11339fd9c6 | 312 | // send[j] = (char)data; |
Kazuki Yamamoto |
16:ba11339fd9c6 | 313 | break; |
Kazuki Yamamoto |
16:ba11339fd9c6 | 314 | } |
Kazuki Yamamoto |
16:ba11339fd9c6 | 315 | default: |
Kazuki Yamamoto |
16:ba11339fd9c6 | 316 | { |
Kazuki Yamamoto |
16:ba11339fd9c6 | 317 | data = 0xAA; |
Kazuki Yamamoto |
16:ba11339fd9c6 | 318 | // send[j] = 0xAA; |
Kazuki Yamamoto |
16:ba11339fd9c6 | 319 | break; |
Kazuki Yamamoto |
16:ba11339fd9c6 | 320 | } |
Kazuki Yamamoto |
11:0d8359a6e2c2 | 321 | } |
Kazuki Yamamoto |
16:ba11339fd9c6 | 322 | send[j] = (char)data; |
Kazuki Yamamoto |
11:0d8359a6e2c2 | 323 | } |
Kazuki Yamamoto |
16:ba11339fd9c6 | 324 | i += (length+1); |
Kazuki Yamamoto |
16:ba11339fd9c6 | 325 | // pc.printf("command R is not implemented, "); |
Kazuki Yamamoto |
11:0d8359a6e2c2 | 326 | } |
Kazuki Yamamoto |
5:07f7000ec747 | 327 | break; |
Kazuki Yamamoto |
9:844e301ab0fd | 328 | } |
Kazuki Yamamoto |
13:aa9e9a6fcef9 | 329 | case CMD_W: |
Kazuki Yamamoto |
9:844e301ab0fd | 330 | { |
Kazuki Yamamoto |
11:0d8359a6e2c2 | 331 | length = plength - 2; |
Kazuki Yamamoto |
11:0d8359a6e2c2 | 332 | if(length < 3){ |
Kazuki Yamamoto |
11:0d8359a6e2c2 | 333 | pc.printf("bad packet! %d\n\r",length); |
Kazuki Yamamoto |
11:0d8359a6e2c2 | 334 | i = plength + 1; |
Kazuki Yamamoto |
16:ba11339fd9c6 | 335 | length = 0; |
Kazuki Yamamoto |
11:0d8359a6e2c2 | 336 | }else{ |
Kazuki Yamamoto |
11:0d8359a6e2c2 | 337 | for(int j=0; j<length; j+=3){ |
Kazuki Yamamoto |
11:0d8359a6e2c2 | 338 | address = recieve[i+1+j]; |
Kazuki Yamamoto |
15:98ec6b372a2b | 339 | data = 0xff & (recieve[i+2+j] << 4 | (recieve[i+3+j] & 0x0F)); |
Kazuki Yamamoto |
11:0d8359a6e2c2 | 340 | switch(address){ |
Kazuki Yamamoto |
11:0d8359a6e2c2 | 341 | case CHIP_ID: |
Kazuki Yamamoto |
11:0d8359a6e2c2 | 342 | { |
Kazuki Yamamoto |
11:0d8359a6e2c2 | 343 | //READ ONLY: do nothing |
Kazuki Yamamoto |
16:ba11339fd9c6 | 344 | data = registers[CHIP_ID-'0']; |
Kazuki Yamamoto |
16:ba11339fd9c6 | 345 | // *(send+j) = registers[CHIP_ID-'0']; |
Kazuki Yamamoto |
11:0d8359a6e2c2 | 346 | break; |
Kazuki Yamamoto |
11:0d8359a6e2c2 | 347 | } |
Kazuki Yamamoto |
11:0d8359a6e2c2 | 348 | case GPIO_STAT: |
Kazuki Yamamoto |
11:0d8359a6e2c2 | 349 | { |
Kazuki Yamamoto |
12:db621ae6a076 | 350 | //READ ONLY from this command: do nothing |
Kazuki Yamamoto |
16:ba11339fd9c6 | 351 | data = registers[GPIO_STAT-'0']; |
Kazuki Yamamoto |
16:ba11339fd9c6 | 352 | // *(send+j) = registers[GPIO_STAT-'0']; |
Kazuki Yamamoto |
11:0d8359a6e2c2 | 353 | break; |
Kazuki Yamamoto |
11:0d8359a6e2c2 | 354 | } |
Kazuki Yamamoto |
11:0d8359a6e2c2 | 355 | case GPIO_CONF: |
Kazuki Yamamoto |
11:0d8359a6e2c2 | 356 | { |
Kazuki Yamamoto |
15:98ec6b372a2b | 357 | registers[GPIO_CONF-'0'] = data; |
Kazuki Yamamoto |
16:ba11339fd9c6 | 358 | // data = 0; |
Kazuki Yamamoto |
16:ba11339fd9c6 | 359 | for(int k=0; k<8; k++){ |
Kazuki Yamamoto |
16:ba11339fd9c6 | 360 | if(data&0x01){//output |
Kazuki Yamamoto |
18:e3286a42cf0e | 361 | gpio0[k]->output(); |
Kazuki Yamamoto |
16:ba11339fd9c6 | 362 | }else{//input |
Kazuki Yamamoto |
18:e3286a42cf0e | 363 | gpio0[k]->input(); |
Kazuki Yamamoto |
18:e3286a42cf0e | 364 | gpio0[k]->mode(PullUp); |
Kazuki Yamamoto |
16:ba11339fd9c6 | 365 | } |
Kazuki Yamamoto |
16:ba11339fd9c6 | 366 | data >>= 1; |
Kazuki Yamamoto |
16:ba11339fd9c6 | 367 | } |
Kazuki Yamamoto |
16:ba11339fd9c6 | 368 | data = registers[GPIO_CONF-'0']; |
Kazuki Yamamoto |
16:ba11339fd9c6 | 369 | // *(send+j) = registers[GPIO_CONF-'0']; |
Kazuki Yamamoto |
11:0d8359a6e2c2 | 370 | break; |
Kazuki Yamamoto |
11:0d8359a6e2c2 | 371 | } |
Kazuki Yamamoto |
11:0d8359a6e2c2 | 372 | default: |
Kazuki Yamamoto |
11:0d8359a6e2c2 | 373 | { |
Kazuki Yamamoto |
11:0d8359a6e2c2 | 374 | break; |
Kazuki Yamamoto |
11:0d8359a6e2c2 | 375 | } |
Kazuki Yamamoto |
11:0d8359a6e2c2 | 376 | } |
Kazuki Yamamoto |
16:ba11339fd9c6 | 377 | send[j/3] = (char)data; |
Kazuki Yamamoto |
11:0d8359a6e2c2 | 378 | } |
Kazuki Yamamoto |
16:ba11339fd9c6 | 379 | i += length+1; |
Kazuki Yamamoto |
16:ba11339fd9c6 | 380 | length /= 3; |
Kazuki Yamamoto |
11:0d8359a6e2c2 | 381 | } |
Kazuki Yamamoto |
15:98ec6b372a2b | 382 | // pc.printf("command W is not implemented, "); |
Kazuki Yamamoto |
9:844e301ab0fd | 383 | break; |
Kazuki Yamamoto |
9:844e301ab0fd | 384 | } |
Kazuki Yamamoto |
13:aa9e9a6fcef9 | 385 | case CMD_I: |
Kazuki Yamamoto |
9:844e301ab0fd | 386 | { |
Kazuki Yamamoto |
18:e3286a42cf0e | 387 | length = plength - 2; |
Kazuki Yamamoto |
18:e3286a42cf0e | 388 | data = 0; |
Kazuki Yamamoto |
18:e3286a42cf0e | 389 | if(length != 0){ |
Kazuki Yamamoto |
18:e3286a42cf0e | 390 | pc.printf("bad packet! %d\n\r",length); |
Kazuki Yamamoto |
18:e3286a42cf0e | 391 | i = plength + 1; |
Kazuki Yamamoto |
18:e3286a42cf0e | 392 | length = 0; |
Kazuki Yamamoto |
18:e3286a42cf0e | 393 | }else{ |
Kazuki Yamamoto |
18:e3286a42cf0e | 394 | for(int j=0; j<8; j++){ |
Kazuki Yamamoto |
18:e3286a42cf0e | 395 | _data = gpio0[j]->read(); |
Kazuki Yamamoto |
18:e3286a42cf0e | 396 | data |= (_data << j); |
Kazuki Yamamoto |
18:e3286a42cf0e | 397 | } |
Kazuki Yamamoto |
18:e3286a42cf0e | 398 | registers[GPIO_STAT-'0'] = data; |
Kazuki Yamamoto |
18:e3286a42cf0e | 399 | send[0] = data; |
Kazuki Yamamoto |
18:e3286a42cf0e | 400 | length = 1; |
Kazuki Yamamoto |
18:e3286a42cf0e | 401 | } |
Kazuki Yamamoto |
18:e3286a42cf0e | 402 | // pc.printf("command I is not implemented, "); |
Kazuki Yamamoto |
18:e3286a42cf0e | 403 | i+=length; |
Kazuki Yamamoto |
5:07f7000ec747 | 404 | break; |
Kazuki Yamamoto |
9:844e301ab0fd | 405 | } |
Kazuki Yamamoto |
13:aa9e9a6fcef9 | 406 | case CMD_O: |
Kazuki Yamamoto |
9:844e301ab0fd | 407 | { |
Kazuki Yamamoto |
18:e3286a42cf0e | 408 | length = plength - 2; |
Kazuki Yamamoto |
18:e3286a42cf0e | 409 | if(length != 2){ |
Kazuki Yamamoto |
18:e3286a42cf0e | 410 | pc.printf("bad packet! %d\n\r",length); |
Kazuki Yamamoto |
18:e3286a42cf0e | 411 | i = plength + 1; |
Kazuki Yamamoto |
18:e3286a42cf0e | 412 | length = 0; |
Kazuki Yamamoto |
18:e3286a42cf0e | 413 | }else{ |
Kazuki Yamamoto |
18:e3286a42cf0e | 414 | data = 0xff & (recieve[i+1] << 4 | (recieve[i+2] & 0x0F)); |
Kazuki Yamamoto |
18:e3286a42cf0e | 415 | _data = registers[GPIO_CONF-'0']; |
Kazuki Yamamoto |
18:e3286a42cf0e | 416 | send[0] = (char)data; |
Kazuki Yamamoto |
18:e3286a42cf0e | 417 | for(int j=0; j<8; j++){ |
Kazuki Yamamoto |
18:e3286a42cf0e | 418 | if(_data&0x01){ // output |
Kazuki Yamamoto |
18:e3286a42cf0e | 419 | gpio0[j]->write(data&0x01); |
Kazuki Yamamoto |
18:e3286a42cf0e | 420 | }else{ // input |
Kazuki Yamamoto |
18:e3286a42cf0e | 421 | ; // do nothing |
Kazuki Yamamoto |
18:e3286a42cf0e | 422 | } |
Kazuki Yamamoto |
18:e3286a42cf0e | 423 | data >>= 1; |
Kazuki Yamamoto |
18:e3286a42cf0e | 424 | _data >>= 1; |
Kazuki Yamamoto |
18:e3286a42cf0e | 425 | } |
Kazuki Yamamoto |
18:e3286a42cf0e | 426 | i += length+1; |
Kazuki Yamamoto |
18:e3286a42cf0e | 427 | length = 1; |
Kazuki Yamamoto |
18:e3286a42cf0e | 428 | } |
Kazuki Yamamoto |
18:e3286a42cf0e | 429 | // pc.printf("command O is not implemented, "); |
Kazuki Yamamoto |
5:07f7000ec747 | 430 | break; |
Kazuki Yamamoto |
9:844e301ab0fd | 431 | } |
Kazuki Yamamoto |
9:844e301ab0fd | 432 | case 'Z': |
Kazuki Yamamoto |
9:844e301ab0fd | 433 | { |
Kazuki Yamamoto |
9:844e301ab0fd | 434 | pc.printf("command Z is not implemented\n\r"); |
Kazuki Yamamoto |
5:07f7000ec747 | 435 | i=plength; |
Kazuki Yamamoto |
5:07f7000ec747 | 436 | break; |
Kazuki Yamamoto |
9:844e301ab0fd | 437 | } |
Kazuki Yamamoto |
9:844e301ab0fd | 438 | case 'E': |
Kazuki Yamamoto |
9:844e301ab0fd | 439 | { |
Kazuki Yamamoto |
9:844e301ab0fd | 440 | pc.printf("command E is not implemented\n\r"); |
Kazuki Yamamoto |
5:07f7000ec747 | 441 | i=plength; |
Kazuki Yamamoto |
5:07f7000ec747 | 442 | break; |
Kazuki Yamamoto |
9:844e301ab0fd | 443 | } |
Kazuki Yamamoto |
9:844e301ab0fd | 444 | case 'V': |
Kazuki Yamamoto |
9:844e301ab0fd | 445 | { |
Kazuki Yamamoto |
9:844e301ab0fd | 446 | pc.printf("command V is not implemented\n\r"); |
Kazuki Yamamoto |
5:07f7000ec747 | 447 | i=plength; |
Kazuki Yamamoto |
5:07f7000ec747 | 448 | break; |
Kazuki Yamamoto |
9:844e301ab0fd | 449 | } |
Kazuki Yamamoto |
9:844e301ab0fd | 450 | default: |
Kazuki Yamamoto |
9:844e301ab0fd | 451 | { |
Kazuki Yamamoto |
16:ba11339fd9c6 | 452 | pc.printf("command %c is not implemented\n\r", recieve[i]); |
Kazuki Yamamoto |
9:844e301ab0fd | 453 | i=plength; |
Kazuki Yamamoto |
9:844e301ab0fd | 454 | break; |
Kazuki Yamamoto |
9:844e301ab0fd | 455 | } |
Kazuki Yamamoto |
5:07f7000ec747 | 456 | } |
Kazuki Yamamoto |
5:07f7000ec747 | 457 | } |
Kazuki Yamamoto |
5:07f7000ec747 | 458 | i=0; |
Kazuki Yamamoto |
5:07f7000ec747 | 459 | length=0; |
Kazuki Yamamoto |
5:07f7000ec747 | 460 | } |
Kazuki Yamamoto |
5:07f7000ec747 | 461 | } |