사용자 도구

사이트 도구

English

cublocapp:an36012:index

AN36012 - 연속 입력 받기 (터치하고 있는동안 연속적으로 이벤트 발생)

CUTOUCH CT1820에서 터치버튼을 계속 누르고 있을때, 연속적으로 이벤트를 발생시키는 방법을 알아보겠습니다. CT1820내에는 AR1021라는 터치콘트롤러가 내장되어 있는데, 이 콘트롤러의 특정 레지스터를 건드리면, 이러한 기능을 구현하실 수 있습니다.

#include "CT18XX"
Dim I As Integer
Dim PV As Integer
Dim SV As Integer
Dim TX1 As Integer
Dim TY1 As Integer
Ramclear
PV=24
SV=25
TouchChip_ReInitial
 
On Pad Gosub GETTOUCH
 
Font 2,0
Menuset 0,2,200,95,250,120
Menutitle 0,17,4,"UP"
Menuset 1,2,255,95,305,120
Menutitle 1,11,4,"DOWN"
'
' 도씨 캐릭터정의
'
Defchr &HDB30,_
  &H00,&H00,&H30,&H00,&H48,&H00,&H48,&H00,_
  &H30,&HE0,&H01,&H10,&H02,&H00,&H02,&H00,_
  &H02,&H00,&H02,&H00,&H02,&H00,&H01,&H10,_
  &H00,&HE0,&H00,&H00,&H00,&H00,&H00,&H00
 
 
 
Ct18contrast 150 ' LCD CONTRAST SETTING
 
Font 2,0
Locate 2,2
Print "현재온도"
Locate 25,2
Print "설정온도"
Do
    ' 설정온도
 
    Locate 25,3
    Print Dp(SV,2,0),Chr(&HDB30)
 
    Locate 2,3    
    Print Dp(PV,2,0),Chr(&HDB30)
 
    Delay 100
Loop
 
GETTOUCH:
TX1 = Sys(10)
TY1 = Sys(11)
 
' UP KEY
 
If Menucheck(0,TX1,TY1) = 1 Then
    Menureverse 0
    Ct18beep 5 '키터치음 발생
    SV = SV + 1
'    Delay 50
    Menureverse 0
End If
 
' DOWN KEY
 
If Menucheck(1,TX1,TY1) = 1 Then
    Menureverse 1
    Ct18beep 5 '키터치음 발생
    SV = SV - 1
'    Delay 50
    Menureverse 1
End If
Return 
 
End
 
 
Sub TouchChip_ReInitial()
    Set I2c 66,65
    _TouchTemp1stValue = Sys(16) 'OS에서 touch칩 인터럽트를 처리못하게 함 (disable)
 
    TouchChip1byteCommand _TouchChipCmd_Disable_Touch '정지
    Wait 50
    _TouchRegStartAdr = TouchReadStartAdr() 'Register의 시작번지를 알아온다. 
    Wait 20
    '    &H40 = push only
    '  &h41 = push, release 
    '  &h50 = push, move
    TouchChipWriteReg &hc,&h50 '&hc=Touch Mode조정 
    Wait 20
    TouchChipWriteReg &h11,255 '&h11=Touch Report Delay조정 (연속해서 누르고있을때, 레포트간의 간격)
    Wait 20
    TouchChipWriteReg &ha,10 '&ha=sleep Delay조정 (터치입력을 못처리했을경우, 쓸데없이 딜레이되는것 방지)
    Wait 20
    TouchChip1byteCommand _TouchChipCmd_Enable_Touch '시작 
    Wait 50
    _TouchTemp1stValue = Sys(15) 'OS에서 touch칩 인터럽트를 처리하게 함 (enable)
End Sub

맨 아래있는 TouchChip_ReInitial Sub부프로그램을 눈여겨 보세요. 이 부프로그램이 바로 터치콘트롤러를 셋팅해주는 부분입니다.

다시 한번만 입력되는 모드로 바꾸고 싶다면, 위 부프로그램중 TouchChipWriteReg &hc,&h50을 TouchChipWriteReg &hc,&h40 으로 변경하면 됩니다. (&hc 레지스터의 값을 &h40으로 바꿈)

한단계 위로

cublocapp/an36012/index.txt · 마지막으로 수정됨: 2017/10/19 22:28 저자 Comfile Technology