part of the preparation works for Ina-city Hackerthon
Fork of Wio_3G_example by
main.cpp
- Committer:
- MACRUM
- Date:
- 2018-08-03
- Revision:
- 70:cb6d36218441
- Parent:
- 29:0b58d21e87d6
- Child:
- 71:7d17edde2e03
File content as of revision 70:cb6d36218441:
#include "mbed.h"
#include "DigitDisplay.h"
#define D20 (PB_4)
#define D19 (PB_3)
DigitalOut GrovePower(PB_10, 1);
DigitalOut led1(D38);
AnalogIn ain(A6);
InterruptIn btn(D20);
DigitDisplay display(RXD, TXD); // 4-Digit Display connected to UART Grove connector
Ticker ticker;
volatile uint8_t second = 0;
volatile uint8_t minute = 0;
volatile uint8_t hour = 12;
volatile bool colon_enable = false;
///
float get_temp()
{
const int B = 4275; // B value of the thermistor
const int R0 = 100000; // R0 = 100k
AnalogIn temp(A4);
float R = 1.0f/temp.read() - 1.0f;
R = R0*R;
float temperature = 1.0/(log(R/R0)/B+1/298.15)-273.15; // convert to temperature via datasheet
return temperature;
}
///
void tick()
{
colon_enable = !colon_enable;
display.setColon(colon_enable);
if (colon_enable) {
second++;
if (second >= 60) {
second = 0;
minute++;
if (minute >= 60) {
minute = 0;
hour++;
if (hour >= 24) {
hour = 0;
}
}
display.write(hour * 100 + minute);
}
}
}
void push()
{
printf("*");
}
// main() runs in its own thread in the OS
int main()
{
display.write(hour * 100 + minute);
ticker.attach(tick, 0.5);
btn.fall(push);
int cnt = 0;
printf("hello, Mbed world\n");
while (true) {
printf("count = %4d, analog = %f, temp = %f\n", cnt++, ain.read(), get_temp());
led1 = !led1;
wait(0.5);
}
}
