Clemens Valens
/
touchpad
mbed with Nintendo DS touchpad, accelerometer & touchpad.
accelerometer.h@0:0a76ae27065b, 2010-05-05 (annotated)
- Committer:
- Clemo
- Date:
- Wed May 05 12:10:15 2010 +0000
- Revision:
- 0:0a76ae27065b
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
Clemo | 0:0a76ae27065b | 1 | /* |
Clemo | 0:0a76ae27065b | 2 | Accelerometer driver. |
Clemo | 0:0a76ae27065b | 3 | |
Clemo | 0:0a76ae27065b | 4 | CPV, 4/9/2009 |
Clemo | 0:0a76ae27065b | 5 | */ |
Clemo | 0:0a76ae27065b | 6 | |
Clemo | 0:0a76ae27065b | 7 | #ifndef __ACCELEROMETER_H__ |
Clemo | 0:0a76ae27065b | 8 | #define __ACCELEROMETER_H__ |
Clemo | 0:0a76ae27065b | 9 | |
Clemo | 0:0a76ae27065b | 10 | |
Clemo | 0:0a76ae27065b | 11 | #include "mbed.h" |
Clemo | 0:0a76ae27065b | 12 | #include "filters.h" |
Clemo | 0:0a76ae27065b | 13 | |
Clemo | 0:0a76ae27065b | 14 | |
Clemo | 0:0a76ae27065b | 15 | class Accelerometer1D |
Clemo | 0:0a76ae27065b | 16 | { |
Clemo | 0:0a76ae27065b | 17 | public: |
Clemo | 0:0a76ae27065b | 18 | void initialise(PinName pin, int tau, int offset=0xffff>>1); |
Clemo | 0:0a76ae27065b | 19 | void tick(void) { m_filter.tick((int)AnalogIn(m_pin).read_u16()&0xfff0); } |
Clemo | 0:0a76ae27065b | 20 | int operator()(void) { return m_filter() - m_offset; } |
Clemo | 0:0a76ae27065b | 21 | int read(void) { return m_filter() - m_offset; } |
Clemo | 0:0a76ae27065b | 22 | |
Clemo | 0:0a76ae27065b | 23 | protected: |
Clemo | 0:0a76ae27065b | 24 | FilterIirI m_filter; |
Clemo | 0:0a76ae27065b | 25 | PinName m_pin; |
Clemo | 0:0a76ae27065b | 26 | int m_offset; |
Clemo | 0:0a76ae27065b | 27 | }; |
Clemo | 0:0a76ae27065b | 28 | |
Clemo | 0:0a76ae27065b | 29 | |
Clemo | 0:0a76ae27065b | 30 | class Accelerometer2D |
Clemo | 0:0a76ae27065b | 31 | { |
Clemo | 0:0a76ae27065b | 32 | public: |
Clemo | 0:0a76ae27065b | 33 | Accelerometer2D(PinName ch0, PinName ch1, int tau, int offset=0xffff>>1); |
Clemo | 0:0a76ae27065b | 34 | void tick(void); |
Clemo | 0:0a76ae27065b | 35 | int read(int ch) { return m_channels[ch].read(); } |
Clemo | 0:0a76ae27065b | 36 | |
Clemo | 0:0a76ae27065b | 37 | protected: |
Clemo | 0:0a76ae27065b | 38 | Accelerometer1D m_channels[2]; |
Clemo | 0:0a76ae27065b | 39 | }; |
Clemo | 0:0a76ae27065b | 40 | |
Clemo | 0:0a76ae27065b | 41 | |
Clemo | 0:0a76ae27065b | 42 | class Accelerometer3D |
Clemo | 0:0a76ae27065b | 43 | { |
Clemo | 0:0a76ae27065b | 44 | public: |
Clemo | 0:0a76ae27065b | 45 | Accelerometer3D(PinName ch0, PinName ch1, PinName ch2, int tau, int offset=0xffff>>1); |
Clemo | 0:0a76ae27065b | 46 | void tick(void); |
Clemo | 0:0a76ae27065b | 47 | int read(int ch) { return m_channels[ch].read(); } |
Clemo | 0:0a76ae27065b | 48 | |
Clemo | 0:0a76ae27065b | 49 | protected: |
Clemo | 0:0a76ae27065b | 50 | Accelerometer1D m_channels[3]; |
Clemo | 0:0a76ae27065b | 51 | }; |
Clemo | 0:0a76ae27065b | 52 | |
Clemo | 0:0a76ae27065b | 53 | |
Clemo | 0:0a76ae27065b | 54 | #endif // __ACCELEROMETER_H__ |