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: max32630fthr USBDevice
main.cpp
- Committer:
- phonemacro
- Date:
- 2019-04-22
- Revision:
- 0:a9f350f894e7
- Child:
- 1:9b9c2989d4eb
File content as of revision 0:a9f350f894e7:
#include "mbed.h"
#include "max32630fthr.h"
#include "USBSerial.h"
MAX32630FTHR pegasus(MAX32630FTHR::VIO_3V3);
// Hardware serial port over DAPLink
Serial daplink(P2_1, P2_0);
// Virtual serial port over USB
USBSerial microUSB;
DigitalOut rLED(LED1);
DigitalOut gLED(LED2);
DigitalOut bLED(LED3);
/* Analog inputs 0 and 1 have internal dividers to allow measuring 5V signals
* The dividers are selected by using inputs AIN_4 and AIN_5 respectively.
* The full scale range for AIN0-3 is 1.2V
* The full scale range for AIN4-5 is 6.0V
*/
AnalogIn ain1(AIN_5);
const float AIN5_FSV = 6.0f; /* Full scale value for AIN5 */
float max6613_celsius_to_fahrenheit(float temp_c)
{
float temp_f;
temp_f = ((temp_c * 9)/5) + 32;
return temp_f;
}
// main() runs in its own thread in the OS
// (note the calls to Thread::wait below for delays)
/**
* @brief Sample main program for MAX6613
* @version 1.0000.0000
*
* @details Sample main program for MAX6613
* The prints are sent to the terminal window (9600, 8n1).
* The program sets the GPIOs to 3.3V and the program
* configures the chip and reads temperatures.
* To run the program, drag and drop the .bin file into the
* DAPLINK folder. After it finishes flashing, cycle the power or
* reset the Pegasus (MAX32630FTHR) after flashing by pressing the button on
* the Pegasus next to the battery connector or the button
* on the MAXREFDES100HDK.
*/
int main()
{
float temperature;
uint32_t i;
const float A = -0.00000225f;
const float B = -0.01105f;
const float C1 = 1.8455f;
float c2;
microUSB.printf("micro USB serial port\r\n");
rLED = LED_OFF;
gLED = LED_ON;
bLED = LED_OFF;
rLED = LED_OFF;
temperature = (float)((1.8455f - (AIN5_FSV * ain1)) / 0.01123f);
// daplink.printf("AIN1: %1.5f\n", (AIN5_FSV * ain1) ); // analog inputs 1
daplink.printf("Temperature using Linear Approximation\r\n");
for (i = 0; i < 8; i++) {
temperature = (float)((1.8455f - (AIN5_FSV * ain1)) / 0.01123f);
daplink.printf("temperature: %3.1f degrees C C, %3.1f degrees F\r\n", temperature, max6613_celsius_to_fahrenheit(temperature));
wait(2);
}
daplink.printf("\r\n");
daplink.printf("Temperature using the Quadratic Equation\r\n");
for (i = 0; i < 8; i++) {
c2 = AIN5_FSV * ain1;
temperature = (-B - sqrt(B*B - 4*A*(C1-c2)))/(2*A);
daplink.printf("temperature: %3.1f degrees C C, %3.1f degrees F\r\n", temperature, max6613_celsius_to_fahrenheit(temperature));
wait(2);
}
daplink.printf("\r\n");
while(1) {
gLED = !gLED;
wait(0.5);
}
}