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.
Dependencies: BLE_API i2c-serial-conflict nRF51822
Fork of capstone_i2c by
Diff: main.cpp
- Revision:
- 1:e2ba28405dd5
- Parent:
- 0:6a249a5be3a4
- Child:
- 2:2082f0f50590
--- a/main.cpp Tue Apr 04 03:17:10 2017 +0000
+++ b/main.cpp Mon Apr 10 02:19:13 2017 +0000
@@ -30,8 +30,8 @@
#endif
#ifdef BLE_Nano
-#define SCL 7
-#define SDA 6
+#define SCL 8
+#define SDA 10
#endif
#define DEV_ADDR 0xA0
@@ -43,7 +43,9 @@
#define REG_OUT_X_L 0x28
#define REG_CTRL1 0x20
#define REG_CTRL4 0x23
+#define REG_WHOAMI 0x0F
#define RANGE_2G 0x00
+#define DEVICE_ID 0x33
#define DATARATE_400HZ 0b0111 // 400Hz
@@ -63,20 +65,36 @@
void AT24C512_WriteBytes(uint16_t addr, uint8_t *pbuf, uint16_t length, uint16_t i2cAddr)
{
Wire.beginTransmission(i2cAddr);
- Wire.write( (uint8_t)addr>>8 );
+ int err = Wire.write( (uint8_t)addr>>8 );
Wire.write( (uint8_t)addr );
Wire.write(pbuf, length);
- Wire.endTransmission();
+ if (err != 0) {
+ pc.printf("error on write write! %d\n", err);
+ }
+ uint8_t err8 = Wire.endTransmission();
+ if (err8 != 0) {
+ pc.printf("error on write end transmission! %d\n", err8);
+ }
}
void AT24C512_ReadBytes(uint16_t addr, uint8_t *pbuf, uint16_t length, uint16_t i2cAddr)
{
Wire.beginTransmission(i2cAddr);
- Wire.write( (uint8_t)addr>>8 );
- Wire.write( (uint8_t)addr );
- Wire.endTransmission();
+ int err = Wire.write( (uint8_t)addr>>8 );
+ Wire.write( (uint8_t)addr );
+ Wire.write(pbuf, length);
+ if (err != 0) {
+ pc.printf("error on read write! %d\n", err);
+ }
+ uint8_t err8 = Wire.endTransmission();
+ if (err8 != 0) {
+ pc.printf("error on read end transmission! %d\n", err8);
+ }
- Wire.requestFrom(i2cAddr+1, length);
+ err8 = Wire.requestFrom(i2cAddr+1, length);
+ if (err != 0) {
+ pc.printf("error on read request from! %d\n", err8);
+ }
while( Wire.available() > 0 )
{
*pbuf = Wire.read();
@@ -185,6 +203,12 @@
Wire.begin(SCL, SDA, TWI_FREQUENCY_100K);
pc.printf("IIC Demo Start \r\n");
+ uint8_t* whoami = new uint8_t[1];
+ AT24C512_ReadBytes(REG_WHOAMI, whoami, 1, ADDR_ONE);
+ pc.printf("Whoami: %d\r\n", whoami[1]);
+
+ wait(15);
+
setAxisStatus(AXIS_X, true, ADDR_ONE);
setAxisStatus(AXIS_Y, true, ADDR_ONE);
setAxisStatus(AXIS_Z, true, ADDR_ONE);
