Skocz do zawartości

[AT16][BASCOM] gLCD i touchpanel - RYSOWANIE


lukaszinfer

Pomocna odpowiedź

Wpisałeś sobie dumnie "Programuję w:BASCOM" wiec w czym masz problem?

Wartość z przetwornika podłączonego do touchpanela niestety nie będzie się pokrywała z "pixelami" lcd dlatego należy to przekształcić matematycznie -proporcja.

Pozdrawiam 😋...

Link do komentarza
Share on other sites

No tak programuje ale z wyswietlaczami graficznymi dopiero zaczynam.

Gdybym znał bascoma na 6 to chyba nie pisalbym w Początkujący ???

A czy mogłbyś podzielić się kodem???

Chciałem tylko zobaczyć jak to wygląda bo nie mam zielonego pojęcia :/

Link do komentarza
Share on other sites

Zarejestruj się lub zaloguj, aby ukryć tę reklamę.
Zarejestruj się lub zaloguj, aby ukryć tę reklamę.

jlcpcb.jpg

jlcpcb.jpg

Produkcja i montaż PCB - wybierz sprawdzone PCBWay!
   • Darmowe płytki dla studentów i projektów non-profit
   • Tylko 5$ za 10 prototypów PCB w 24 godziny
   • Usługa projektowania PCB na zlecenie
   • Montaż PCB od 30$ + bezpłatna dostawa i szablony
   • Darmowe narzędzie do podglądu plików Gerber
Zobacz również » Film z fabryki PCBWay

A mi to kto miał powiedzieć jak to uruchomić??

Jakoś sobie poradziłem, póki co polski help do bascoma jeszcze jest dostępny :|

Nie mam właśnie co robić to się podzielę kodem ale żal jest oddawać ot tak ileś godzin pracy.

Moze to ci cos pomoze http://www.mcselec.com/index.php?option=com_content&task=view&id=189&Itemid=57

Rubryka "The basics of a touch screen"

Uwaga zalacznik typu JPG zmienić rozszerzenie na BGF-obrazek klawiatury i dodac do kompilowanego programu.

Klawiaturka:

$regfile = "m16def.dat"
$crystal = 8000000
Config Graphlcd = 240 * 128 , Dataport = Portx , Controlport = Portx , Ce = x , Cd = x , Wr = x , Rd = x , Reset = x , Fs = x , Mode = 8

Config Adc = Single , Prescaler = Auto , Reference = Avcc

Start Adc
Cursor Off
Dim Y As Word
Dim X As Word
Dim Z As Word

Dim Klawisz As Byte

Dim Xw As Byte
Dim Yw As Byte
Dim Flaga As Bit
Dim Spac As Byte
Spac = 1
Cls
Showpic 0 , 0 , A
Do

   Porta.2 = 0
   Porta.0 = 0
   Porta.1 = 1
   Porta.3 = 1

   Ddra.2 = 1
   Ddra.0 = 1
   Ddra.1 = 0
   Ddra.3 = 0

   Waitus 100

   Z = Getadc(3)

   Porta.2 = 1
   Porta.0 = 0
   Porta.1 = 0
   Porta.3 = 0

   Ddra.2 = 1
   Ddra.0 = 1
   Ddra.1 = 0
   Ddra.3 = 0

   Waitus 100

   X = Getadc(3)

   Porta.2 = 0
   Porta.0 = 0
   Porta.1 = 1
   Porta.3 = 0

   Ddra.2 = 0
   Ddra.0 = 0
   Ddra.1 = 1
   Ddra.3 = 1

   Waitus 100

   Y = Getadc(2)


   Shift X , Right , 2
   Shift Y , Right , 3
   X = X - 21
   Y = Y - 21
   Xw = X
   Yw = Y
