Dan Allen
/
ramp_blink
a program to ramp the blink frequency of an analog out pin for Nucleo L432KC
main.cpp@0:95d8db6b6e4d, 2019-01-27 (annotated)
- Committer:
- laserdad
- Date:
- Sun Jan 27 15:48:36 2019 +0000
- Revision:
- 0:95d8db6b6e4d
ramping version full range
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
laserdad | 0:95d8db6b6e4d | 1 | #include "mbed.h" |
laserdad | 0:95d8db6b6e4d | 2 | |
laserdad | 0:95d8db6b6e4d | 3 | AnalogOut base(A3); |
laserdad | 0:95d8db6b6e4d | 4 | Serial pc(USBTX, USBRX,9600); |
laserdad | 0:95d8db6b6e4d | 5 | // main() runs in its own thread in the OS |
laserdad | 0:95d8db6b6e4d | 6 | float min_loop_time = 1e6; |
laserdad | 0:95d8db6b6e4d | 7 | Timer t; |
laserdad | 0:95d8db6b6e4d | 8 | int main() { |
laserdad | 0:95d8db6b6e4d | 9 | pc.printf("starting main program\r\n"); |
laserdad | 0:95d8db6b6e4d | 10 | while (1) { |
laserdad | 0:95d8db6b6e4d | 11 | float delay_time = 2e6; |
laserdad | 0:95d8db6b6e4d | 12 | t.start(); |
laserdad | 0:95d8db6b6e4d | 13 | while(delay_time > 1.0) { |
laserdad | 0:95d8db6b6e4d | 14 | base = 1; |
laserdad | 0:95d8db6b6e4d | 15 | wait_us(delay_time); |
laserdad | 0:95d8db6b6e4d | 16 | base = 0; |
laserdad | 0:95d8db6b6e4d | 17 | wait_us(delay_time); |
laserdad | 0:95d8db6b6e4d | 18 | if(t.read_us() > min_loop_time) { |
laserdad | 0:95d8db6b6e4d | 19 | delay_time = delay_time/2; |
laserdad | 0:95d8db6b6e4d | 20 | t.reset(); |
laserdad | 0:95d8db6b6e4d | 21 | pc.printf("%.0f\r\n",delay_time); |
laserdad | 0:95d8db6b6e4d | 22 | } |
laserdad | 0:95d8db6b6e4d | 23 | } |
laserdad | 0:95d8db6b6e4d | 24 | } |
laserdad | 0:95d8db6b6e4d | 25 | } |
laserdad | 0:95d8db6b6e4d | 26 |