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
diff -r 0d8359a6e2c2 -r db621ae6a076 LPC824/main.cpp
--- 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;
}