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
Diff: main.cpp
- Revision:
- 0:6e28e543a11c
- Child:
- 1:1cab60b84d7f
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/main.cpp Wed Aug 16 22:58:45 2017 +0000
@@ -0,0 +1,94 @@
+#include "mbed.h"
+#include "max32630fthr.h"
+#include "MAX30205.h"
+
+MAX32630FTHR pegasus(MAX32630FTHR::VIO_3V3);
+
+bool temp_sensor_config(MAX30205 &temp_sensor);
+
+
+// main() runs in its own thread in the OS
+// (note the calls to Thread::wait below for delays)
+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;
+}
