Sample program for interfacing with PNI's RM3100 Breakout Board

Dependencies:   mbed

Committer:
ddelsuc
Date:
Thu Oct 26 18:40:57 2017 +0000
Revision:
0:6ddf88b49483
Sample program for interfacing with PNI's RM3100 Breakout Board

Who changed what in which revision?

UserRevisionLine numberNew contents of line
ddelsuc 0:6ddf88b49483 1 // The purpose of this file and associated header file is to
ddelsuc 0:6ddf88b49483 2 // enable globalization of mbed platform specific objects
ddelsuc 0:6ddf88b49483 3 // for all source files to utilize
ddelsuc 0:6ddf88b49483 4
ddelsuc 0:6ddf88b49483 5 #include "mbed_objects.h"
ddelsuc 0:6ddf88b49483 6
ddelsuc 0:6ddf88b49483 7 //******************************
ddelsuc 0:6ddf88b49483 8 // MBED Library instatiations
ddelsuc 0:6ddf88b49483 9 //******************************
ddelsuc 0:6ddf88b49483 10
ddelsuc 0:6ddf88b49483 11 I2C i2c(I2C_SDA, I2C_SCL);
ddelsuc 0:6ddf88b49483 12 Serial pc(USBTX, USBRX);
ddelsuc 0:6ddf88b49483 13
ddelsuc 0:6ddf88b49483 14 DigitalIn DRDY_PIN(D8);
ddelsuc 0:6ddf88b49483 15
ddelsuc 0:6ddf88b49483 16 // MBED native READ/ WRITE functions
ddelsuc 0:6ddf88b49483 17 unsigned int rm3100_i2c_write(char registerAddress, char* buffer, short int length)
ddelsuc 0:6ddf88b49483 18 {
ddelsuc 0:6ddf88b49483 19 char writeBuffer[MAX_I2C_WRITE + 1];
ddelsuc 0:6ddf88b49483 20 writeBuffer[0] = registerAddress;
ddelsuc 0:6ddf88b49483 21 memcpy(&writeBuffer[1], buffer, length);
ddelsuc 0:6ddf88b49483 22 //i2c.write(RM3100_I2C_ADDRESS_8bit, const char *data, int length, 1);
ddelsuc 0:6ddf88b49483 23 // returns 0 on success (ack), non-0 on failure (nack)
ddelsuc 0:6ddf88b49483 24 int status = i2c.write(RM3100_I2C_ADDRESS_8bit, writeBuffer, length+1, 0);
ddelsuc 0:6ddf88b49483 25 return !status; // return True if successfull. mbed:0=Success
ddelsuc 0:6ddf88b49483 26 }
ddelsuc 0:6ddf88b49483 27
ddelsuc 0:6ddf88b49483 28 unsigned int rm3100_i2c_read(char registerAddress, char* buffer, short int length)
ddelsuc 0:6ddf88b49483 29 {
ddelsuc 0:6ddf88b49483 30 char writeBuffer[1] = {registerAddress};
ddelsuc 0:6ddf88b49483 31 i2c.write(RM3100_I2C_ADDRESS_8bit, writeBuffer, 1, 1);
ddelsuc 0:6ddf88b49483 32 int status = i2c.read(RM3100_I2C_ADDRESS_8bit, buffer, length, 0);
ddelsuc 0:6ddf88b49483 33 if (!status) //mbed:0=Success
ddelsuc 0:6ddf88b49483 34 return length;
ddelsuc 0:6ddf88b49483 35 else
ddelsuc 0:6ddf88b49483 36 return 0;
ddelsuc 0:6ddf88b49483 37 }