Kicsit sok lesz az a 1kHz.
Valami nem gömbölyű ott.
Haladj a többi részével a progidnak. Egyelőre csak a nyers adatokkal foglalkozz. Ma-holnap megírom neked a szűrő rutint.
Ok?
4 vezetékes rezisztív érintőképernyő olvasása
Közben én próbáltam 1 ilyen rutint.
Csak a változásra reagál, tehát ha nincsen változás megy tovább.
Nem tölti feleslegesen itt a drága időt.
Van benne Késleltetés, (ami most a Printek miatt kicsi) tehát a változásra sem azonnal cselekszik.
Megvárja, hogy beálljon a rendszer.
Igy talán nem lesz Prel és a karakterismétlések is ki vannak szűrve.
Ami lényeges rövid az egész!
Csak a változásra reagál, tehát ha nincsen változás megy tovább.
Nem tölti feleslegesen itt a drága időt.
Van benne Késleltetés, (ami most a Printek miatt kicsi) tehát a változásra sem azonnal cselekszik.
Megvárja, hogy beálljon a rendszer.
Igy talán nem lesz Prel és a karakterismétlések is ki vannak szűrve.
Ami lényeges rövid az egész!
Kód: Egész kijelölése
Do
Ddrf.touchp_yp = 0 ' Sets port Touchp_y+ as input
Ddrf.touchp_ym = 0 ' Sets port Touchp_y- as input because we need it now as ad input
Ddrf.touchp_xp = 1 ' Makes port Touchp_x+ output
Ddrf.touchp_xm = 1 ' Makes port Touchp_x- output
Set Portf.touchp_xp ' Sets port Touchp_x+ High
Reset Portf.touchp_xm ' Sets port Touchp_x- Low
Waitms 20 ' Wait until the port is stable
Touch_yp = Getadc(touchp_yp) ' Read the ad value for the y
Touch_yp = 1024 - Touch_yp ' Invert the reading Y
Ddrf.touchp_xp = 0 ' Sets port Touchp_x+ as input
Ddrf.touchp_xm = 0 ' Sets port Touchp_x- as input because we need it now as ad input
Ddrf.touchp_yp = 1 ' Makes port Touchp_y+ output
Ddrf.touchp_ym = 1 ' Makes port Touchp_y- output
Reset Portf.touchp_ym ' Sets port Touchp_y- Low
Set Portf.touchp_yp ' Sets port Touchp_y+ High
Print "MY: " ; Touch_yp ;
' Waitms 20
Touch_xp = Getadc(touchp_xp) ' Read the ad value for the x
Touch_xp = 1024 - Touch_xp ' Invert the reading X
Print " MX: " ; Touch_xp
If Oldtouch_yp <> Touch_yp Or Oldtouch_xp <> Touch_xp Then 'Csak ha valamelyik érték megvátozott
Incr Vn 'Változás számláló növelése
If Vn > 4 Then 'Várunk több változó értéket
Vn = 0 'Változás számláló törlése
Oldtouch_yp = Touch_yp 'Új értékek tárolása
Oldtouch_xp = Touch_xp
Touch15x8 'Oszlopokra és sorokra bontás
If Oldtouchy_row <> Touchy_row Or Oldtouchx_col <> Touchx_col Then 'Csak ha valamelyik érték megvátozott
Oldtouchy_row = Touchy_row 'Új értékek tárolása
Oldtouchx_col = Touchx_col
Print "SOR! (Y): " ; Touchy_row ; " OSZLOP (X): " ; Touchx_col
End If
End If
End If
Print
Waitms 100
Loop
És ilyen számokat dobbál:
Látszik a késleltetett reagálás.
Tesztelem éles környezetben.

Kód: Egész kijelölése
MY: 1 MX: 1
MY: 1 MX: 2
MY: 1 MX: 1
MY: 480 MX: 594
SOR! (Y): 4 OSZLOP (X): 10
MY: 482 MX: 595
MY: 484 MX: 596
MY: 488 MX: 601
MY: 496 MX: 607
MY: 2 MX: 2
SOR! (Y): 0 OSZLOP (X): 0
MY: 2 MX: 2
MY: 1 MX: 1
MY: 2 MX: 2
MY: 476 MX: 497
MY: 484 MX: 507
MY: 490 MX: 514
MY: 496 MX: 527
SOR! (Y): 5 OSZLOP (X): 9
MY: 499 MX: 535
MY: 500 MX: 540
MY: 502 MX: 543
MY: 503 MX: 546
MY: 503 MX: 547
MY: 504 MX: 549
MY: 505 MX: 552
MY: 507 MX: 554
MY: 3 MX: 1
MY: 3 MX: 2
SOR! (Y): 0 OSZLOP (X): 0
MY: 2 MX: 2
MY: 2 MX: 1
MY: 463 MX: 344
MY: 465 MX: 351
MY: 466 MX: 356
SOR! (Y): 4 OSZLOP (X): 5
MY: 467 MX: 360
Tesztelem éles környezetben.
Ennyivel elintéztem a zajszűrést:
Beolvasás után megnézzük az eltérést +- és ha 10-nél kisebb az a zaj!

Útánna következik a szöveg szerkesztő rész, az is szép feladat.

Kód: Egész kijelölése
Sub Readtouch()
Ddrf.touchp_yp = 0 ' Sets port Touchp_y+ as input
Ddrf.touchp_ym = 0 ' Sets port Touchp_y- as input because we need it now as ad input
Ddrf.touchp_xp = 1 ' Makes port Touchp_x+ output
Ddrf.touchp_xm = 1 ' Makes port Touchp_x- output
Set Portf.touchp_xp ' Sets port Touchp_x+ High
Reset Portf.touchp_xm ' Sets port Touchp_x- Low
Waitms 20 ' Wait until the port is stable
Touch_yp = Getadc(touchp_yp) ' Read the ad value for the y
Ddrf.touchp_xp = 0 ' Sets port Touchp_x+ as input
Ddrf.touchp_xm = 0 ' Sets port Touchp_x- as input because we need it now as ad input
Ddrf.touchp_yp = 1 ' Makes port Touchp_y+ output
Ddrf.touchp_ym = 1 ' Makes port Touchp_y- output
Reset Portf.touchp_ym ' Sets port Touchp_y- Low
Set Portf.touchp_yp ' Sets port Touchp_y+ High
' Print "MY: " ; Touch_yp ;
Touch_yp = 1024 - Touch_yp ' Invert the reading Y
Select Case Touch_yp 'Kiszámolja a változás külömbségét
Case Is > Oldtouch_yp :
Iyw = Touch_yp - Oldtouch_yp
Case Is < Oldtouch_yp :
Iyw = Oldtouch_yp - Touch_yp
' Case Else Iyw = 0
End Select
Waitms 15
Touch_xp = Getadc(touchp_xp) ' Read the ad value for the x
Touch_xp = 1024 - Touch_xp ' Invert the reading X
' Print " MX: " ; Touch_xp
' +-10 eltérések kiszürése ADC Zaj szürés
Select Case Touch_xp
Case Is > Oldtouch_xp :
Ixw = Touch_xp - Oldtouch_xp
Case Is < Oldtouch_xp :
Ixw = Oldtouch_xp - Touch_xp
' Case Else Ixw = 0
End Select
If Iyw > 10 Or Ixw > 10 Then 'Csak ha változás nagyobb mint +,- 10
Iyw = 0
Ixw = 0
Útánna következik a szöveg szerkesztő rész, az is szép feladat.