part of the preparation works for Ina-city Hackerthon

Dependencies:   mbed-http

Fork of Wio_3G_example by Toyomasa Watarai

Committer:
MACRUM
Date:
Fri Aug 03 05:22:15 2018 +0000
Revision:
70:cb6d36218441
Parent:
29:0b58d21e87d6
Child:
71:7d17edde2e03
Initial commit

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Jonathan Austin 0:2757d7abb7d9 1 #include "mbed.h"
MACRUM 70:cb6d36218441 2 #include "DigitDisplay.h"
MACRUM 70:cb6d36218441 3
MACRUM 70:cb6d36218441 4 #define D20 (PB_4)
MACRUM 70:cb6d36218441 5 #define D19 (PB_3)
MACRUM 70:cb6d36218441 6
MACRUM 70:cb6d36218441 7 DigitalOut GrovePower(PB_10, 1);
MACRUM 70:cb6d36218441 8 DigitalOut led1(D38);
MACRUM 70:cb6d36218441 9 AnalogIn ain(A6);
MACRUM 70:cb6d36218441 10 InterruptIn btn(D20);
MACRUM 70:cb6d36218441 11
MACRUM 70:cb6d36218441 12 DigitDisplay display(RXD, TXD); // 4-Digit Display connected to UART Grove connector
MACRUM 70:cb6d36218441 13
MACRUM 70:cb6d36218441 14 Ticker ticker;
MACRUM 70:cb6d36218441 15 volatile uint8_t second = 0;
MACRUM 70:cb6d36218441 16 volatile uint8_t minute = 0;
MACRUM 70:cb6d36218441 17 volatile uint8_t hour = 12;
MACRUM 70:cb6d36218441 18 volatile bool colon_enable = false;
MACRUM 70:cb6d36218441 19
MACRUM 70:cb6d36218441 20
MACRUM 70:cb6d36218441 21 ///
MACRUM 70:cb6d36218441 22
MACRUM 70:cb6d36218441 23 float get_temp()
MACRUM 70:cb6d36218441 24 {
MACRUM 70:cb6d36218441 25 const int B = 4275; // B value of the thermistor
MACRUM 70:cb6d36218441 26 const int R0 = 100000; // R0 = 100k
MACRUM 70:cb6d36218441 27 AnalogIn temp(A4);
MACRUM 70:cb6d36218441 28
MACRUM 70:cb6d36218441 29 float R = 1.0f/temp.read() - 1.0f;
MACRUM 70:cb6d36218441 30 R = R0*R;
Jonathan Austin 0:2757d7abb7d9 31
MACRUM 70:cb6d36218441 32 float temperature = 1.0/(log(R/R0)/B+1/298.15)-273.15; // convert to temperature via datasheet
MACRUM 70:cb6d36218441 33 return temperature;
MACRUM 70:cb6d36218441 34 }
MACRUM 70:cb6d36218441 35 ///
MACRUM 70:cb6d36218441 36
MACRUM 70:cb6d36218441 37
MACRUM 70:cb6d36218441 38 void tick()
MACRUM 70:cb6d36218441 39 {
MACRUM 70:cb6d36218441 40 colon_enable = !colon_enable;
MACRUM 70:cb6d36218441 41 display.setColon(colon_enable);
MACRUM 70:cb6d36218441 42
MACRUM 70:cb6d36218441 43 if (colon_enable) {
MACRUM 70:cb6d36218441 44 second++;
MACRUM 70:cb6d36218441 45 if (second >= 60) {
MACRUM 70:cb6d36218441 46 second = 0;
MACRUM 70:cb6d36218441 47 minute++;
MACRUM 70:cb6d36218441 48 if (minute >= 60) {
MACRUM 70:cb6d36218441 49 minute = 0;
MACRUM 70:cb6d36218441 50 hour++;
MACRUM 70:cb6d36218441 51 if (hour >= 24) {
MACRUM 70:cb6d36218441 52 hour = 0;
MACRUM 70:cb6d36218441 53 }
MACRUM 70:cb6d36218441 54 }
MACRUM 70:cb6d36218441 55 display.write(hour * 100 + minute);
MACRUM 70:cb6d36218441 56 }
MACRUM 70:cb6d36218441 57 }
MACRUM 70:cb6d36218441 58 }
MACRUM 70:cb6d36218441 59
MACRUM 70:cb6d36218441 60 void push()
MACRUM 70:cb6d36218441 61 {
MACRUM 70:cb6d36218441 62 printf("*");
MACRUM 70:cb6d36218441 63 }
Jonathan Austin 0:2757d7abb7d9 64
Jonathan Austin 1:846c97078558 65 // main() runs in its own thread in the OS
MACRUM 70:cb6d36218441 66 int main()
MACRUM 70:cb6d36218441 67 {
MACRUM 70:cb6d36218441 68 display.write(hour * 100 + minute);
MACRUM 70:cb6d36218441 69 ticker.attach(tick, 0.5);
MACRUM 70:cb6d36218441 70
MACRUM 70:cb6d36218441 71 btn.fall(push);
MACRUM 70:cb6d36218441 72
MACRUM 70:cb6d36218441 73 int cnt = 0;
MACRUM 70:cb6d36218441 74 printf("hello, Mbed world\n");
Jonathan Austin 0:2757d7abb7d9 75 while (true) {
MACRUM 70:cb6d36218441 76 printf("count = %4d, analog = %f, temp = %f\n", cnt++, ain.read(), get_temp());
Jonathan Austin 0:2757d7abb7d9 77 led1 = !led1;
mbed_official 22:af9dcf379926 78 wait(0.5);
Jonathan Austin 0:2757d7abb7d9 79 }
Jonathan Austin 0:2757d7abb7d9 80 }
Jonathan Austin 1:846c97078558 81