example creating a Ticker with callback

Committer:
mab5449
Date:
Thu Jan 19 10:48:50 2017 -0600
Revision:
1:fa1a6e600bdb
Parent:
0:14eb5da7a9a3
Ported mbed OS 2 to mbed OS 5

Who changed what in which revision?

UserRevisionLine numberNew contents of line
mbed_official 0:14eb5da7a9a3 1 #include "mbed.h"
mbed_official 0:14eb5da7a9a3 2
mbed_official 0:14eb5da7a9a3 3 // A class for flip()-ing a DigitalOut
mbed_official 0:14eb5da7a9a3 4 class Flipper {
mbed_official 0:14eb5da7a9a3 5 public:
mbed_official 0:14eb5da7a9a3 6 Flipper(PinName pin) : _pin(pin) {
mbed_official 0:14eb5da7a9a3 7 _pin = 0;
mbed_official 0:14eb5da7a9a3 8 }
mbed_official 0:14eb5da7a9a3 9 void flip() {
mbed_official 0:14eb5da7a9a3 10 _pin = !_pin;
mbed_official 0:14eb5da7a9a3 11 }
mbed_official 0:14eb5da7a9a3 12 private:
mbed_official 0:14eb5da7a9a3 13 DigitalOut _pin;
mbed_official 0:14eb5da7a9a3 14 };
mbed_official 0:14eb5da7a9a3 15
mbed_official 0:14eb5da7a9a3 16 DigitalOut led1(LED1);
mbed_official 0:14eb5da7a9a3 17 Flipper f(LED2);
mbed_official 0:14eb5da7a9a3 18 Ticker t;
mbed_official 0:14eb5da7a9a3 19
mbed_official 0:14eb5da7a9a3 20 int main() {
mab5449 1:fa1a6e600bdb 21 // the address of the object, member function, and interval
mab5449 1:fa1a6e600bdb 22 t.attach(callback(&f, &Flipper::flip), 2.0);
mbed_official 0:14eb5da7a9a3 23
mbed_official 0:14eb5da7a9a3 24 // spin in a main loop. flipper will interrupt it to call flip
mbed_official 0:14eb5da7a9a3 25 while(1) {
mbed_official 0:14eb5da7a9a3 26 led1 = !led1;
mbed_official 0:14eb5da7a9a3 27 wait(0.2);
mbed_official 0:14eb5da7a9a3 28 }
mbed_official 0:14eb5da7a9a3 29 }