If Z > 800 Then Flaga = 0
If Z < 800 Then
If Flaga = 0 Then
Incr Spac
If Spac > 30 Then Spac = 1
Ddrc.6 = 1
Reset Portc.6
   If Xw < 20 Then : If Xw > 0 Then : If Yw < 15 Then : If Yw > 0 Then Klawisz = 81 : End If : End If : End If
   If Xw < 42 Then : If Xw > 22 Then : If Yw < 15 Then : If Yw > 0 Then Klawisz = 87 : End If : End If : End If
   If Xw < 62 Then : If Xw > 44 Then : If Yw < 15 Then : If Yw > 0 Then Klawisz = 69 : End If : End If : End If
   If Xw < 84 Then : If Xw > 64 Then : If Yw < 15 Then : If Yw > 0 Then Klawisz = 82 : End If : End If : End If
   If Xw < 105 Then : If Xw > 88 Then : If Yw < 15 Then : If Yw > 0 Then Klawisz = 84 : End If : End If : End If
   If Xw < 128 Then : If Xw > 108 Then : If Yw < 15 Then : If Yw > 0 Then Klawisz = 89 : End If : End If : End If
   If Xw < 150 Then : If Xw > 130 Then : If Yw < 15 Then : If Yw > 0 Then Klawisz = 85 : End If : End If : End If
   If Xw < 170 Then : If Xw > 152 Then : If Yw < 15 Then : If Yw > 0 Then Klawisz = 73 : End If : End If : End If
   If Xw < 192 Then : If Xw > 172 Then : If Yw < 15 Then : If Yw > 0 Then Klawisz = 79 : End If : End If : End If
   If Xw < 214 Then : If Xw > 194 Then : If Yw < 15 Then : If Yw > 0 Then Klawisz = 80 : End If : End If : End If

   If Xw < 9 Then : If Xw > 0 Then : If Yw < 32 Then : If Yw > 16 Then : Decr Spac : Klawisz = 32 : Decr Spac : End If : End If : End If : End If       'bkspc
   If Xw < 30 Then : If Xw > 10 Then : If Yw < 32 Then : If Yw > 16 Then Klawisz = 65 : End If : End If : End If
   If Xw < 52 Then : If Xw > 32 Then : If Yw < 32 Then : If Yw > 16 Then Klawisz = 83 : End If : End If : End If
   If Xw < 73 Then : If Xw > 54 Then : If Yw < 32 Then : If Yw > 16 Then Klawisz = 68 : End If : End If : End If
   If Xw < 95 Then : If Xw > 75 Then : If Yw < 32 Then : If Yw > 16 Then Klawisz = 70 : End If : End If : End If
   If Xw < 117 Then : If Xw > 98 Then : If Yw < 32 Then : If Yw > 16 Then Klawisz = 71 : End If : End If : End If
   If Xw < 140 Then : If Xw > 119 Then : If Yw < 32 Then : If Yw > 16 Then Klawisz = 72 : End If : End If : End If
   If Xw < 160 Then : If Xw > 141 Then : If Yw < 32 Then : If Yw > 16 Then Klawisz = 74 : End If : End If : End If
   If Xw < 180 Then : If Xw > 163 Then : If Yw < 32 Then : If Yw > 16 Then Klawisz = 75 : End If : End If : End If
   If Xw < 203 Then : If Xw > 184 Then : If Yw < 32 Then : If Yw > 16 Then Klawisz = 76 : End If : End If : End If

   If Xw < 30 Then : If Xw > 0 Then : If Yw < 48 Then : If Yw > 33 Then Klawisz = 32 : End If : End If : End If       'spc
   If Xw < 52 Then : If Xw > 32 Then : If Yw < 48 Then : If Yw > 33 Then Klawisz = 90 : End If : End If : End If
   If Xw < 73 Then : If Xw > 54 Then : If Yw < 48 Then : If Yw > 33 Then Klawisz = 88 : End If : End If : End If
   If Xw < 95 Then : If Xw > 75 Then : If Yw < 48 Then : If Yw > 33 Then Klawisz = 67 : End If : End If : End If
   If Xw < 117 Then : If Xw > 98 Then : If Yw < 48 Then : If Yw > 33 Then Klawisz = 86 : End If : End If : End If
   If Xw < 140 Then : If Xw > 119 Then : If Yw < 48 Then : If Yw > 33 Then Klawisz = 66 : End If : End If : End If
   If Xw < 160 Then : If Xw > 141 Then : If Yw < 48 Then : If Yw > 33 Then Klawisz = 78 : End If : End If : End If
   If Xw < 180 Then : If Xw > 163 Then : If Yw < 48 Then : If Yw > 33 Then Klawisz = 77 : End If : End If : End If
   If Xw < 214 Then : If Xw > 184 Then : If Yw < 48 Then : If Yw > 33 Then Klawisz = 255 : End If : End If : End If
   If Xw < 10 Then : If Xw > 0 Then : If Yw < 30 Then : If Yw > 17 Then Cls Text : Spac = 1 : End If : End If : End If
   Waitms 10
  Set Portc.6
   Flaga = 1
