編集中のプログラムです。 一時的にパブリッシュしました。 タッチパネル部分は未確認です。 It is a program while editing it. To pass it to the person, it shared.

Dependencies:   mbed

Committer:
jksoft
Date:
Sun Nov 28 09:17:14 2010 +0000
Revision:
0:f5f8e3417215

        

Who changed what in which revision?

UserRevisionLine numberNew 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 #include "touch.h"
jksoft 0:f5f8e3417215 8
jksoft 0:f5f8e3417215 9
jksoft 0:f5f8e3417215 10 void TouchpadChannel::initialise(int min, int quantise_step)
jksoft 0:f5f8e3417215 11 {
jksoft 0:f5f8e3417215 12 m_min = min;
jksoft 0:f5f8e3417215 13 m_quantise_step = quantise_step;
jksoft 0:f5f8e3417215 14 m_filter.initialise(8);
jksoft 0:f5f8e3417215 15 m_quantised = -1;
jksoft 0:f5f8e3417215 16 }
jksoft 0:f5f8e3417215 17
jksoft 0:f5f8e3417215 18
jksoft 0:f5f8e3417215 19 int TouchpadChannel::quantise(void)
jksoft 0:f5f8e3417215 20 {
jksoft 0:f5f8e3417215 21 m_quantised = -1;
jksoft 0:f5f8e3417215 22 int raw = m_filter();
jksoft 0:f5f8e3417215 23
jksoft 0:f5f8e3417215 24 if (raw>m_min)
jksoft 0:f5f8e3417215 25 {
jksoft 0:f5f8e3417215 26 m_quantised = 0;
jksoft 0:f5f8e3417215 27
jksoft 0:f5f8e3417215 28 while(raw>m_quantise_step)
jksoft 0:f5f8e3417215 29 {
jksoft 0:f5f8e3417215 30 raw -= m_quantise_step;
jksoft 0:f5f8e3417215 31 m_quantised += 1;
jksoft 0:f5f8e3417215 32 }
jksoft 0:f5f8e3417215 33 }
jksoft 0:f5f8e3417215 34 return m_quantised;
jksoft 0:f5f8e3417215 35 }
jksoft 0:f5f8e3417215 36
jksoft 0:f5f8e3417215 37
jksoft 0:f5f8e3417215 38 //===============================================
jksoft 0:f5f8e3417215 39
jksoft 0:f5f8e3417215 40
jksoft 0:f5f8e3417215 41 Touchpad::Touchpad(PinName x0, PinName x1, PinName y0, PinName y1)
jksoft 0:f5f8e3417215 42 {
jksoft 0:f5f8e3417215 43 m_x0 = x0;
jksoft 0:f5f8e3417215 44 m_x1 = x1;
jksoft 0:f5f8e3417215 45 m_y0 = y0;
jksoft 0:f5f8e3417215 46 m_y1 = y1;
jksoft 0:f5f8e3417215 47 m_ch_x.initialise(0.1*0xffff,0.16*0xffff);
jksoft 0:f5f8e3417215 48 m_ch_y.initialise(0.1*0xffff,0.22*0xffff);
jksoft 0:f5f8e3417215 49 }
jksoft 0:f5f8e3417215 50
jksoft 0:f5f8e3417215 51
jksoft 0:f5f8e3417215 52 int Touchpad::read(PinName drive_hi, PinName drive_lo, PinName read_hi, PinName read_lo)
jksoft 0:f5f8e3417215 53 {
jksoft 0:f5f8e3417215 54 DigitalOut out1(drive_hi);
jksoft 0:f5f8e3417215 55 DigitalOut out0(drive_lo);
jksoft 0:f5f8e3417215 56 AnalogIn in1(read_hi);
jksoft 0:f5f8e3417215 57 AnalogIn in0(read_lo);
jksoft 0:f5f8e3417215 58 out0 = 0;
jksoft 0:f5f8e3417215 59 out1 = 1;
jksoft 0:f5f8e3417215 60
jksoft 0:f5f8e3417215 61 return in1.read_u16();
jksoft 0:f5f8e3417215 62 }
jksoft 0:f5f8e3417215 63
jksoft 0:f5f8e3417215 64
jksoft 0:f5f8e3417215 65 void Touchpad::tick(void)
jksoft 0:f5f8e3417215 66 {
jksoft 0:f5f8e3417215 67 m_ch_x.tick(read_x());
jksoft 0:f5f8e3417215 68 m_ch_y.tick(read_y());
jksoft 0:f5f8e3417215 69 }