2014-12-10 5:41 1 second pulse (serial)
Dependencies: MODSERIALhacked Convert SLCD mbed-src
main.cpp@6:3fbe44c7c26a, 2014-12-11 (annotated)
- Committer:
- resolutedreamer
- Date:
- Thu Dec 11 04:07:33 2014 +0000
- Revision:
- 6:3fbe44c7c26a
- Parent:
- 5:112df51d4815
- Child:
- 7:c81c6968f013
Cleaned up the code a lot. Added capability to collect data from the analog pin (which goes through ADC).
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
resolutedreamer | 0:68d1c7f2dbc7 | 1 | #include "mbed.h" |
jhaugen | 2:a4db8ee941d2 | 2 | #include "convert.h" |
resolutedreamer | 0:68d1c7f2dbc7 | 3 | |
resolutedreamer | 6:3fbe44c7c26a | 4 | Serial pc(USBTX, USBRX); |
jhaugen | 5:112df51d4815 | 5 | |
resolutedreamer | 6:3fbe44c7c26a | 6 | AnalogIn my_light_sensor(PTE22); |
resolutedreamer | 6:3fbe44c7c26a | 7 | AnalogIn my_analog_pin(PTB0); |
jhaugen | 5:112df51d4815 | 8 | // false == on; true == off for the leds |
resolutedreamer | 0:68d1c7f2dbc7 | 9 | DigitalOut myled(LED_GREEN); |
jhaugen | 5:112df51d4815 | 10 | DigitalOut redled(LED_RED); |
resolutedreamer | 0:68d1c7f2dbc7 | 11 | |
jhaugen | 5:112df51d4815 | 12 | Ticker ticker; |
resolutedreamer | 6:3fbe44c7c26a | 13 | char my_time[31]; |
jhaugen | 5:112df51d4815 | 14 | int tick_count = 0; |
resolutedreamer | 4:9930547c1cfa | 15 | |
jhaugen | 5:112df51d4815 | 16 | void systick() { |
jhaugen | 5:112df51d4815 | 17 | if (tick_count % 10 == 0) { |
jhaugen | 5:112df51d4815 | 18 | redled = true; |
jhaugen | 5:112df51d4815 | 19 | } |
jhaugen | 5:112df51d4815 | 20 | else { |
jhaugen | 5:112df51d4815 | 21 | redled = false; |
jhaugen | 5:112df51d4815 | 22 | } |
jhaugen | 5:112df51d4815 | 23 | tick_count++; |
jhaugen | 5:112df51d4815 | 24 | } |
resolutedreamer | 1:ca5c2809eec1 | 25 | |
resolutedreamer | 0:68d1c7f2dbc7 | 26 | int main() |
resolutedreamer | 6:3fbe44c7c26a | 27 | { |
resolutedreamer | 6:3fbe44c7c26a | 28 | //initialize hardware |
jhaugen | 5:112df51d4815 | 29 | ticker.attach_us(&systick, 100000); |
resolutedreamer | 1:ca5c2809eec1 | 30 | pc.baud(115200); |
resolutedreamer | 6:3fbe44c7c26a | 31 | Convert lcd; |
resolutedreamer | 6:3fbe44c7c26a | 32 | |
resolutedreamer | 6:3fbe44c7c26a | 33 | //initialize variables |
resolutedreamer | 0:68d1c7f2dbc7 | 34 | int i = 0; |
resolutedreamer | 1:ca5c2809eec1 | 35 | bool pulse_value = false; |
resolutedreamer | 6:3fbe44c7c26a | 36 | float let_there_be_light = 0.0; |
resolutedreamer | 6:3fbe44c7c26a | 37 | float my_analog_value = 0.0; |
resolutedreamer | 6:3fbe44c7c26a | 38 | my_time[30] = '\0'; |
resolutedreamer | 6:3fbe44c7c26a | 39 | |
resolutedreamer | 6:3fbe44c7c26a | 40 | //we start the program |
resolutedreamer | 0:68d1c7f2dbc7 | 41 | pc.printf("Hello World!\n"); |
resolutedreamer | 6:3fbe44c7c26a | 42 | |
resolutedreamer | 6:3fbe44c7c26a | 43 | while (true) |
resolutedreamer | 6:3fbe44c7c26a | 44 | { |
resolutedreamer | 6:3fbe44c7c26a | 45 | // Beginning of a second |
resolutedreamer | 6:3fbe44c7c26a | 46 | // set the pulse high for 100ms, .1 s |
resolutedreamer | 6:3fbe44c7c26a | 47 | // toggle a led |
resolutedreamer | 6:3fbe44c7c26a | 48 | pulse_value = true; |
resolutedreamer | 6:3fbe44c7c26a | 49 | myled = pulse_value; |
resolutedreamer | 6:3fbe44c7c26a | 50 | |
resolutedreamer | 6:3fbe44c7c26a | 51 | // get data from the (2) light sensor (3) analog pin |
resolutedreamer | 6:3fbe44c7c26a | 52 | let_there_be_light = my_light_sensor.read(); |
resolutedreamer | 6:3fbe44c7c26a | 53 | my_analog_value = my_analog_pin.read(); |
resolutedreamer | 6:3fbe44c7c26a | 54 | |
resolutedreamer | 6:3fbe44c7c26a | 55 | // print the analog values to uart |
resolutedreamer | 6:3fbe44c7c26a | 56 | pc.printf("%f,%f\r\n", let_there_be_light, my_analog_value); |
resolutedreamer | 6:3fbe44c7c26a | 57 | |
resolutedreamer | 6:3fbe44c7c26a | 58 | // display 1 |
resolutedreamer | 6:3fbe44c7c26a | 59 | lcd.display(1); |
resolutedreamer | 6:3fbe44c7c26a | 60 | wait_ms(100.0f); |
resolutedreamer | 6:3fbe44c7c26a | 61 | |
resolutedreamer | 6:3fbe44c7c26a | 62 | // set the pulse low for 900 ms, .9 s |
resolutedreamer | 6:3fbe44c7c26a | 63 | // toggle a led |
resolutedreamer | 6:3fbe44c7c26a | 64 | pulse_value = false; |
resolutedreamer | 6:3fbe44c7c26a | 65 | myled = pulse_value; // toggle a led |
resolutedreamer | 6:3fbe44c7c26a | 66 | |
resolutedreamer | 6:3fbe44c7c26a | 67 | // get data from the (2) light sensor (3) analog pin |
resolutedreamer | 6:3fbe44c7c26a | 68 | let_there_be_light = my_light_sensor.read(); |
resolutedreamer | 6:3fbe44c7c26a | 69 | my_analog_value = my_analog_pin.read(); |
resolutedreamer | 6:3fbe44c7c26a | 70 | |
resolutedreamer | 6:3fbe44c7c26a | 71 | // print the analog values to uart |
resolutedreamer | 6:3fbe44c7c26a | 72 | pc.printf("%f,%f\r\n", let_there_be_light, my_analog_value); |
resolutedreamer | 6:3fbe44c7c26a | 73 | |
resolutedreamer | 6:3fbe44c7c26a | 74 | // display 0 |
resolutedreamer | 6:3fbe44c7c26a | 75 | lcd.display(0); |
resolutedreamer | 6:3fbe44c7c26a | 76 | wait_ms(900.0f); |
resolutedreamer | 6:3fbe44c7c26a | 77 | |
resolutedreamer | 6:3fbe44c7c26a | 78 | // End of a second |
resolutedreamer | 1:ca5c2809eec1 | 79 | |
resolutedreamer | 1:ca5c2809eec1 | 80 | /* |
resolutedreamer | 1:ca5c2809eec1 | 81 | |
resolutedreamer | 6:3fbe44c7c26a | 82 | //on hold for a moment |
resolutedreamer | 6:3fbe44c7c26a | 83 | my_time[i] = pc.getc(); |
resolutedreamer | 6:3fbe44c7c26a | 84 | if (i == 29) |
resolutedreamer | 6:3fbe44c7c26a | 85 | { |
resolutedreamer | 6:3fbe44c7c26a | 86 | i = 0; |
resolutedreamer | 6:3fbe44c7c26a | 87 | } |
resolutedreamer | 1:ca5c2809eec1 | 88 | */ |
resolutedreamer | 0:68d1c7f2dbc7 | 89 | } |
resolutedreamer | 0:68d1c7f2dbc7 | 90 | } |