編集中のプログラムです。 一時的にパブリッシュしました。 タッチパネル部分は未確認です。 It is a program while editing it. To pass it to the person, it shared.
touch.h@1:9869086496f6, 2011-09-29 (annotated)
- Committer:
- jksoft
- Date:
- Thu Sep 29 00:55:26 2011 +0000
- Revision:
- 1:9869086496f6
- Parent:
- 0:f5f8e3417215
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
jksoft | 0:f5f8e3417215 | 1 | /* |
jksoft | 0:f5f8e3417215 | 2 | Touchpad driver. |
jksoft | 0:f5f8e3417215 | 3 | |
jksoft | 0:f5f8e3417215 | 4 | CPV, 3/9/2009 |
jksoft | 0:f5f8e3417215 | 5 | */ |
jksoft | 0:f5f8e3417215 | 6 | |
jksoft | 0:f5f8e3417215 | 7 | #ifndef __TOUCHPAD_H__ |
jksoft | 0:f5f8e3417215 | 8 | #define __TOUCHPAD_H__ |
jksoft | 0:f5f8e3417215 | 9 | |
jksoft | 0:f5f8e3417215 | 10 | |
jksoft | 0:f5f8e3417215 | 11 | #include "mbed.h" |
jksoft | 0:f5f8e3417215 | 12 | #include "filters.h" |
jksoft | 0:f5f8e3417215 | 13 | |
jksoft | 0:f5f8e3417215 | 14 | |
jksoft | 0:f5f8e3417215 | 15 | class TouchpadChannel |
jksoft | 0:f5f8e3417215 | 16 | { |
jksoft | 0:f5f8e3417215 | 17 | public: |
jksoft | 0:f5f8e3417215 | 18 | void initialise(int min, int quantise_step); |
jksoft | 0:f5f8e3417215 | 19 | void tick(int v) { m_filter.tick(v); } |
jksoft | 0:f5f8e3417215 | 20 | int quantise(void); |
jksoft | 0:f5f8e3417215 | 21 | int operator()(void) { return m_quantised; } |
jksoft | 0:f5f8e3417215 | 22 | int get_raw(void) { return m_filter(); } |
jksoft | 0:f5f8e3417215 | 23 | |
jksoft | 0:f5f8e3417215 | 24 | protected: |
jksoft | 0:f5f8e3417215 | 25 | FilterBoxI m_filter; |
jksoft | 0:f5f8e3417215 | 26 | int m_min; |
jksoft | 0:f5f8e3417215 | 27 | int m_quantise_step; |
jksoft | 0:f5f8e3417215 | 28 | int m_quantised; |
jksoft | 0:f5f8e3417215 | 29 | }; |
jksoft | 0:f5f8e3417215 | 30 | |
jksoft | 0:f5f8e3417215 | 31 | |
jksoft | 0:f5f8e3417215 | 32 | class Touchpad |
jksoft | 0:f5f8e3417215 | 33 | { |
jksoft | 0:f5f8e3417215 | 34 | public: |
jksoft | 0:f5f8e3417215 | 35 | Touchpad(PinName x0, PinName x1, PinName y0, PinName y1); |
jksoft | 0:f5f8e3417215 | 36 | |
jksoft | 0:f5f8e3417215 | 37 | void tick(void); |
jksoft | 0:f5f8e3417215 | 38 | |
jksoft | 0:f5f8e3417215 | 39 | int get_raw_x(void) { return m_ch_x.get_raw(); } |
jksoft | 0:f5f8e3417215 | 40 | int get_raw_y(void) { return m_ch_y.get_raw(); } |
jksoft | 0:f5f8e3417215 | 41 | |
jksoft | 0:f5f8e3417215 | 42 | int hotspot(void) { return (m_ch_x.quantise()>=0 && m_ch_y.quantise()>=0); } |
jksoft | 0:f5f8e3417215 | 43 | int get_hotspot_x(void) { return m_ch_x(); } |
jksoft | 0:f5f8e3417215 | 44 | int get_hotspot_y(void) { return m_ch_y(); } |
jksoft | 0:f5f8e3417215 | 45 | |
jksoft | 0:f5f8e3417215 | 46 | protected: |
jksoft | 0:f5f8e3417215 | 47 | TouchpadChannel m_ch_x; |
jksoft | 0:f5f8e3417215 | 48 | TouchpadChannel m_ch_y; |
jksoft | 0:f5f8e3417215 | 49 | |
jksoft | 0:f5f8e3417215 | 50 | PinName m_x0; |
jksoft | 0:f5f8e3417215 | 51 | PinName m_x1; |
jksoft | 0:f5f8e3417215 | 52 | PinName m_y0; |
jksoft | 0:f5f8e3417215 | 53 | PinName m_y1; |
jksoft | 0:f5f8e3417215 | 54 | |
jksoft | 0:f5f8e3417215 | 55 | int read(PinName drive_hi, PinName drive_lo, PinName read_hi, PinName read_lo); |
jksoft | 0:f5f8e3417215 | 56 | int read_x(void) { return read(m_x1,m_x0,m_y1,m_y0); } |
jksoft | 0:f5f8e3417215 | 57 | int read_y(void) { return read(m_y1,m_y0,m_x1,m_x0); } |
jksoft | 0:f5f8e3417215 | 58 | }; |
jksoft | 0:f5f8e3417215 | 59 | |
jksoft | 0:f5f8e3417215 | 60 | |
jksoft | 0:f5f8e3417215 | 61 | #endif // __TOUCHPAD_H__ |