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.
Diff: LPC824/main.cpp
- Revision:
- 12:db621ae6a076
- Parent:
- 11:0d8359a6e2c2
- Child:
- 13:aa9e9a6fcef9
--- a/LPC824/main.cpp Thu Dec 04 19:46:23 2014 +0900 +++ b/LPC824/main.cpp Fri Dec 05 17:34:37 2014 +0900 @@ -33,20 +33,21 @@ //[_] E 0x45 enable chip //[_] V 0x__ enable VDDIO output to chip -//"C0P" -//"C1P" -//"C2P" -//"C3P" -//"S| 0x_8 _0| 0x_0 _4| 0x_D _E _A _D _B _E _A _F| P" -//"S| 0x_8 _0| 0x_0 _4| 0x_D _E _A _D _B _E _A _F| S| 0x_8 _1| 0x_0 _4| P" -//"S| 0x_8 _1| 0x_0 _4| P" -//"R| '0'| P" -//"R| '0'| '1'| ...| P" -//"W| '0' 0x_a _a| P" -//"W| '0' 0x_a _a| '1' 0x_b _b| ...| P" -//"I| P" -//"O| 0x_a _a| P" - +/** +"C| '0'| P" +"C| '1'| P" +"C| '2'| P" +"C| '3'| P" +"S| 0x_8 _0| 0x_0 _4| 0x_D _E _A _D _B _E _A _F| P" +"S| 0x_8 _0| 0x_0 _4| 0x_D _E _A _D _B _E _A _F| S| 0x_8 _1| 0x_0 _4| P" +"S| 0x_8 _1| 0x_0 _4| P" +"R| '0'| P" +"R| '0'| '1'| ...| P" +"W| '0' 0x_a _a| P" +"W| '0' 0x_a _a| '1' 0x_b _b| ...| P" +"I| P" +"O| 0x_a _a| P" +*/ int main() { I2C* dev=&dev1; @@ -74,17 +75,52 @@ &_GPIO7, }; */ - int ack=0; - int plength=0; - char recieve[256]; - char send[256]; - char read=0; - int address=0; - int data=0; - int _data=0; - int length=0; - int channel=0; - bool CE=false; + int ack = 0; + int plength = 0; + char recieve[] = { + 0x0D, 0x0E, 0x0A, 0x0D, 0x0B, 0x0E, 0x0A, 0x0F, 0xD0, 0xE0, 0xA0, 0xD0, 0xB0, 0xE0, 0xA0, 0xF0, + 0x0D, 0x0E, 0x0A, 0x0D, 0x0B, 0x0E, 0x0A, 0x0F, 0xD0, 0xE0, 0xA0, 0xD0, 0xB0, 0xE0, 0xA0, 0xF0, + 0x0D, 0x0E, 0x0A, 0x0D, 0x0B, 0x0E, 0x0A, 0x0F, 0xD0, 0xE0, 0xA0, 0xD0, 0xB0, 0xE0, 0xA0, 0xF0, + 0x0D, 0x0E, 0x0A, 0x0D, 0x0B, 0x0E, 0x0A, 0x0F, 0xD0, 0xE0, 0xA0, 0xD0, 0xB0, 0xE0, 0xA0, 0xF0, + 0x0D, 0x0E, 0x0A, 0x0D, 0x0B, 0x0E, 0x0A, 0x0F, 0xD0, 0xE0, 0xA0, 0xD0, 0xB0, 0xE0, 0xA0, 0xF0, + 0x0D, 0x0E, 0x0A, 0x0D, 0x0B, 0x0E, 0x0A, 0x0F, 0xD0, 0xE0, 0xA0, 0xD0, 0xB0, 0xE0, 0xA0, 0xF0, + 0x0D, 0x0E, 0x0A, 0x0D, 0x0B, 0x0E, 0x0A, 0x0F, 0xD0, 0xE0, 0xA0, 0xD0, 0xB0, 0xE0, 0xA0, 0xF0, + 0x0D, 0x0E, 0x0A, 0x0D, 0x0B, 0x0E, 0x0A, 0x0F, 0xD0, 0xE0, 0xA0, 0xD0, 0xB0, 0xE0, 0xA0, 0xF0, + 0x0D, 0x0E, 0x0A, 0x0D, 0x0B, 0x0E, 0x0A, 0x0F, 0xD0, 0xE0, 0xA0, 0xD0, 0xB0, 0xE0, 0xA0, 0xF0, + 0x0D, 0x0E, 0x0A, 0x0D, 0x0B, 0x0E, 0x0A, 0x0F, 0xD0, 0xE0, 0xA0, 0xD0, 0xB0, 0xE0, 0xA0, 0xF0, + 0x0D, 0x0E, 0x0A, 0x0D, 0x0B, 0x0E, 0x0A, 0x0F, 0xD0, 0xE0, 0xA0, 0xD0, 0xB0, 0xE0, 0xA0, 0xF0, + 0x0D, 0x0E, 0x0A, 0x0D, 0x0B, 0x0E, 0x0A, 0x0F, 0xD0, 0xE0, 0xA0, 0xD0, 0xB0, 0xE0, 0xA0, 0xF0, + 0x0D, 0x0E, 0x0A, 0x0D, 0x0B, 0x0E, 0x0A, 0x0F, 0xD0, 0xE0, 0xA0, 0xD0, 0xB0, 0xE0, 0xA0, 0xF0, + 0x0D, 0x0E, 0x0A, 0x0D, 0x0B, 0x0E, 0x0A, 0x0F, 0xD0, 0xE0, 0xA0, 0xD0, 0xB0, 0xE0, 0xA0, 0xF0, + 0x0D, 0x0E, 0x0A, 0x0D, 0x0B, 0x0E, 0x0A, 0x0F, 0xD0, 0xE0, 0xA0, 0xD0, 0xB0, 0xE0, 0xA0, 0xF0, + 0x0D, 0x0E, 0x0A, 0x0D, 0x0B, 0x0E, 0x0A, 0x0F, 0xD0, 0xE0, 0xA0, 0xD0, 0xB0, 0xE0, 0xA0, 0xF0, + }; + char send[] = { + 0x0D, 0x0E, 0x0A, 0x0D, 0x0B, 0x0E, 0x0A, 0x0F, 0xD0, 0xE0, 0xA0, 0xD0, 0xB0, 0xE0, 0xA0, 0xF0, + 0x0D, 0x0E, 0x0A, 0x0D, 0x0B, 0x0E, 0x0A, 0x0F, 0xD0, 0xE0, 0xA0, 0xD0, 0xB0, 0xE0, 0xA0, 0xF0, + 0x0D, 0x0E, 0x0A, 0x0D, 0x0B, 0x0E, 0x0A, 0x0F, 0xD0, 0xE0, 0xA0, 0xD0, 0xB0, 0xE0, 0xA0, 0xF0, + 0x0D, 0x0E, 0x0A, 0x0D, 0x0B, 0x0E, 0x0A, 0x0F, 0xD0, 0xE0, 0xA0, 0xD0, 0xB0, 0xE0, 0xA0, 0xF0, + 0x0D, 0x0E, 0x0A, 0x0D, 0x0B, 0x0E, 0x0A, 0x0F, 0xD0, 0xE0, 0xA0, 0xD0, 0xB0, 0xE0, 0xA0, 0xF0, + 0x0D, 0x0E, 0x0A, 0x0D, 0x0B, 0x0E, 0x0A, 0x0F, 0xD0, 0xE0, 0xA0, 0xD0, 0xB0, 0xE0, 0xA0, 0xF0, + 0x0D, 0x0E, 0x0A, 0x0D, 0x0B, 0x0E, 0x0A, 0x0F, 0xD0, 0xE0, 0xA0, 0xD0, 0xB0, 0xE0, 0xA0, 0xF0, + 0x0D, 0x0E, 0x0A, 0x0D, 0x0B, 0x0E, 0x0A, 0x0F, 0xD0, 0xE0, 0xA0, 0xD0, 0xB0, 0xE0, 0xA0, 0xF0, + 0x0D, 0x0E, 0x0A, 0x0D, 0x0B, 0x0E, 0x0A, 0x0F, 0xD0, 0xE0, 0xA0, 0xD0, 0xB0, 0xE0, 0xA0, 0xF0, + 0x0D, 0x0E, 0x0A, 0x0D, 0x0B, 0x0E, 0x0A, 0x0F, 0xD0, 0xE0, 0xA0, 0xD0, 0xB0, 0xE0, 0xA0, 0xF0, + 0x0D, 0x0E, 0x0A, 0x0D, 0x0B, 0x0E, 0x0A, 0x0F, 0xD0, 0xE0, 0xA0, 0xD0, 0xB0, 0xE0, 0xA0, 0xF0, + 0x0D, 0x0E, 0x0A, 0x0D, 0x0B, 0x0E, 0x0A, 0x0F, 0xD0, 0xE0, 0xA0, 0xD0, 0xB0, 0xE0, 0xA0, 0xF0, + 0x0D, 0x0E, 0x0A, 0x0D, 0x0B, 0x0E, 0x0A, 0x0F, 0xD0, 0xE0, 0xA0, 0xD0, 0xB0, 0xE0, 0xA0, 0xF0, + 0x0D, 0x0E, 0x0A, 0x0D, 0x0B, 0x0E, 0x0A, 0x0F, 0xD0, 0xE0, 0xA0, 0xD0, 0xB0, 0xE0, 0xA0, 0xF0, + 0x0D, 0x0E, 0x0A, 0x0D, 0x0B, 0x0E, 0x0A, 0x0F, 0xD0, 0xE0, 0xA0, 0xD0, 0xB0, 0xE0, 0xA0, 0xF0, + 0x0D, 0x0E, 0x0A, 0x0D, 0x0B, 0x0E, 0x0A, 0x0F, 0xD0, 0xE0, 0xA0, 0xD0, 0xB0, 0xE0, 0xA0, 0xF0, + }; + + char read = 0; + int address = 0; + int data = 0; + int _data = 0; + int length = 0; + int channel = 0; + bool CE = false; enum channel_e { CH0 = '0', CH1 = '1', @@ -92,7 +128,7 @@ CH3 = '3', }; enum register_e { - CHIP_ID = '0' + CHIP_ID = '0', GPIO_STAT = '1', GPIO_CONF = '2', }; @@ -104,12 +140,16 @@ uint8_t chip_id=ID_LPC824; uint8_t registers[]={ chip_id, - 0b00000000, - 0b00000000, + 0x00, + 0x00, +// 0b00000000, // all 0 +// 0b00000000, // all input }; int i=0; while(1) { + i=0; + length=0; while(true) { read=pc.getc(); recieve[i]=read; @@ -212,7 +252,7 @@ { length = plength - 2; for(int j=0; j<length; j++){ - address = recieve[1+j]; + address = recieve[i+1+j]; switch(address){ case CHIP_ID: { @@ -231,12 +271,13 @@ } default: { + *(send+j) = 0xAA; break; } } } - i += length; - pc.printf("command R is not implemented\n\r"); + i += length+1; +// pc.printf("command R is not implemented, "); break; } case 'W': @@ -258,14 +299,7 @@ } case GPIO_STAT: { - for(int k=1; k<256; k<<=1){ - if(registers[GPIO_CONF] & k){ //output - (data&k) ? _data|=k : _data&=~k; - }else{ - ; - } - } - registers[GPIO_STAT] = _data; + //READ ONLY from this command: do nothing *(send+j) = registers[GPIO_STAT]; break; } @@ -282,8 +316,8 @@ } } } - i += length; - pc.printf("command W is not implemented\n\r"); + i += length+1; + pc.printf("command W is not implemented, "); break; } case 'I': @@ -318,7 +352,7 @@ } default: { - pc.printf("command ? is not implemented\n\r"); + pc.printf("command %s is not implemented\n\r", recieve[i]); i=plength; break; }