Example Hello World example for interfacing the AT42QT1010 Device

Dependencies:   AT42QT1010 mbed

Committer:
jnagendran3
Date:
Mon Oct 20 21:43:47 2014 +0000
Revision:
1:6f970f5a63d4
Parent:
0:3009c861d060
Fixed interrupt routine

Who changed what in which revision?

UserRevisionLine numberNew contents of line
jnagendran3 0:3009c861d060 1 #include "mbed.h"
jnagendran3 0:3009c861d060 2 #include "AT42QT1010.h"
jnagendran3 0:3009c861d060 3
jnagendran3 0:3009c861d060 4 DigitalOut read_led(LED1);
jnagendran3 0:3009c861d060 5 DigitalOut auto_led(LED2);
jnagendran3 1:6f970f5a63d4 6 DigitalOut i_led1(LED3);
jnagendran3 1:6f970f5a63d4 7 DigitalOut i_led2(LED4);
jnagendran3 1:6f970f5a63d4 8 AT42QT1010 touch_sensor(p23,p21);
jnagendran3 1:6f970f5a63d4 9
jnagendran3 1:6f970f5a63d4 10 //Global variables to control interrupt timing
jnagendran3 1:6f970f5a63d4 11 int _old_sig=0;
jnagendran3 1:6f970f5a63d4 12 int _new_sig=0;
jnagendran3 0:3009c861d060 13
jnagendran3 1:6f970f5a63d4 14 void rise_interrupt(){
jnagendran3 1:6f970f5a63d4 15 static int count=0;
jnagendran3 1:6f970f5a63d4 16 //Only execute on true rise
jnagendran3 1:6f970f5a63d4 17 if(_old_sig==0 && _new_sig==1){
jnagendran3 1:6f970f5a63d4 18 _old_sig=1;
jnagendran3 1:6f970f5a63d4 19 //Use LED3 and LED4 to display count
jnagendran3 1:6f970f5a63d4 20 count++;
jnagendran3 1:6f970f5a63d4 21 i_led2=(count)%2;
jnagendran3 1:6f970f5a63d4 22 i_led1=(count>>1)%2;
jnagendran3 1:6f970f5a63d4 23 }
jnagendran3 1:6f970f5a63d4 24 }
jnagendran3 1:6f970f5a63d4 25 void fall_interrupt(){
jnagendran3 1:6f970f5a63d4 26 //Trigger indication of true fall
jnagendran3 1:6f970f5a63d4 27 if(_new_sig==0) _old_sig=0;
jnagendran3 0:3009c861d060 28 }
jnagendran3 0:3009c861d060 29
jnagendran3 0:3009c861d060 30 int main() {
jnagendran3 1:6f970f5a63d4 31 //Set up the rising and falling edge interrupts
jnagendran3 1:6f970f5a63d4 32 touch_sensor.attach_rise(&rise_interrupt);
jnagendran3 1:6f970f5a63d4 33 touch_sensor.attach_fall(&fall_interrupt);
jnagendran3 0:3009c861d060 34 while(1) {
jnagendran3 1:6f970f5a63d4 35 //Declare the current status of the sensor,
jnagendran3 1:6f970f5a63d4 36 //and give a window of time to process.
jnagendran3 1:6f970f5a63d4 37 _new_sig = touch_sensor;
jnagendran3 1:6f970f5a63d4 38 wait(.1);
jnagendran3 1:6f970f5a63d4 39 //Member function demonstration
jnagendran3 0:3009c861d060 40 read_led = touch_sensor.read();
jnagendran3 0:3009c861d060 41 auto_led = touch_sensor;
jnagendran3 1:6f970f5a63d4 42 touch_sensor.write(!auto_led);
jnagendran3 0:3009c861d060 43 }
jnagendran3 0:3009c861d060 44 }