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

Dołącz do dyskusji, napisz odpowiedź!

Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!

Anonim
Dołącz do dyskusji! Kliknij i zacznij pisać...

×   Wklejony jako tekst z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Twój link będzie automatycznie osadzony.   Wyświetlać jako link

×   Twoja poprzednia zawartość została przywrócona.   Wyczyść edytor

×   Nie możesz wkleić zdjęć bezpośrednio. Prześlij lub wstaw obrazy z adresu URL.

×
×
  • 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.