![](/media/cache/group/default_image.jpg.50x50_q85.jpg)
NUCLEO-F042K6 Simple demo blinking LED using Timer
Dependencies: mbed
main.cpp@0:da8805cd0051, 2018-02-17 (annotated)
- Committer:
- vodsejak
- Date:
- Sat Feb 17 16:44:23 2018 +0000
- Revision:
- 0:da8805cd0051
v1.0;
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
vodsejak | 0:da8805cd0051 | 1 | #include "mbed.h" |
vodsejak | 0:da8805cd0051 | 2 | |
vodsejak | 0:da8805cd0051 | 3 | /******************************************************************************* |
vodsejak | 0:da8805cd0051 | 4 | |
vodsejak | 0:da8805cd0051 | 5 | EXAMPLE DESCRIPTION |
vodsejak | 0:da8805cd0051 | 6 | |
vodsejak | 0:da8805cd0051 | 7 | Program toggles onboard LED with 1 Hz frequency. It uses timer, which is |
vodsejak | 0:da8805cd0051 | 8 | periodically read (1 ms) and if its value is higher than that of variable the |
vodsejak | 0:da8805cd0051 | 9 | LED is toggled. After that variable is incremented so timer has not to be |
vodsejak | 0:da8805cd0051 | 10 | reset. |
vodsejak | 0:da8805cd0051 | 11 | |
vodsejak | 0:da8805cd0051 | 12 | *******************************************************************************/ |
vodsejak | 0:da8805cd0051 | 13 | |
vodsejak | 0:da8805cd0051 | 14 | Timer tim; // Timer definition |
vodsejak | 0:da8805cd0051 | 15 | DigitalOut LED(LED1); // definition of digital out pin |
vodsejak | 0:da8805cd0051 | 16 | |
vodsejak | 0:da8805cd0051 | 17 | // returns Timer value |
vodsejak | 0:da8805cd0051 | 18 | int getTimerVal(Timer *tim) { |
vodsejak | 0:da8805cd0051 | 19 | int time = tim->read_ms(); |
vodsejak | 0:da8805cd0051 | 20 | // reset when overflow |
vodsejak | 0:da8805cd0051 | 21 | if (time<0){ |
vodsejak | 0:da8805cd0051 | 22 | tim->reset(); |
vodsejak | 0:da8805cd0051 | 23 | time = tim->read_ms(); |
vodsejak | 0:da8805cd0051 | 24 | } |
vodsejak | 0:da8805cd0051 | 25 | |
vodsejak | 0:da8805cd0051 | 26 | return time; |
vodsejak | 0:da8805cd0051 | 27 | } |
vodsejak | 0:da8805cd0051 | 28 | |
vodsejak | 0:da8805cd0051 | 29 | |
vodsejak | 0:da8805cd0051 | 30 | int main() |
vodsejak | 0:da8805cd0051 | 31 | { |
vodsejak | 0:da8805cd0051 | 32 | LED = 0; // turn LED on |
vodsejak | 0:da8805cd0051 | 33 | int timeCompare = 500; // time for comparison |
vodsejak | 0:da8805cd0051 | 34 | int time; // timer time |
vodsejak | 0:da8805cd0051 | 35 | tim.start(); // start Timer |
vodsejak | 0:da8805cd0051 | 36 | while (true) { |
vodsejak | 0:da8805cd0051 | 37 | time = getTimerVal(&tim); // get timer time |
vodsejak | 0:da8805cd0051 | 38 | if(time>timeCompare){ |
vodsejak | 0:da8805cd0051 | 39 | LED=!LED; // toggle LED |
vodsejak | 0:da8805cd0051 | 40 | timeCompare=time+500; // increment time for comparison |
vodsejak | 0:da8805cd0051 | 41 | } |
vodsejak | 0:da8805cd0051 | 42 | wait_ms(1); |
vodsejak | 0:da8805cd0051 | 43 | } |
vodsejak | 0:da8805cd0051 | 44 | } |