Handle an external interrupt using the MultiTech Dragonfly.
Dependencies: mbed
Fork of Dragonfly_InterruptIn_Example by
main.cpp@1:ae672188eeb7, 2015-10-02 (annotated)
- Committer:
- mfiore
- Date:
- Fri Oct 02 16:52:06 2015 +0000
- Revision:
- 1:ae672188eeb7
- Parent:
- 0:86bd3121e22f
update for mDot
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
mfiore | 1:ae672188eeb7 | 1 | /** mDot InterruptIn Example Program |
mfiore | 0:86bd3121e22f | 2 | * |
mfiore | 0:86bd3121e22f | 3 | * This program demonstrates how to handle external interrupts using the |
mfiore | 1:ae672188eeb7 | 4 | * MultiTech mDot and MultiTech UDK2 hardware. The only |
mfiore | 0:86bd3121e22f | 5 | * additional hardware required is a jumper wire. |
mfiore | 0:86bd3121e22f | 6 | * |
mfiore | 0:86bd3121e22f | 7 | * Pins are active low, so 0V = 0 and 5V/3.3V = 1. |
mfiore | 0:86bd3121e22f | 8 | * |
mfiore | 0:86bd3121e22f | 9 | * This program configures interrupt handlers for rising and falling edges |
mfiore | 1:ae672188eeb7 | 10 | * on pin XBEE_AD3 (UDK2 pin D10). |
mfiore | 0:86bd3121e22f | 11 | */ |
mfiore | 0:86bd3121e22f | 12 | |
mfiore | 0:86bd3121e22f | 13 | #include "mbed.h" |
mfiore | 0:86bd3121e22f | 14 | |
mfiore | 0:86bd3121e22f | 15 | bool rise_flag = false; |
mfiore | 0:86bd3121e22f | 16 | bool fall_flag = false; |
mfiore | 0:86bd3121e22f | 17 | |
mfiore | 0:86bd3121e22f | 18 | void rise_handler(void) { |
mfiore | 0:86bd3121e22f | 19 | rise_flag = true; |
mfiore | 0:86bd3121e22f | 20 | } |
mfiore | 0:86bd3121e22f | 21 | |
mfiore | 0:86bd3121e22f | 22 | void fall_handler(void) { |
mfiore | 0:86bd3121e22f | 23 | fall_flag = true; |
mfiore | 0:86bd3121e22f | 24 | } |
mfiore | 0:86bd3121e22f | 25 | |
mfiore | 0:86bd3121e22f | 26 | int main() { |
mfiore | 1:ae672188eeb7 | 27 | InterruptIn in(XBEE_AD3); |
mfiore | 0:86bd3121e22f | 28 | in.rise(&rise_handler); |
mfiore | 0:86bd3121e22f | 29 | in.fall(&fall_handler); |
mfiore | 0:86bd3121e22f | 30 | |
mfiore | 0:86bd3121e22f | 31 | while (true) { |
mfiore | 0:86bd3121e22f | 32 | if (rise_flag) { |
mfiore | 0:86bd3121e22f | 33 | printf("rising edge\r\n"); |
mfiore | 0:86bd3121e22f | 34 | rise_flag = false; |
mfiore | 0:86bd3121e22f | 35 | } |
mfiore | 0:86bd3121e22f | 36 | if (fall_flag) { |
mfiore | 0:86bd3121e22f | 37 | printf("falling edge\r\n"); |
mfiore | 0:86bd3121e22f | 38 | fall_flag = false; |
mfiore | 0:86bd3121e22f | 39 | } |
mfiore | 0:86bd3121e22f | 40 | |
mfiore | 0:86bd3121e22f | 41 | wait_ms(100); |
mfiore | 0:86bd3121e22f | 42 | } |
mfiore | 0:86bd3121e22f | 43 | } |