ch5_mbed_dust_sensor

Dependencies:   mbed

Committer:
mbedschool
Date:
Mon Jan 26 09:10:53 2015 +0000
Revision:
0:859e0fd616ee
ch5_mbed_dust_sensor

Who changed what in which revision?

UserRevisionLine numberNew contents of line
mbedschool 0:859e0fd616ee 1 #include "mbed.h"
mbedschool 0:859e0fd616ee 2
mbedschool 0:859e0fd616ee 3 Serial pc(USBTX, USBRX);
mbedschool 0:859e0fd616ee 4 InterruptIn probe(p19);
mbedschool 0:859e0fd616ee 5 DigitalOut led(LED1);
mbedschool 0:859e0fd616ee 6
mbedschool 0:859e0fd616ee 7 Timer timer;
mbedschool 0:859e0fd616ee 8 Ticker ticker;
mbedschool 0:859e0fd616ee 9
mbedschool 0:859e0fd616ee 10 uint32_t low_time = 0;
mbedschool 0:859e0fd616ee 11
mbedschool 0:859e0fd616ee 12 void down();
mbedschool 0:859e0fd616ee 13 void up();
mbedschool 0:859e0fd616ee 14
mbedschool 0:859e0fd616ee 15 void tick()
mbedschool 0:859e0fd616ee 16 {
mbedschool 0:859e0fd616ee 17 pc.printf("%d us, %f %%\r\n", low_time, low_time / (30.0 * 1000000));
mbedschool 0:859e0fd616ee 18 low_time = 0;
mbedschool 0:859e0fd616ee 19 }
mbedschool 0:859e0fd616ee 20
mbedschool 0:859e0fd616ee 21 void down()
mbedschool 0:859e0fd616ee 22 {
mbedschool 0:859e0fd616ee 23 probe.rise(&up);
mbedschool 0:859e0fd616ee 24 led = 0;
mbedschool 0:859e0fd616ee 25 timer.start();
mbedschool 0:859e0fd616ee 26 }
mbedschool 0:859e0fd616ee 27
mbedschool 0:859e0fd616ee 28 void up()
mbedschool 0:859e0fd616ee 29 {
mbedschool 0:859e0fd616ee 30 led = 1;
mbedschool 0:859e0fd616ee 31 timer.stop();
mbedschool 0:859e0fd616ee 32 probe.fall(&down);
mbedschool 0:859e0fd616ee 33
mbedschool 0:859e0fd616ee 34 low_time += timer.read_us();
mbedschool 0:859e0fd616ee 35 timer.reset();
mbedschool 0:859e0fd616ee 36 }
mbedschool 0:859e0fd616ee 37
mbedschool 0:859e0fd616ee 38 int main()
mbedschool 0:859e0fd616ee 39 {
mbedschool 0:859e0fd616ee 40 pc.baud(115200);
mbedschool 0:859e0fd616ee 41 pc.printf("Dust Sensor test\r\n");
mbedschool 0:859e0fd616ee 42 probe.fall(&down);
mbedschool 0:859e0fd616ee 43 ticker.attach(tick, 30);
mbedschool 0:859e0fd616ee 44 }