NUCLEO-F042K6 Simple demo blinking LED using Timer

Dependencies:   mbed

Committer:
vodsejak
Date:
Sat Feb 17 16:44:23 2018 +0000
Revision:
0:da8805cd0051
v1.0;

Who changed what in which revision?

UserRevisionLine numberNew 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 }