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