Interval Interrupt Example

Dependencies:   mbed

Committer:
kdelraso
Date:
Tue Oct 05 19:17:00 2010 +0000
Revision:
0:ec454e4339e4

        

Who changed what in which revision?

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