사용자 도구

사이트 도구

English

cublocapp:an36012:index

차이

문서의 선택한 두 판 사이의 차이를 보여줍니다.

차이 보기로 링크

다음 판
이전 판
cublocapp:an36012:index [2017/10/19 22:24]
Comfile Technology 만듦
cublocapp:an36012:index [2017/10/19 22:28] (현재)
Comfile Technology
줄 1: 줄 1:
 +====== AN36012 - 연속 입력 받기 (터치하고 있는동안 연속적으로 이벤트 발생) ======
  
 +CUTOUCH CT1820에서 터치버튼을 계속 누르고 있을때, 연속적으로 이벤트를 발생시키는 방법을 알아보겠습니다. CT1820내에는 AR1021라는 터치콘트롤러가 내장되어 있는데, 이 콘트롤러의 특정 레지스터를 건드리면,​ 이러한 기능을 구현하실 수 있습니다.
 +
 +{{ :​cublocapp:​an36012:​ct1820_touch.jpg?​nolink |}}
 +
 +<​html><​center>​
 +<iframe width="​544"​ height="​306"​ src="​http://​serviceapi.nmv.naver.com/​flash/​convertIframeTag.nhn?​vid=6454514AFD3C523929C1182B50C34EC7904B&​outKey=V1232c01bd02932fda4fcb9f35e9bb7398afc116c14a433edf9e7b9f35e9bb7398afc"​ frameborder="​no"​ scrolling="​no"></​iframe>​
 +</​center></​html>​
 +
 +<code xbasic>
 +#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
 +
 +</​code>​
 +
 +맨 아래있는 TouchChip_ReInitial Sub부프로그램을 눈여겨 보세요. 이 부프로그램이 바로 터치콘트롤러를 셋팅해주는 부분입니다.
 +
 +다시 한번만 입력되는 모드로 바꾸고 싶다면, 위 부프로그램중 TouchChipWriteReg &​hc,&​h50을 ​ TouchChipWriteReg &​hc,&​h40 으로 변경하면 됩니다. (&hc 레지스터의 값을 &​h40으로 바꿈)
 +
 +[[cublocapp:​index|한단계 위로]]