fantemp/thermistor/main.cpp

52 lines
1.1 KiB
C++
Raw Normal View History

2020-03-29 01:46:11 +01:00
#include "clock.hpp"
2020-03-29 06:20:21 +02:00
#include <stdio.h>
2020-03-29 01:46:11 +01:00
#include "flash/flash.hpp"
2020-03-29 04:18:26 +02:00
#include "io/io.hpp"
2020-03-29 01:46:11 +01:00
#include "uart/uart.hpp"
2020-03-29 04:18:26 +02:00
#define ADC_INT_VECTOR
#include "adc/adc.hpp"
2020-03-29 01:46:11 +01:00
#define UART0_INT_VECTORS
#include "uart/hardware0.hpp"
#include "thermistor.hpp"
2020-03-29 06:20:21 +02:00
2020-03-29 01:29:59 +01:00
int main()
{
2020-03-29 01:46:11 +01:00
uart::Uart0<> serial;
serial.init();
serial << F("Thermistor reader\r\n");
2020-03-29 04:18:26 +02:00
using adc_conf = adc::Config<adc::SingleMode>;
adc::Adc<adc_conf, io::P, io::P::C0> adcPin;
adcPin.init();
Thermistor temp;
2020-03-29 04:18:26 +02:00
while (true) {
const auto adcSample = temp.sampleAdc(adcPin, 1000);
const auto thermistorResistance = temp.getResistance(adcSample);
const auto temperature = temp.getTemperature(thermistorResistance);
2020-03-29 06:20:21 +02:00
char floatBuffer[16];
sprintf(floatBuffer, "%.2f", adcSample);
serial << F("Read ADC: ") << floatBuffer << F("\r\n");
sprintf(floatBuffer, "%.2f", thermistorResistance);
serial << F("Resistance: ") << floatBuffer << F("\r\n");
sprintf(floatBuffer, "%.2f", temperature);
serial << F("Temperature: ") << floatBuffer << F(" C \r\n");
2020-03-29 04:18:26 +02:00
_delay_ms(1000);
}
2020-03-29 01:46:11 +01:00
serial.flushTx();
2020-03-29 01:29:59 +01:00
return 0;
}