Ken DelRaso
/
interruptExample
Interval Interrupt Example
main.cpp@0:ec454e4339e4, 2010-10-05 (annotated)
- Committer:
- kdelraso
- Date:
- Tue Oct 05 19:17:00 2010 +0000
- Revision:
- 0:ec454e4339e4
Who changed what in which revision?
User | Revision | Line number | New 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 | } |