Class header for the AT42QT1010 device.

Dependents:   AT42QT1010_Hello_world

Committer:
jnagendran3
Date:
Thu Oct 16 17:54:05 2014 +0000
Revision:
1:7eca199a5506
Parent:
0:261b3a1a05c4
Child:
2:401cf3c2dffc
Minor fixes

Who changed what in which revision?

UserRevisionLine numberNew contents of line
jnagendran3 0:261b3a1a05c4 1 #ifndef AT42QT1010_H
jnagendran3 0:261b3a1a05c4 2 #define AT42QT1010_H
jnagendran3 0:261b3a1a05c4 3
jnagendran3 0:261b3a1a05c4 4 #include "mbed.h"
jnagendran3 0:261b3a1a05c4 5
jnagendran3 0:261b3a1a05c4 6 ///Class for the AT42QT1010 Capactitive Touch Sensor
jnagendran3 0:261b3a1a05c4 7 class AT42QT1010 {
jnagendran3 0:261b3a1a05c4 8
jnagendran3 0:261b3a1a05c4 9 public:
jnagendran3 0:261b3a1a05c4 10 /**Define the device without use of the on-board LED*/
jnagendran3 0:261b3a1a05c4 11 explicit AT42QT1010(PinName);
jnagendran3 0:261b3a1a05c4 12 /**Define the device using both breakout I/O pins. Requires manual modification to the breakout before use.*/
jnagendran3 0:261b3a1a05c4 13 explicit AT42QT1010(PinName, PinName);
jnagendran3 0:261b3a1a05c4 14 ~AT42QT1010();
jnagendran3 0:261b3a1a05c4 15 /**Writes to the LED, if defined.
jnagendran3 0:261b3a1a05c4 16 @param state 0 or 1 to power the LED
jnagendran3 0:261b3a1a05c4 17 */
jnagendran3 0:261b3a1a05c4 18 void write(int state);
jnagendran3 0:261b3a1a05c4 19 /**Take in the current value being output by the device.*/
jnagendran3 0:261b3a1a05c4 20 int read();
jnagendran3 0:261b3a1a05c4 21 /**Shorthand for read().*/
jnagendran3 0:261b3a1a05c4 22 operator int(){return _data;}
jnagendran3 1:7eca199a5506 23 /**Initiate interrupts for the rising edge of data.
jnagendran3 0:261b3a1a05c4 24 @param fpr Function pointer to interrupt routine.
jnagendran3 0:261b3a1a05c4 25 */
jnagendran3 0:261b3a1a05c4 26 void attach(void (*fpr)(void));
jnagendran3 0:261b3a1a05c4 27 private:
jnagendran3 0:261b3a1a05c4 28 InterruptIn _data;
jnagendran3 0:261b3a1a05c4 29 DigitalOut *_led_state;
jnagendran3 0:261b3a1a05c4 30 };
jnagendran3 0:261b3a1a05c4 31
jnagendran3 0:261b3a1a05c4 32 AT42QT1010::AT42QT1010(PinName data) : _data(data) {
jnagendran3 0:261b3a1a05c4 33 _led_state=NULL;
jnagendran3 0:261b3a1a05c4 34 }
jnagendran3 0:261b3a1a05c4 35
jnagendran3 0:261b3a1a05c4 36 AT42QT1010::AT42QT1010(PinName data, PinName led_pin) : _data(data){
jnagendran3 0:261b3a1a05c4 37 _led_state = (DigitalOut *) new DigitalOut(led_pin);
jnagendran3 0:261b3a1a05c4 38 }
jnagendran3 0:261b3a1a05c4 39
jnagendran3 0:261b3a1a05c4 40 AT42QT1010::~AT42QT1010(){
jnagendran3 0:261b3a1a05c4 41 if(_led_state!=NULL){
jnagendran3 0:261b3a1a05c4 42 delete _led_state;
jnagendran3 0:261b3a1a05c4 43 }
jnagendran3 0:261b3a1a05c4 44 }
jnagendran3 0:261b3a1a05c4 45
jnagendran3 0:261b3a1a05c4 46 void AT42QT1010::write(int state){
jnagendran3 0:261b3a1a05c4 47 if(_led_state!=NULL){
jnagendran3 0:261b3a1a05c4 48 if(state!=0) (*_led_state)=1;
jnagendran3 0:261b3a1a05c4 49 else (*_led_state)=0;
jnagendran3 0:261b3a1a05c4 50 }
jnagendran3 0:261b3a1a05c4 51 }
jnagendran3 0:261b3a1a05c4 52
jnagendran3 0:261b3a1a05c4 53 int AT42QT1010::read(){
jnagendran3 0:261b3a1a05c4 54 return _data;
jnagendran3 0:261b3a1a05c4 55 }
jnagendran3 0:261b3a1a05c4 56
jnagendran3 0:261b3a1a05c4 57 void AT42QT1010::attach(void (*fpr)(void)){
jnagendran3 0:261b3a1a05c4 58 _data.rise(fpr);
jnagendran3 0:261b3a1a05c4 59 }
jnagendran3 0:261b3a1a05c4 60
jnagendran3 0:261b3a1a05c4 61 #endif