Handle an external interrupt using the MultiTech Dragonfly.

Dependencies:   mbed

Fork of Dragonfly_InterruptIn_Example by MultiTech

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?

UserRevisionLine numberNew 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 }