nRF51822 serves as the bridge between BLE central and MCU, which makes cental able to fetch photos from serial camera.

Dependencies:   BLE_API mbed nRF51822

Fork of nRF51822_blinky by RedBearLab

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers application.cpp Source File

application.cpp

00001 #include "application.h"
00002 #include "mbed.h"
00003 
00004 extern Serial pc;
00005 
00006 float readTMP102Temperature(I2C& i2c, char* reg) {
00007     const char regAddr = TMP102_TEMP_REG_ADDR;
00008     i2c.write(TMP102_ADDR, &regAddr, 1);
00009     int result = i2c.read(TMP102_ADDR, reg, 2);
00010     if (result != 0)
00011         return -1;
00012     
00013     int TemperatureSum = (reg[0] << 8 | reg[1]) >> 4;
00014     return (float)TemperatureSum*0.0625;
00015 }
00016 
00017 /* AT24C64D */
00018 bool writeAT24EEPROMBuffer(I2C& i2c, uint8_t dataAddr, char* buf, uint16_t length){
00019     uint8_t tmpBuf[10] = {0,};
00020     tmpBuf[0] = dataAddr;
00021     if(length > 9)
00022         length = 9;
00023         
00024     for(int i = 1; i < (length+1); i++)
00025         tmpBuf[i] = buf[i-1];
00026     
00027     int result = i2c.write(EEPROM_ADDR, (char*)tmpBuf, length+1);
00028     if (result != 0)
00029         return false;
00030     else
00031         return true;
00032 }
00033 
00034 bool readAT24EEPROMBuffer(I2C& i2c, uint8_t dataAddr, char* buf, uint16_t length){
00035     int result = i2c.write(EEPROM_ADDR, (char*)&dataAddr, 1);
00036     if (result != 0)
00037         return false;
00038     
00039     result = i2c.read(EEPROM_ADDR, buf, length);
00040     if (result != 0)
00041         return false;
00042         
00043     return true;
00044 }