MAX1233/MAX1234觸摸屏控制器入門(mén)
P R 6
T M2
0x0040 0x0b01
0x8000 0x0000
0x8001 0x0000
0x8002 0x0000
0x8003 0x0000
P R 6
P R 6
T M2
0x0040 0x0b01
0x8000 0x0000
0x8001 0x0000
0x8002 0x0000
0x8003 0x0000
P R 6
T M2
0x0040 0x0b01
0x8000 0x0000
0x8001 0x0000
0x8002 0x0000
0x8003 0x0000
P R 6
P R 6
T M2
0x0040 0x0b01
0x8000 0x0000
0x8001 0x0000
0x8002 0x0000
0x8003 0x0000
P R 6
3.5) 檢測(cè)觸摸屏操作:自動(dòng)掃描
在檢測(cè)觸摸屏操作,配置MAX1234,自動(dòng)數(shù)字化觸摸屏的接觸位置時(shí),寫(xiě)入寄存器0x40 (ADC控制),其PENSTS=1,ADSTS=0 (請(qǐng)參考MAX1233/MAX1234數(shù)據(jù)資料的表6)。第一次接觸屏幕時(shí),/PENIRQ信號(hào)暫時(shí)變?yōu)榈碗娖?,并在讀取X寄存器之前不會(huì)變化。表13. 觸摸屏檢測(cè)命令序列:自動(dòng)掃描
DEMO1234 Command | Action | SPI data in | Verification |
Optional: connect oscilloscope to PENIRQ-bar | |||
I C 1 3 | Configure PENIRQ-bar pulse accumulator: falling-edge trigger | ||
I 0 1 | Reset the pulse accumulator | ||
I R 1 | Read the number of times PENIRQ-bar has pulsed low | count = 0 | |
T W AC 8bff | Wait for touch, then scan X,Y,Z1,Z2 | 0x0040 0x8bff | |
Touch the touch screen | PENIRQ pulse | ||
I R 1 | Read the number of times PENIRQ-bar has pulsed low | count has increased | |
T R P | Read X,Y,Z1,Z2 conversion results | 0x8000 0x0000 0x8001 0x0000 0x8002 0x0000 0x8003 0x0000 | |
Touch the touch screen | PENIRQ pulse | ||
I R 1 | Read the number of times PENIRQ-bar has pulsed low | count has increased | |
T R P | Read X,Y,Z1,Z2 conversion results | 0x8000 0x0000 0x8001 0x0000 0x8002 0x0000 0x8003 0x0000 | |
Touch the touch screen | PENIRQ pulse | ||
I R 1 | Read the number of times PENIRQ-bar has pulsed low | count has increased | |
T R P | Read X,Y,Z1,Z2 conversion results | 0x8000 0x0000 0x8001 0x0000 0x8002 0x0000 0x8003 0x0000 |
4) 鍵盤(pán)和通用輸入/輸出引腳
下面的例子介紹了怎樣使用DEMO1234.EXE程序來(lái)掃描鍵盤(pán),怎樣使用GPIO鍵盤(pán)掃描引腳。4.1) 配置鍵盤(pán)和GPIO引腳
GPIO控制寄存器將每個(gè)C1–C4和R1–R4引腳分別配置為輸入、輸出或者是鍵盤(pán)的一部分(請(qǐng)參考MAX1233/MAX1234數(shù)據(jù)資料的表26和表27)。此外,寫(xiě)入GPIO上拉禁止寄存器,將輸出引腳配置為開(kāi)漏輸出。表14. 鍵盤(pán)和GPIO配置實(shí)例
DEMO1234 Command | Action | SPI data in |
T W GC FFFF | Keypad: none; GPIO outputs: C4,C3,C2,C1,R4,R3,R2,R1; GPIO inputs: none | 0x004f 0xffff |
T W GC FF00 | Keypad: none; GPIO outputs: none; GPIO inputs: C4,C3,C2,C1,R4,R3,R2,R1 | 0x004f 0xff00 |
T W GC 0000 | Keypad: (C4,C3,C2,C1) x (R4,R3,R2,R1); GPIO outputs: none; GPIO inputs: none | 0x004f 0x0000 |
T W GC C8C0 | Keypad: (C2,C1) x (R3,R2,R1); GPIO outputs: C4,C3; GPIO input: R4 | 0x004f 0xc8c0 |
T W GP 4000 | GPIO pullup disable: C3 | 0x004e 0x4000 |
4.2) 讀寫(xiě)GPIO引腳
GPIO數(shù)據(jù)寄存器讀取GPIO輸入引腳,寫(xiě)入GPIO輸出引腳。注意:在這些例子中,C3、C4和R4是引腳名稱(chēng),而不是元件名稱(chēng)。表15. GPIO實(shí)例
DEMO1234 Command | Action | SPI data in | Verification |
T W GC C8C0 | Keypad: (C2,C1) x (R3,R2,R1); GPIO outputs: C4,C3; GPIO input: R4 | 0x004f 0xc8c0 | |
T W GP 4000 | GPIO pullup disable: C3 | 0x004e 0x4000 | |
Connect external resistor between C3 pin and DVDD | |||
Connect DVM to C4 pin | |||
T W GD 8000 | GPIO write C4 = 1 | 0x000f 0x8000 | C4 pin = high |
T W GD 0000 | GPIO write C4 = 0 | 0x000f 0x0000 | C4 pin = low |
T W GD 8000 | GPIO write C4 = 1 | 0x000f 0x8000 | C4 pin = high |
T W GD 0000 | GPIO write C4 = 0 | 0x000f 0x0000 | C4 pin = low |
Connect DVM to C3 pin | |||
T W GD 4000 | GPIO write C3 = 1 | 0x000f 0x4000 | C3 pin = high |
T W GD 0000 | GPIO write C3 = 0 | 0x000f 0x0000 | C3 pin = low |
T W GD 4000 | GPIO write C3 = 1 | 0x000f 0x4000 | C3 pin = high |
T W GD 0000 | GPIO write C3 = 0 | 0x000f 0x0000 | C3 pin = low |
Connect R4 pin to DVDD | |||
T R GD | GPIO read | 0x800f 0x0000 | Buffer = 0x0800 |
Connect R4 pin to GND | |||
T R GD | GPIO read | 0x800f 0x0000 | Buffer = 0x0000 |
4.3) 檢測(cè)按鍵:自動(dòng)掃描
可以配置鍵盤(pán)控制寄存器在探測(cè)到有按鍵按下時(shí),自動(dòng)掃描鍵盤(pán)。表16. 按鍵命令序列:自動(dòng)掃描
DEMO1234 Command | Action | SPI data in | Verification |
Optional: connect oscilloscope to KEYIRQ-bar |
相關(guān)推薦
技術(shù)專(zhuān)區(qū)
|
評(píng)論