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