Print Chr(klawisz)
End If



Locate 11 , Spac
Lcd Chr(klawisz) ; Spc(2)

End If

Locate 14 , 1
Lcd "Kl=" ; Klawisz ; Spc(2)
Locate 15 , 1
Lcd "Xpoz=" ; Xw ; Spc(2)
Locate 16 , 1
Lcd "Ypoz=" ; Yw ; Spc(2)

Waitms 100

Loop
End

A:
$bgf "klawiatka.bgf"

Obsluga TOUCH:

$regfile = "m16def.dat"
$crystal = 8000000
Config Graphlcd = 240 * 128 , Dataport = portx , Controlport = Portx , Ce = x , Cd = x , Wr = x , Rd = x , Reset = x , Fs = x , Mode = 8

Config Adc = Single , Prescaler = Auto , Reference = Avcc

Start Adc

Cursor Off
Dim Y As Word'
Dim X As Word'
Dim Z As Word'prosty odczyt z przetwornikow

Dim Calx As Single'
Dim Caly As Single'kalibracja

Dim Xw As Byte'
Dim Yw As Byte'skalibrowane dane

Cls
Do

   Porta.2 = 0
   Porta.0 = 0
   Porta.1 = 1
   Porta.3 = 1

   Ddra.2 = 1
   Ddra.0 = 1
   Ddra.1 = 0
   Ddra.3 = 0

   Z = Getadc(3)'pomiar wcisniecia

If z < 100 then 'jak wcisniety to sciagnij osie X i Y

   Porta.2 = 1
   Porta.0 = 0
   Porta.1 = 0
   Porta.3 = 0

   Ddra.2 = 1
   Ddra.0 = 1
   Ddra.1 = 0
   Ddra.3 = 0

   X = Getadc(3)

   Porta.2 = 0
   Porta.0 = 0
   Porta.1 = 1
   Porta.3 = 0

   Ddra.2 = 0
   Ddra.0 = 0
   Ddra.1 = 1
   Ddra.3 = 1

   Y = Getadc(2)

   X = X - 65 
   Y = Y - 150'odejmij jakies wartosci by znalezc poczatek lcd TU KALIBRUJESZ DLA SWOJEGO LCD


   Calx = 240 * X
   Calx = Calx / 240
   Xw = Calx

   Caly = 128 * Y
   Caly = Caly / 128
   Yw = Caly

   Pset Xw , Yw , 255

end if

If Xw > 157 And Xw < 190 Then
If Yw > 120 And Yw < 128 Then Cls 'przycisk CLS
End If


Locate 14 , 1
Lcd Flaga
Locate 15 , 1
Lcd "Xpoz=" ; Xw ; Spc(2)
Locate 16 , 1
Lcd "Ypoz=" ; Yw ; Spc(2)
Locate 16 , 20
Lcd "[CLS]"

loop
end

Powinno chodzić jednakże musisz skonfigurować ...

klawiatka.jpg

Link do komentarza
Share on other sites

Bądź aktywny - zaloguj się lub utwórz konto!

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto w ~20 sekund!

Zarejestruj nowe konto, to proste!

Zarejestruj się »

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się »
×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.