Energy harvesting mobile robot. Developed at Institute of Systems and Robotics — University of Coimbra.
Fork of ISR_Mini-explorer by
Rangefinder.cpp
- Committer:
- fabiofaria
- Date:
- 2018-04-19
- Revision:
- 4:560d24c0e5f8
File content as of revision 4:560d24c0e5f8:
#include "Rangefinder.h"
#include "mbed.h"
const int rgfAddr = 0x14;
uint16_t rgfMeasurements[16];
//char sensors_selection[] = {1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0}; // Only allows a maximum of 11 sensors simultaneously.
//char sensors_selection[] = {1,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0}; // Only allows a maximum of 11 sensors simultaneously.
char sensors_selection[] = {1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}; // Only allows a maximum of 11 sensors simultaneously.
I2C* _i2c;
Mutex* _mutex;
void init_rangefinder(I2C* i2c_in, Mutex* mutex_in)
{
_i2c = i2c_in;
_mutex = mutex_in;
wait(1);
_mutex->lock();
_i2c->write(rgfAddr, sensors_selection, 16);
_mutex->unlock();
wait(1);
}
int read_rangefinder()
{
int i2c_result;
_mutex->lock();
i2c_result = _i2c->read(rgfAddr, (char*)rgfMeasurements, sizeof(rgfMeasurements));
_mutex->unlock();
return i2c_result;
}
