Manabu Taniguchi
/
SSCI824_I2Ctest
SSCI824 I2C Test Don't work.
http://developer.mbed.org/questions/5761/I2C-Problem/
main.cpp@0:56fa72db2898, 2014-12-28 (annotated)
- Committer:
- mark8018
- Date:
- Sun Dec 28 08:18:55 2014 +0000
- Revision:
- 0:56fa72db2898
created.
Who changed what in which revision?
User | Revision | Line number | New 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 | } |