Hi,
X/Y konnte ich herausfinden. So weit läuft es mal - allerdings bekomme ich Y Werte nur auf der unteren Displayhälfte und X Werte nur auf der rechten Displayhälfte.
Hier mein Testcode:
Code:
$regfile = "m128def.dat" ' specify the used micro
$crystal = 14745600 ' used crystal frequency
$baud = 19200 ' use baud rate
$hwstack = 32 ' default use 32 for the hardware stack
$swstack = 10 ' default use 10 for the SW stack
$framesize = 40 ' default use 40 for the frame space
$lib "glcdKS108-192x64.lib"
Wait 2
'First we define that we use a graphic LCD
Config Graphlcd = 192 * 64sed , Dataport = Porta , Controlport = Portc , Ce = 0 , Ce2 = 1 , Ce3 = 2 , Cd = 3 , Rd = 4 , Enable = 5 , Reset = 6 , Mode = 8
Config Adc = Single , Prescaler = Auto , Reference = Internal
Dim X As Word , Y As Word
Dim X2 As Single , Y2 As Single
Dim X3 As Single , Y3 As Single
Dim X4 As Byte , Y4 As Byte
Declare Sub Readtouch()
Start Adc
'Cursor Off
Cls
Setfont Font5x5
Lcdat 1 , 1 , "KS108 mit Touch an Mega128"
Lcdat 3 , 1 , "Y analog: "
Lcdat 4 , 1 , "X analog: "
Do
Gosub Readtouch
Lcdat 3 , 47 , Y ; " "
Lcdat 4 , 47 , X ; " "
Loop
End
Sub Readtouch()
Config Pinf.0 = Output ' Makes port F.0 output
Config Pinf.2 = Output ' Makes port F.0 output
Set Portf.0 ' Sets port F.0 High
Reset Portf.2 ' Sets port F.2 Low
Ddrf.1 = 0 ' Sets port F.1 as input
Ddrf.3 = 0 ' Sets port F.1 as input because we need it now as ad input
Waitms 20 ' Wait until the port is stable
Y = Getadc(3) ' Read the ad value for the y
Y = 1024 - Y ' Invert the reading
Config Pinf.1 = Output ' Makes port F.1 output
Config Pinf.3 = Output ' Makes port F.3 output
Reset Portf.1 ' Sets port F.1 Low
Set Portf.3 ' Sets port F.3 High
Ddrf.0 = 0 ' Sets port F.0 as input
Ddrf.2 = 0 ' Sets port F.2 as input because we need it now as ad input
Waitms 20 ' Wait until the port is stable
X = Getadc(2) ' Read the ad value for the x
X = 1024 - X ' Invert the reading
End Sub
$include "font5x5.font"
Lesezeichen