با سلام خدمت دوستان
من از یک سایتی برنامه paint با میکرو و LCD 128*64 و صفحه لمسی با شماره 034007 رو دانلود کردم و بستم ولی الان یه مشکلی دارم و اون اینه که یه پیکسل رو که کلیک می کنم ، همون پیکسل تو صفحه روشن نمیشه ..به نظرتون مشکل میتونه از چی باشه ؟؟ فقط من این تاچ رو پیدا نکردم یه تاچ اسکرین دیگه گذاشتم ممکنه این باشه دلیلش ؟ این سورس :
من از یک سایتی برنامه paint با میکرو و LCD 128*64 و صفحه لمسی با شماره 034007 رو دانلود کردم و بستم ولی الان یه مشکلی دارم و اون اینه که یه پیکسل رو که کلیک می کنم ، همون پیکسل تو صفحه روشن نمیشه ..به نظرتون مشکل میتونه از چی باشه ؟؟ فقط من این تاچ رو پیدا نکردم یه تاچ اسکرین دیگه گذاشتم ممکنه این باشه دلیلش ؟ این سورس :
$regfile = "m32def.dat"
$crystal = 1000000
$hwstack = 64
$swstack = 64
$framesize = 64
Config Adc = Single , Prescaler = Auto , Reference = Avcc
Enable Adc
Start Adc
$lib "glcdKS108.lbx"
Config Graphlcd = 128 * 64sed , Dataport = Portc , Controlport = Portd , Ce = 2 , Ce2 = 3 , Cd = 6 , Rd = 5 , Reset = 1 , Enable = 4
'Setfont Font8x8
Declare Sub Scan
Dim X As Integer , Y As Integer
Dim Old_x As Integer , Old_y As Integer
Dim Click_pen As Bit
Dim I As Byte , J As Byte
Cls
Showpic 0 , 0 , Startup
Showpic 5 , 16 , P1
Showpic 5 , 32 , E1
Do
Call Scan
If X <> -1 And Y <> -1 Then 'In Screen(64*128)
Old_x = X : Old_y = Y
Waitms 10
Call Scan
If X = Old_x And Y = Old_y Then 'No Noise
If X >= 24 And X <= 119 And Y >= 14 And Y <= 59 Then
If Click_pen = 0 Then
Pset X , Y , 255
Else
Pset X , Y , 0
End If
Else
If X >= 4 And X <= 20 And Y >= 14 And Y <= 26 Then
'Pen Clicked
Showpic 5 , 16 , P2
Toggle Click_pen
Waitms 100
If Click_pen = 0 Then
Showpic 5 , 16 , P1
Else
Showpic 5 , 16 , P3
End If
End If
If X >= 4 And X <= 20 And Y >= 30 And Y <= 45 Then
'Eraser Clicked
Showpic 5 , 32 , E2
Waitms 100
Showpic 5 , 32 , E1
'Clear The Screen
For I = 14 To 59
Line(24 , I) -(119 , I) , 0
Next I
End If
End If
End If
End If
Loop
End
Sub Scan
'Get x position
Ddra = &B00001010
Porta = &B00001000
X = Getadc(2)
'Get y position
Ddra = &B00000101
Porta = &B00000100
Y = Getadc(1)
If X < 82 Then X = -1
If X >= 82 Then
X = X - 82
X = X / 5
End If
If Y < 200 Then Y = -1
If Y >= 200 Then
Y = Y - 200
Y = Y / 7
End If
End Sub
Startup:
$bgf "Paint.bgf"
P1:
$bgf "Pen.bgf"
P2:
$bgf "Pen_clicked.bgf"
P3:
$bgf "Pen_White.bgf"
E1:
$bgf "Eraser.bgf"
E2:
$bgf "Eraser_Clicked.bgf"
یه سوال دیگه : دوستان میتونم از این ماژول ال سی دی 3.2 اینچی که تاچ رو هم خودش داره استفاده کنم ؟ ممنون میشم راهنمایی کنید
$crystal = 1000000
$hwstack = 64
$swstack = 64
$framesize = 64
Config Adc = Single , Prescaler = Auto , Reference = Avcc
Enable Adc
Start Adc
$lib "glcdKS108.lbx"
Config Graphlcd = 128 * 64sed , Dataport = Portc , Controlport = Portd , Ce = 2 , Ce2 = 3 , Cd = 6 , Rd = 5 , Reset = 1 , Enable = 4
'Setfont Font8x8
Declare Sub Scan
Dim X As Integer , Y As Integer
Dim Old_x As Integer , Old_y As Integer
Dim Click_pen As Bit
Dim I As Byte , J As Byte
Cls
Showpic 0 , 0 , Startup
Showpic 5 , 16 , P1
Showpic 5 , 32 , E1
Do
Call Scan
If X <> -1 And Y <> -1 Then 'In Screen(64*128)
Old_x = X : Old_y = Y
Waitms 10
Call Scan
If X = Old_x And Y = Old_y Then 'No Noise
If X >= 24 And X <= 119 And Y >= 14 And Y <= 59 Then
If Click_pen = 0 Then
Pset X , Y , 255
Else
Pset X , Y , 0
End If
Else
If X >= 4 And X <= 20 And Y >= 14 And Y <= 26 Then
'Pen Clicked
Showpic 5 , 16 , P2
Toggle Click_pen
Waitms 100
If Click_pen = 0 Then
Showpic 5 , 16 , P1
Else
Showpic 5 , 16 , P3
End If
End If
If X >= 4 And X <= 20 And Y >= 30 And Y <= 45 Then
'Eraser Clicked
Showpic 5 , 32 , E2
Waitms 100
Showpic 5 , 32 , E1
'Clear The Screen
For I = 14 To 59
Line(24 , I) -(119 , I) , 0
Next I
End If
End If
End If
End If
Loop
End
Sub Scan
'Get x position
Ddra = &B00001010
Porta = &B00001000
X = Getadc(2)
'Get y position
Ddra = &B00000101
Porta = &B00000100
Y = Getadc(1)
If X < 82 Then X = -1
If X >= 82 Then
X = X - 82
X = X / 5
End If
If Y < 200 Then Y = -1
If Y >= 200 Then
Y = Y - 200
Y = Y / 7
End If
End Sub
Startup:
$bgf "Paint.bgf"
P1:
$bgf "Pen.bgf"
P2:
$bgf "Pen_clicked.bgf"
P3:
$bgf "Pen_White.bgf"
E1:
$bgf "Eraser.bgf"
E2:
$bgf "Eraser_Clicked.bgf"
دیدگاه