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: MAX30205 max32630fthr
Fork of MAX30205_Demo by
main.cpp
- Committer:
- coreyharris
- Date:
- 2017-08-16
- Revision:
- 1:1cab60b84d7f
- Parent:
- 0:6e28e543a11c
- Child:
- 2:cf07a3eb2f30
File content as of revision 1:1cab60b84d7f:
#include "mbed.h"
#include "max32630fthr.h"
#include "MAX30205.h"
MAX32630FTHR pegasus(MAX32630FTHR::VIO_3V3);
bool temp_sensor_config(MAX30205 &temp_sensor);
int main()
{
Serial pc(USBTX, USBRX);
pc.baud(115200);
DigitalOut rLed(LED1, LED_OFF);
DigitalOut gLed(LED2, LED_OFF);
DigitalOut bLed(LED3, LED_OFF);
I2C i2cBus(I2C1_SDA, I2C1_SCL);
MAX30205 * temp_sensor;
temp_sensor = new MAX30205(i2cBus, 0x48);
int rc = temp_sensor_config(*temp_sensor);
Timer temp_sensor_sampleTimer;
temp_sensor_sampleTimer.start();
MAX30205::Configuration_u temp_cfg;
uint16_t rawTemperatureRead, temp_conversion_flag;
float temperature;
while(1) {
if( rc == 0 ) {
/* Start a new temperature conversion */
if ( temp_sensor_sampleTimer.read() > 1.0 && !temp_conversion_flag){
temp_cfg.bits.one_shot = 1;
rc = temp_sensor->writeConfiguration(temp_cfg);
temp_conversion_flag = 1;
}
/* Read the completed temperature conversion */
if ( temp_sensor_sampleTimer.read() > 1.05 && temp_conversion_flag ){
temp_conversion_flag = 0;
rc = temp_sensor->readTemperature(rawTemperatureRead);
temperature = temp_sensor->toCelsius(rawTemperatureRead);
temp_sensor_sampleTimer.reset();
pc.printf("Temperature is %2.3f deg. C \r\n", temperature);
}
}else{
pc.printf("Something went wrong, check the I2C bus or power connections... \r\n");
bLed = LED_OFF;
gLed = LED_OFF;
while(1){
rLed = !rLed;
wait(0.5);
}
}
}
}
bool temp_sensor_config(MAX30205 &temp_sensor){
int rc = 0;
MAX30205::Configuration_u temp_cfg;
if(rc == 0)
{
temp_cfg.all = 0;
temp_cfg.bits.shutdown = 1;
temp_cfg.bits.comp_int = 1;
temp_cfg.bits.os_polarity = 0;
temp_cfg.bits.fault_queue = 1;
temp_cfg.bits.data_format = 0;
temp_cfg.bits.timeout = 0;
temp_cfg.bits.one_shot = 0;
rc = temp_sensor.writeConfiguration(temp_cfg);
}
return rc;
}
