SSCI824 I2C Test Don't work.

Dependencies:   mbed

http://developer.mbed.org/questions/5761/I2C-Problem/

Committer:
mark8018
Date:
Sun Dec 28 08:18:55 2014 +0000
Revision:
0:56fa72db2898
created.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
mark8018 0:56fa72db2898 1 #include "mbed.h"
mark8018 0:56fa72db2898 2
mark8018 0:56fa72db2898 3 #if defined (TARGET_MBED_LPC1768)
mark8018 0:56fa72db2898 4 // Defines for sensors I2C
mark8018 0:56fa72db2898 5 #define SDA p9
mark8018 0:56fa72db2898 6 #define SCL p10
mark8018 0:56fa72db2898 7
mark8018 0:56fa72db2898 8 #elif defined (TARGET_SSCI824)
mark8018 0:56fa72db2898 9 // Defines for sensors I2C
mark8018 0:56fa72db2898 10 #define SDA dp4
mark8018 0:56fa72db2898 11 #define SCL dp5
mark8018 0:56fa72db2898 12
mark8018 0:56fa72db2898 13 #elif defined (TARGET_LPC11U35_401)
mark8018 0:56fa72db2898 14 // Defines for sensors I2C
mark8018 0:56fa72db2898 15 #define SDA P0_5
mark8018 0:56fa72db2898 16 #define SCL P0_4
mark8018 0:56fa72db2898 17
mark8018 0:56fa72db2898 18 #else
mark8018 0:56fa72db2898 19 #error "Unknown target type"
mark8018 0:56fa72db2898 20 #endif
mark8018 0:56fa72db2898 21
mark8018 0:56fa72db2898 22 #define I2C_ADDRES (0x1c<<1)
mark8018 0:56fa72db2898 23 Serial pc(USBTX, USBRX);
mark8018 0:56fa72db2898 24 I2C i2c(SDA, SCL);
mark8018 0:56fa72db2898 25 char temp[6];
mark8018 0:56fa72db2898 26
mark8018 0:56fa72db2898 27 int main()
mark8018 0:56fa72db2898 28 {
mark8018 0:56fa72db2898 29 pc.baud(115200);
mark8018 0:56fa72db2898 30
mark8018 0:56fa72db2898 31 wait(1.0);
mark8018 0:56fa72db2898 32
mark8018 0:56fa72db2898 33 memset(temp, 0, sizeof(temp));
mark8018 0:56fa72db2898 34 temp[0]=0x0D; // REG_WHO_AM_I
mark8018 0:56fa72db2898 35 if(i2c.write(I2C_ADDRES, temp, 1, true) != 0) pc.printf("I2C write error\r\n");
mark8018 0:56fa72db2898 36 memset(temp, 0, sizeof(temp));
mark8018 0:56fa72db2898 37 if(i2c.read(I2C_ADDRES, temp, 1, false) != 0) pc.printf("I2C read error\r\n");
mark8018 0:56fa72db2898 38 pc.printf("ID is %X\r\n",(int)temp[0]); // ID is 0x1A
mark8018 0:56fa72db2898 39
mark8018 0:56fa72db2898 40 memset(temp, 0, sizeof(temp));
mark8018 0:56fa72db2898 41 temp[0]=0x2A; // REG_CTRL_REG1
mark8018 0:56fa72db2898 42 temp[1]=0x19; // Data
mark8018 0:56fa72db2898 43 if(i2c.write(I2C_ADDRES, temp, 2, false) != 0) pc.printf("I2C write error\r\n");
mark8018 0:56fa72db2898 44
mark8018 0:56fa72db2898 45 while(1) {}
mark8018 0:56fa72db2898 46 }