Class header for the AT42QT1010 device.
Dependents: AT42QT1010_Hello_world
AT42QT1010.h@2:401cf3c2dffc, 2014-10-20 (annotated)
- Committer:
- jnagendran3
- Date:
- Mon Oct 20 21:42:49 2014 +0000
- Revision:
- 2:401cf3c2dffc
- Parent:
- 1:7eca199a5506
Fixed interrupt data burst issue
Who changed what in which revision?
User | Revision | Line number | New 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 | 2:401cf3c2dffc | 26 | void attach_rise(void (*fpr)(void)); |
jnagendran3 | 2:401cf3c2dffc | 27 | /**Initiate interrupts for the falling edge of data. |
jnagendran3 | 2:401cf3c2dffc | 28 | @param fpr Function pointer to interrupt routine. |
jnagendran3 | 2:401cf3c2dffc | 29 | */ |
jnagendran3 | 2:401cf3c2dffc | 30 | void attach_fall(void (*fpr)(void)); |
jnagendran3 | 0:261b3a1a05c4 | 31 | private: |
jnagendran3 | 0:261b3a1a05c4 | 32 | InterruptIn _data; |
jnagendran3 | 0:261b3a1a05c4 | 33 | DigitalOut *_led_state; |
jnagendran3 | 0:261b3a1a05c4 | 34 | }; |
jnagendran3 | 0:261b3a1a05c4 | 35 | |
jnagendran3 | 0:261b3a1a05c4 | 36 | AT42QT1010::AT42QT1010(PinName data) : _data(data) { |
jnagendran3 | 0:261b3a1a05c4 | 37 | _led_state=NULL; |
jnagendran3 | 0:261b3a1a05c4 | 38 | } |
jnagendran3 | 0:261b3a1a05c4 | 39 | |
jnagendran3 | 0:261b3a1a05c4 | 40 | AT42QT1010::AT42QT1010(PinName data, PinName led_pin) : _data(data){ |
jnagendran3 | 0:261b3a1a05c4 | 41 | _led_state = (DigitalOut *) new DigitalOut(led_pin); |
jnagendran3 | 0:261b3a1a05c4 | 42 | } |
jnagendran3 | 0:261b3a1a05c4 | 43 | |
jnagendran3 | 0:261b3a1a05c4 | 44 | AT42QT1010::~AT42QT1010(){ |
jnagendran3 | 0:261b3a1a05c4 | 45 | if(_led_state!=NULL){ |
jnagendran3 | 0:261b3a1a05c4 | 46 | delete _led_state; |
jnagendran3 | 0:261b3a1a05c4 | 47 | } |
jnagendran3 | 0:261b3a1a05c4 | 48 | } |
jnagendran3 | 0:261b3a1a05c4 | 49 | |
jnagendran3 | 0:261b3a1a05c4 | 50 | void AT42QT1010::write(int state){ |
jnagendran3 | 0:261b3a1a05c4 | 51 | if(_led_state!=NULL){ |
jnagendran3 | 0:261b3a1a05c4 | 52 | if(state!=0) (*_led_state)=1; |
jnagendran3 | 0:261b3a1a05c4 | 53 | else (*_led_state)=0; |
jnagendran3 | 0:261b3a1a05c4 | 54 | } |
jnagendran3 | 0:261b3a1a05c4 | 55 | } |
jnagendran3 | 0:261b3a1a05c4 | 56 | |
jnagendran3 | 0:261b3a1a05c4 | 57 | int AT42QT1010::read(){ |
jnagendran3 | 0:261b3a1a05c4 | 58 | return _data; |
jnagendran3 | 0:261b3a1a05c4 | 59 | } |
jnagendran3 | 0:261b3a1a05c4 | 60 | |
jnagendran3 | 2:401cf3c2dffc | 61 | void AT42QT1010::attach_rise(void (*fpr)(void)){ |
jnagendran3 | 0:261b3a1a05c4 | 62 | _data.rise(fpr); |
jnagendran3 | 0:261b3a1a05c4 | 63 | } |
jnagendran3 | 2:401cf3c2dffc | 64 | void AT42QT1010::attach_fall(void (*fpr)(void)){ |
jnagendran3 | 2:401cf3c2dffc | 65 | _data.fall(fpr); |
jnagendran3 | 2:401cf3c2dffc | 66 | } |
jnagendran3 | 0:261b3a1a05c4 | 67 | |
jnagendran3 | 0:261b3a1a05c4 | 68 | #endif |