Elektronika cyfrowa – mikrokontrolery dla początkujących.

Transkrypt

Elektronika cyfrowa – mikrokontrolery dla początkujących.
Elektronika cyfrowa – mikrokontrolery dla początkujących BASCOM.
Piotr Rzeszut
Elektronika cyfrowa
–
mikrokontrolery dla początkujących.
Część 12
–
Kolorowy wyświetlacz LCD
Kurs przygotowany wraz z firmą
producentem zestawów do nauki programowania
procesorów AVR
1
Elektronika cyfrowa – mikrokontrolery dla początkujących BASCOM.
Piotr Rzeszut
Wstęp
Dotychczas korzystaliśmy jedynie z wyświetlacza alfanumerycznego do prezentowania
danych. Teraz przyszła pora na nieco ambitniejsze zagadnienie – obsługę kolorowego, graficznego
wyświetlacza LCD. Obecnie BASCOM oferuje wsparcie dla dwóch modeli kolorowych wyświetlaczy.
Jednym z nich jest wyświetlacz oparty o sterownik PCF8833. Wyświetlacze takie swego czasu były
popularnie stosowane w telefonach marki Nokia (np. model N6100). Wyświetlacze te jednak
posiadają bardzo niewygodne złącza i tylko na niektórych starszych modelach znajdziemy specjalne
pady, pod które łatwiej przylutować kabelki. Dodatkowo konieczna jest konwersja stanów logicznych
z 5V na 3,3V oraz zapewnienie napięcia rzędu 6,5-7V dla podświetlania. Firma And-Tech ma w swojej
ofercie gotowy moduł wyświetlacza (And-Graph132), który rozwiązuje wszystkie te problemy i na
swoim „pokładzie” posiada dodatkowo joystick.
Przygotowania
Przygotowania do korzystania z modułu rozpoczniemy od połączenia całości z procesorem.
Na początku podłączmy zasilanie do płytki naszego wyświetlacza (GND i VCC). Dodatkowo podłączmy
pin BL do +5V. teraz obserwujemy wyświetlacz. Jeśli jego podświetlanie miga przy delikatnym
przechylaniu samego wyświetlacza w prawo lub lewo, to oznacza iż mamy niewielki problem ze
złączami1. W takiej sytuacji odpinamy wyświetlacz od płytki i w złączu od strony wyświetlacza
delikatnie doginamy w stronę środka złącza wszystkie styki za pomocom cienkiej igły. UWAGA!
Operację tę należy wykonać bardzo ostrożnie, gdyż zbytnie wygięcie styków może doprowadzić do
ich uszkodzenia. Autor kursu nie ponosi żądnej odpowiedzialności za uszkodzenia spowodowane
podczas tej czynności. Jeśli teraz wyświetlacz jest ciągle podświetlany, oznacza to, że złącze działa
poprawnie. Kolejne połączenia z procesorem wykonujemy według opisów w kodach programów.
1
Pomimo tego, iż złącza są dokładnie opisane standardami, występują między nimi różnice rzędu dziesiątych i
setnych części milimetra, co staje się przyczyną problemów.
2
Elektronika cyfrowa – mikrokontrolery dla początkujących BASCOM.
Piotr Rzeszut
Pierwsze uruchomienie
Teraz nadszedł czas aby zainicjalizować nasz wyświetlacz i wyświetlić na nim jakiś tekst. I tu
zauważymy pierwszą różnicę między wyświetlaczami tekstowymi a graficznymi. Otóż konieczne jest
dołączenie pliku zawierającego definicję czcionki, w której opisany jest układ pikseli tworzących każdą
literę. Dodatkowo w przypadku naszego wyświetlacza mamy do wyboru różne ustawienia jego pracy,
takie jak kontrast, czy obrót2. Inicjalizacji wyświetlacza oraz wyświetlenia prostych rysunków
dokonuje poniższy prosty program.
$regfile
= "m644pdef.dat"
'$regfile = "m32def.dat"
'$regfile = "m16def.dat"
$baud = 9600
$crystal = 16000000
$lib "lcd-pcf8833.lbx"
'dołą czamy bibliotekę do obsługi wyświetlacza na sterowniku pcf8833 (zwykle cze
rwone PCB)
Const Mirror_x = 7
Const Mirror_y = 6
Const Ram_direction = 5
Const Line_order = 4
Const Color_mode = 3
Dim Cfg As Byte
'stałe pomagają nam czytelnie zapisać konfigurację
Cfg.color_mode = 1
'tryb kolorów 1 - kolory w formacie RRRGGGBB, 0 - kolory w formacie BBBGGGRR
Cfg.line_order = 0
Cfg.ram_direction = 0
'parametry dotyczące kolejnosci przesyłania danych o pikselach pozostawiamy bez
zmian
Cfg.mirror_y = 0
'włą czanie/wy łą czanie odbicia lustrzanego względem osi Y
Cfg.mirror_x = 1
'włą czanie/wy łą czanie odbicia lustrzanego względem osi X
'powyższe parametry powodują poprawną interpretację kolorów i ustawienie dołu
wyświetlacza do joysticka
Config Graphlcd = Color , Controlport = Portc , Cs = 7 , Rs = 4 , Scl = 6 , Sda
= 5
'konfigurujemy wyświetlacz
'(
Powinniśmy Wykonać Następuj ące Połą czenia Pomiędzy Wyświetlaczem A Płytk ą:
Wyświetlacz - Płytka
Vcc - Vcc
Gnd - Gnd
2
w rzeczywistości ustawiamy jedynie odwrócenie względem osi X (u nas równoległa do złącz) oraz Y
(prostopadła do X)
3
Elektronika cyfrowa – mikrokontrolery dla początkujących BASCOM.
Piotr Rzeszut
Bl - Vcc
Cs - Pc7
Clk - Pc6
Dat - Pc5
Res - Pc4
')
Glcdcmd &H25
'wysyłamy polecenie ustawienia kontrastu
Glcddata 50
'podajemy wartość kontrastu (z zakresu 0-127)
Glcdcmd &H36
'wysyłamy polecenie zapisu konfiguracji
Glcddata Cfg
'wysyłamy konfigurację
Glcdcmd &H21
'włą czamy inwersję kolorów (aby kolory wyświetlały się poprawnie
'jeśli kolory są odwrócone zamiast powyższej komendy wysyłamy następuj ąc ą
'Glcdcmd &H20
'wyłą czamy inwersję kolorów
Glcdcmd &H29
'wysyłamy komendę włą czaj ą c ą wyświetlacz
Cls
'teraz możemy normalnie wyczyści ć wyświetlacz
Pset 10 , 10 , &B111000000
Pset 20 , 0 , &B000111000
Pset 0 , 20 , &B000000011
'ustawiamy na ekranie 3 punkty
'składnia Pset X, Y, Kolor
'Uwaga! U nas X oznacza oś poziomą, a Y pionową. kolory zapisane w formacie
&Brrrgggbb (taki wybraliśmy w ustawieniach)
Line(50 , 50) -(131 , 50) , &B11111000
'Wyświetlamy pomarańczow ą linię podając współrz ę dne punktów początkowych i końc
owych, oraz kolor
'składnia Line(Xp , Yp) -(Xk , Yk) , Kolor
Box(55 , 55) -(131 , 131) , &B00011100
'Wyświetlamy zielony prostokąt
'składnia Box(Xp , Yp) -(Xk , Yk) , Kolor
Circle(25 , 75) , 20 , &B11100011
'wyświetlamy fioletowy okrąg
'składnia Circle(X , Y) , Promień , Kolor
End
4
Elektronika cyfrowa – mikrokontrolery dla początkujących BASCOM.
Piotr Rzeszut
Tekst na wyświetlaczu graficznym
Na wyświetlaczu graficznym, oprócz obrazków, na pewno zechcemy wyświetlić także tekst.
Należy zwrócić tu uwagę na to, iż obsługa tego wyświetlacza wymaga dołączenia opisu każdego znaku
piksel po pikselu. Stwarza to konieczność dołączenia takich plików do pamięci naszego programu, ale
z drugiej strony daje nam możliwość stworzenia własnych czcionek o różnych rozmiarach.
Podstawowa obsługa czcionek
Na początku wykorzystamy dołączone do pakietu BASCOM przykładowe zestawy czcionek
graficznych.
$regfile = "m644pdef.dat"
'$regfile = "m32def.dat"
'$regfile = "m16def.dat"
$baud = 9600
$crystal = 16000000
$lib "lcd-pcf8833.lbx"
Dim A As Byte
Dim S As String * 15
Const Blue = &B00000011
Const Yellow = &B11111100
Const Red = &B11100000
Const Green = &B00011100
Const Black = &B00000000
Const White = &B11111111
Const Brightgreen = &B00111110
Const Lightgreen = &B01111100
Const Darkgreen = &B00010100
Const Darkred = &B10100000
Const Darkblue = &B00000010
Const Brightblue = &B00011111
Const Orange = &B11111000
'definiujemy kilka stałych z kodami kolorów
Const Mirror_x = 7
Const Mirror_y = 6
Const Ram_direction = 5
Const Line_order = 4
Const Color_mode = 3
Dim Cfg As Byte
Cfg.color_mode = 1
Cfg.line_order = 0
Cfg.ram_direction = 0
Cfg.mirror_y = 0
Cfg.mirror_x = 1
Config Graphlcd = Color , Controlport = Portc , Cs = 7 , Rs = 4 , Scl = 6 , Sda
= 5
Glcdcmd &H25
5
Elektronika cyfrowa – mikrokontrolery dla początkujących BASCOM.
Piotr Rzeszut
Glcddata 50
Glcdcmd &H36
Glcddata Cfg
Glcdcmd &H21
'Glcdcmd &H20
Glcdcmd &H29
'dispaly on
Cls
Setfont Color16x16
'wybieramy dużą czcionkę
'UWAGA! podana nazwa to nie nazwa pliku z czcionką, ale nazwa czcionki zapisana
w tym pliku
Lcdat 1 , 1 , "Test 16" , Black , White
'podajemy współrz ę dne początku tekstu (lewy górny róg)
'następnie tekst do wyświetlenia, a potem kolor tekstu i kolor tła
Lcdat 18 , 1 , "Test 16" , Yellow , Red
'ten tekst będzie koloru żó ł tego na czerwonym tle
Setfont Color8x8
'zmieniamy czcionkę na mniejszą
Lcdat 36 , 1 , "Czcionka 8x8" , Black , Lightgreen
A = 123
S = "Liczba:"
S = S + Str(a)
Lcdat 45 , 1 , S , Black , White
'aby wyświetlić liczby musimy ręcznie przekonwertować je na tekst
End
$include "color16x16.font"
$include "color8x8.font"
'na samym końcu programu dołą czamy pliki czcionek
6
Elektronika cyfrowa – mikrokontrolery dla początkujących BASCOM.
Piotr Rzeszut
Edycja własnych czcionek
Do pakietu BASCOM dołączono program pozwalający na edycję czcionek dla wyświetlaczy
graficznych, podobnie jak to robiliśmy w przypadku definiowania własnych znaków dla wyświetlaczy
tekstowych. Najpierw musimy aktywować edytor. Aby to zrobić klikamy kolejno Tools > Plugin
Manager.
W oknie, które się pokaże, zaznaczamy pole przy napisie fonteditor.bpl. Następnie klikamy
OK, potem kolejno na Tools > Plugins > Font Editor. Pokazuje się nam okno edytora czcionki.
7
Elektronika cyfrowa – mikrokontrolery dla początkujących BASCOM.
Piotr Rzeszut
Do wyboru w menu File mamy następujące opcje:
a) New – tworzymy nową czcionkę, w wyświetlonym oknie podajemy kolejno nazwę
czcionki (bez spacji i znaków specjalnych), wysokość i szerokość jednego znaku w
pikselach, ilość znaków (maksymalny kod ASCII, na końcu kursu została załączona tablica
kodów ASCII, która może okazać się pomocna podczas tworzenia własnych czcionek). Dla
naszego wyświetlacza koniecznie zaznaczamy opcję Color.
b) Open – otwieramy istniejącą czcionkę do edycji, w tym trybie możemy edytować znaki
istniejącej czcionki. Niestety nie możemy dodawać kolejnych znaków, ale za to możemy
zastąpić istniejące, a nieużywane symbole np. polskimi znakami diakrytycznymi.
c) Save – zapisujemy wyedytowaną czcionkę
d) Exit – wyjście z programu
Poza tym mamy do wyboru następujące opcje:
a) Clear all – wyczyść wszystkie piksele
b) Set all – zaznacz wszystkie piksele
c) Clipboard – kopiowanie do schowka (nie funkcjonuje poprawnie)
d) Suggest – zasugeruj wygląd znaku (nie zawsze działa poprawnie)
8
Elektronika cyfrowa – mikrokontrolery dla początkujących BASCOM.
Piotr Rzeszut
Dodatkowo za pomocą strzałek możemy przesuwać cały znak w polu czcionki.
Aby wybrać dany znak do edycji należy kliknąć na niego w kolumnie po lewej stronie.
Dodatkowo obok widzimy numer kodu ASCII. Poniżej zamieszczam przykładowy zrzut z edycji
znaku „ś”, a później program wykorzystujący tak przygotowaną czcionkę.
$regfile = "m644pdef.dat"
'$regfile = "m32def.dat"
'$regfile = "m16def.dat"
$baud = 9600
$crystal = 16000000
$lib "lcd-pcf8833.lbx"
Dim A As Byte
Dim S As String * 15
Const
Const
Const
Const
Const
Blue = &B00000011
Yellow = &B11111100
Red = &B11100000
Green = &B00011100
Black = &B00000000
9
Elektronika cyfrowa – mikrokontrolery dla początkujących BASCOM.
Piotr Rzeszut
Const White = &B11111111
Const Brightgreen = &B00111110
Const Lightgreen = &B01111100
Const Darkgreen = &B00010100
Const Darkred = &B10100000
Const Darkblue = &B00000010
Const Brightblue = &B00011111
Const Orange = &B11111000
'definiujemy kilka stałych z kodami kolorów
Const Mirror_x = 7
Const Mirror_y = 6
Const Ram_direction = 5
Const Line_order = 4
Const Color_mode = 3
Dim Cfg As Byte
Cfg.color_mode = 1
Cfg.line_order = 0
Cfg.ram_direction = 0
Cfg.mirror_y = 0
Cfg.mirror_x = 1
Config Graphlcd = Color , Controlport = Portc , Cs = 7 , Rs = 4 , Scl = 6
, Sda = 5
Glcdcmd &H25
Glcddata 50
Glcdcmd &H36
Glcddata Cfg
Glcdcmd &H21
'Glcdcmd &H20
Glcdcmd &H29
'dispaly on
Cls
Setfont Color8x8
S = "Cze" + Chr(125)
S = S + Chr(126)
'dodajemy wcześnie zastąpione znaki, tak aby uzyskać tekst Cześć
Lcdat 2 , 2 , S , Black , White
End
$include "color8x8v2.font"
'dołą czamy zmienioną czcionkę ze znakimi: ś - pozycja 125 i ć – 126
10
Elektronika cyfrowa – mikrokontrolery dla początkujących BASCOM.
Piotr Rzeszut
Obrazki na wyświetlaczu graficznym
Umiemy już rysować na naszym wyświetlaczu proste rysunki i wyświetlać na nim tekst.
Jednak rysowanie bardziej skomplikowanego obrazu, czy wyświetlenie zdjęcia wymagałoby nie lada
wysiłku i rysowania wszystkiego za pomocą pojedynczych punktów. Na szczęście do pakietu BASCOM
dołączony jest program LCDConvert3, który pozwala na rysowanie rysunków na komputerze (bardzo
podobnie do programu PAINT) i konwersję plików *.bmp 4, *.ico lub *.gif do formatu obsługiwanego
przez BASCOM. Aby narysować obrazek w menu Edit wpisujemy jego rozmiary i następnie rysujemy
rysunek. Aby skonwertować obraz musimy wcześniej zmienić jego rozmiar na maksymalnie 132x132,
a następnie otworzyć go klikając File > Open. Aby zapisać obrazek w obu przypadkach wybieramy File
> Convert, potem File > Save -> Save Binary i wskazujemy miejsce do zapisania danych. Sposób
wyświetlania zdjęć w programie przedstawia następujący program.
$regfile = "m644pdef.dat"
'$regfile = "m32def.dat"
'$regfile = "m16def.dat"
$baud = 9600
$crystal = 16000000
$lib "lcd-pcf8833.lbx"
Dim A As Byte
Dim S As String * 15
Const Blue = &B00000011
Const Yellow = &B11111100
Const Red = &B11100000
Const Green = &B00011100
Const Black = &B00000000
Const White = &B11111111
Const Brightgreen = &B00111110
Const Lightgreen = &B01111100
Const Darkgreen = &B00010100
Const Darkred = &B10100000
Const Darkblue = &B00000010
Const Brightblue = &B00011111
Const Orange = &B11111000
'definiujemy kilka stałych z kodami kolorów
Const Mirror_x = 7
Const Mirror_y = 6
Const Ram_direction = 5
Const Line_order = 4
Const Color_mode = 3
Dim Cfg As Byte
3
program znajdziemy w katalogu głównym programu BASCOM, możemy pobrać go także ze strony firmy MCS
Electronics
4
pliki *.bmp importują się najlepiej. Podczas zapisywania pliku *.bmp (np. w programie Photoshop) koniecznie
zaznaczmy opcje: tryb 8 bitów, kompresja RLE. Inaczej plik nie będzie mógł być konwertowany.
11
Elektronika cyfrowa – mikrokontrolery dla początkujących BASCOM.
Piotr Rzeszut
Cfg.color_mode = 1
Cfg.line_order = 0
Cfg.ram_direction = 0
Cfg.mirror_y = 0
Cfg.mirror_x = 1
Config Graphlcd = Color , Controlport = Portc , Cs = 7 , Rs = 4 , Scl = 6 , Sda
= 5
Glcdcmd &H25
Glcddata 50
Glcdcmd &H36
Glcddata Cfg
Glcdcmd &H21
'Glcdcmd &H20
Glcdcmd &H29
'dispaly on
Cls
Do
Showpic 0 , 0 , Obr2
'Wyświetlamy obrazek
'Podajemy współrz ę dne w których ma znaleźć się lewy górny róg obrazka, a
następnie etykietę wskazując ą na plik ze zdjęciem
Wait 2
Showpic 30 , 30 , Obr1
Wait 2
Showpic 0 , 0 , Obr3
Wait 2
Loop
End
Obr1:
$bgf "test.bgc"
'po etykiecie dołą czamy plik ze zdjęciem
Obr2:
$bgf "foto.bgc"
Obr3:
$bgf "napis.bgc"
12
Elektronika cyfrowa – mikrokontrolery dla początkujących BASCOM.
Piotr Rzeszut
Obsługa joysticka
Teraz przyszła pora na obsługę joysticka znajdującego się na płytce naszego wyświetlacza.
Joystick ten jest połączony za pomocom „drabinki rezystancyjnej”. Dzięki temu mierząc napięcie na
końcowym pinie możemy zidentyfikować w jaki sposób został on wciśnięty. Do odpowiednich
pomiarów wykorzystamy oczywiście przetwornik analogowo-cyfrowy. A więc do dzieła. Na początek
po prostu wyświetlimy wartość jaką przyjmuje przetwornik przy poszczególnych funkcjach.
Podłączamy pin UP z wyświetlacza do ADC0 (PA0) naszego procesora.
$regfile = "m644pdef.dat"
'$regfile = "m32def.dat"
'$regfile = "m16def.dat"
$baud = 9600
$crystal = 16000000
$lib "lcd-pcf8833.lbx"
Dim W As Word
Dim S As String * 15
Const Mirror_x = 7
Const Mirror_y = 6
Const Ram_direction = 5
Const Line_order = 4
Const Color_mode = 3
Dim Cfg As Byte
Cfg.color_mode = 1
Cfg.line_order = 0
Cfg.ram_direction = 0
Cfg.mirror_y = 0
Cfg.mirror_x = 1
Config Graphlcd = Color , Controlport = Portc , Cs = 7 , Rs = 4 , Scl = 6 , Sda
= 5
Glcdcmd &H25
Glcddata 50
Glcdcmd &H36
Glcddata Cfg
Glcdcmd &H21
'Glcdcmd &H20
Glcdcmd &H29
'dispaly on
Cls
Config Adc = Single , Prescaler = Auto , Reference = Avcc
13
Elektronika cyfrowa – mikrokontrolery dla początkujących BASCOM.
Piotr Rzeszut
Start Adc
'konfigurujemy przetwornik
Setfont Color8x8
Do
W = Getadc(0)
S = "ADC = " + Str(w)
S = S + "
"
Lcdat 2 , 2 , S , Black , White
Loop
End
$include "color8x8.font"
W moim przypadku wartości wynoszą odpowiednio:
•
1023 – Nic nie wciśnięte
•
0730 – Przyciśnięcie joysticka
•
0501 – W prawo
•
0325 – W dół
•
0142 – W lewo
•
0000 – W górę
Teraz możemy odpowiednio dobrać zakresy, dla których będziemy pewni, że dany klawisz został
wciśnięty. Nie możemy polegać na konkretnych wartościach, gdyż (jak zapewne sami zauważycie)
nieco wahają się one.
$regfile = "m644pdef.dat"
'$regfile = "m32def.dat"
'$regfile = "m16def.dat"
$baud = 9600
$crystal = 16000000
$lib "lcd-pcf8833.lbx"
Dim W As Word
Dim S As String * 15
Const Mirror_x = 7
Const Mirror_y = 6
Const Ram_direction = 5
Const Line_order = 4
Const Color_mode = 3
Dim Cfg As Byte
Cfg.color_mode = 1
Cfg.line_order = 0
14
Elektronika cyfrowa – mikrokontrolery dla początkujących BASCOM.
Piotr Rzeszut
Cfg.ram_direction = 0
Cfg.mirror_y = 0
Cfg.mirror_x = 1
Config Graphlcd = Color , Controlport = Portc , Cs = 7 , Rs = 4 , Scl = 6 , Sda
= 5
Glcdcmd &H25
Glcddata 50
Glcdcmd &H36
Glcddata Cfg
Glcdcmd &H21
'Glcdcmd &H20
Glcdcmd &H29
'dispaly on
Cls
Config Adc = Single , Prescaler = Auto , Reference = Avcc
Start Adc
'konfigurujemy przetwornik
Setfont Color8x8
Do
W = Getadc(0)
Select Case W
Case 900 To 1023 : Lcdat 2 , 2 , "None " , 0 , 255
Case 600 To 899 : Lcdat 2 , 2 , "Press" , 0 , 255
Case 400 To 599 : Lcdat 2 , 2 , "Right" , 0 , 255
Case 200 To 399 : Lcdat 2 , 2 , "Down " , 0 , 255
Case 100 To 199 : Lcdat 2 , 2 , "Left " , 0 , 255
Case 0 To 99 : Lcdat 2 , 2 , "Up
" , 0 , 255
End Select
Loop
End
$include "color8x8.font"
Całość oczywiście możemy ująć w odpowiednią funkcję, a dodatkowo dodając kilka stałych
możemy sami określać jakie wartości mają być zwracane przy poszczególnych funkcjach.
$regfile = "m644pdef.dat"
'$regfile = "m32def.dat"
'$regfile = "m16def.dat"
$baud = 9600
$crystal = 16000000
$lib "lcd-pcf8833.lbx"
15
Elektronika cyfrowa – mikrokontrolery dla początkujących BASCOM.
Piotr Rzeszut
Dim A As Byte
Dim S As String * 15
Const Mirror_x = 7
Const Mirror_y = 6
Const Ram_direction = 5
Const Line_order = 4
Const Color_mode = 3
Dim Cfg As Byte
Cfg.color_mode = 1
Cfg.line_order = 0
Cfg.ram_direction = 0
Cfg.mirror_y = 0
Cfg.mirror_x = 1
Const J_channel = 0
'kanał ADC, do którego podpięto Joystick
Const J_none = 1
Const J_up = 2
Const J_down = 3
Const J_right = 4
Const J_left = 5
Const J_press = 6
'wartości zwracane przy poszczególnych funkcjach
Declare Function Joystick()as Byte
Dim Names(6) As String * 5
Names(1) = "None "
Names(2) = "Up
"
Names(3) = "Down "
Names(4) = "Right"
Names(5) = "Left "
Names(6) = "Press"
'zapisujemy teksty w tablicach
Config Graphlcd = Color , Controlport = Portc , Cs = 7 , Rs = 4 , Scl = 6 , Sda
= 5
Glcdcmd &H25
Glcddata 50
Glcdcmd &H36
Glcddata Cfg
Glcdcmd &H21
'Glcdcmd &H20
Glcdcmd &H29
'dispaly on
Cls
Config Adc = Single , Prescaler = Auto , Reference = Avcc
Start Adc
'konfigurujemy przetwornik
16
Elektronika cyfrowa – mikrokontrolery dla początkujących BASCOM.
Piotr Rzeszut
Setfont Color8x8
Do
A = Joystick()
Lcdat 2 , 2 , Names(a) , 0 , 255
Loop
End
Function Joystick() As Byte
Local Ad As Word
Ad = Getadc(j_channel)
Select Case Ad
Case 900 To 1023 : Joystick = J_none
Case 600 To 899 : Joystick = J_press
Case 400 To 599 : Joystick = J_right
Case 200 To 399 : Joystick = J_down
Case 100 To 199 : Joystick = J_left
Case 0 To 99 : Joystick = J_up
End Select
End Function
$include "color8x8.font"
Podsumowanie
Teraz wykorzystaną wiedzę możemy wykorzystać w dowolny sposób. Załączam przykładowy
kod zegarka „analogowego” wykorzystującego naszą płytkę i wyświetlacz.
17