NUCLEO-F042K6 Simple demo writing Timer time to UART periodically using Ticker

Dependencies:   mbed

Committer:
vodsejak
Date:
Sat Feb 10 15:58:54 2018 +0000
Revision:
1:3b8cd8e8ce53
Parent:
0:a1bcdb6060ae
Child:
2:e80bdfa0212c
v2.0; added reseting of timer;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
vodsejak 0:a1bcdb6060ae 1 #include "mbed.h"
vodsejak 0:a1bcdb6060ae 2
vodsejak 0:a1bcdb6060ae 3 /*******************************************************************************
vodsejak 0:a1bcdb6060ae 4
vodsejak 0:a1bcdb6060ae 5 EXAMPLE DESCRIPTION
vodsejak 0:a1bcdb6060ae 6
vodsejak 0:a1bcdb6060ae 7 Initialize Timer and Ticker. Timer is started and Ticker then calls funtion
vodsejak 0:a1bcdb6060ae 8 that prints timer value to UART.
vodsejak 0:a1bcdb6060ae 9
vodsejak 0:a1bcdb6060ae 10 *******************************************************************************/
vodsejak 0:a1bcdb6060ae 11
vodsejak 0:a1bcdb6060ae 12 Timer tim; // Timer definition
vodsejak 0:a1bcdb6060ae 13 Ticker tick; // Ticker definition
vodsejak 0:a1bcdb6060ae 14
vodsejak 0:a1bcdb6060ae 15 // returns Timer value
vodsejak 0:a1bcdb6060ae 16 int getTimerVal(Timer *tim) {
vodsejak 1:3b8cd8e8ce53 17 int time = tim->read_us();
vodsejak 1:3b8cd8e8ce53 18 if (time<0){
vodsejak 1:3b8cd8e8ce53 19 tim->reset();
vodsejak 1:3b8cd8e8ce53 20 time = tim->read_us();
vodsejak 1:3b8cd8e8ce53 21 }
vodsejak 1:3b8cd8e8ce53 22 return time
vodsejak 0:a1bcdb6060ae 23 }
vodsejak 0:a1bcdb6060ae 24
vodsejak 0:a1bcdb6060ae 25 // prints Timer value to UART (default UART->USB) Bd 9600, no parity, 1 stopbit
vodsejak 0:a1bcdb6060ae 26 void printTimerVal(){
vodsejak 0:a1bcdb6060ae 27 printf("Timer is running %i us.\n", getTimerVal(&tim));
vodsejak 0:a1bcdb6060ae 28 }
vodsejak 0:a1bcdb6060ae 29
vodsejak 0:a1bcdb6060ae 30 int main()
vodsejak 0:a1bcdb6060ae 31 {
vodsejak 0:a1bcdb6060ae 32 tim.start(); // start Timer
vodsejak 0:a1bcdb6060ae 33 tick.attach(&printTimerVal, 0.1); // Init the ticker with the address of the
vodsejak 0:a1bcdb6060ae 34 // function to be attached and
vodsejak 0:a1bcdb6060ae 35 // the interval (100 ms)
vodsejak 0:a1bcdb6060ae 36 while (true) {
vodsejak 0:a1bcdb6060ae 37 // main programm loop - can do other things
vodsejak 0:a1bcdb6060ae 38 }
vodsejak 0:a1bcdb6060ae 39 }