Zadatak 8 - Ispisivanje slova i znamenki
Oprema:
- LCD display
- žice
- protoboard
Zadatak je napraviti potprogram za ispisivanje slova i znamenki na LCD zaslon. Potprogram preko stoga prima više parametara:
- Pozicija X
- Pozicija Y
- Orijentacija (0 ili 1)
- Boja znaka
- Boja pozadine znaka
- Kod znaka (može biti ASCII ili po izboru)
Napomene:
- Svaki znak je potrebno definirati u memoriji
- Svi znakovi su osnovne veličine od 8x8 piksela
- Za opis jednog znaka potrebno je 8 bajtova (8x8 bitova - piksela) od kojih svaki bit određuje ispunjava li se određeni piksel bojom znaka ili pozadine
- U datoteci s primjerima postoji program koji koristi LCD, rutinu koja inicijalizira LCD se može preuzeti kompletno od tog rješenja
U memoriji se nalaze praznina, znakovi engleske abecede, znamenke i boje.
Osnovna veličina je 8x8 piksela.
Iz primjera je preuzeta rutina za inicijalizaciju lcd-a i potprogram za crtanje pravokutnika.
# | Objašnjenje |
---|---|
1 | Pretpregled znaka za ispis |
2 | Trenutni redak |
3 | Trenutni stupac |
4 | Trenutni faktor skaliranja |
5 | Zastavica za način rada |
6 | Zastavica za omogućen ispis |
7 | Zastavica za spremanje orijentacije |
Pritisnuti sva 4 gumba odjednom u bilo kojem načinu rada za reset.
Položaj switcheva definira načine rada (SW1 - lijevi bit, SW0 - desni bit)
Gumb | Funkcija |
---|---|
btn3 | Odaberi prethodni znak u memoriji |
btn2 | Odaberi sljedeći znak u memoriji |
btn1 | Komplementira omogućavanje upisa (UI zastavica P) |
btn0 | Omogući upis i upiši znak |
Gumb | Funkcija |
---|---|
btn3 | Odaberi prethodnu boju pozadine (background) |
btn2 | Odaberi sljedeću boju pozadine (background) |
btn1 | Odaberi prethodnu boju znaka (foreground) |
btn0 | Odaberi sljedeću boju znaka (foreground) |
Gumb | Funkcija |
---|---|
btn3 | Smanji redak za 1, odnosno pomakni se gore za 8 piksela |
btn2 | Povećaj redak za 1, odnosno pomakni se dolje za 8 piksela |
btn1 | Smanji stupac za 1, odnosno pomakni se lijevo za 8 piksela |
btn0 | Povećaj stupac za 1, odnosno pomakni se desno za 8 piksela |
Gumb | Funkcija |
---|---|
btn3 | Povećaj faktor skaliranja za 1 |
btn2 | Smanji faktor skaliranja za 1 |
btn1 | Zrcali s obzirom na x-os |
btn0 | Zrcali s obzirom na y-os |
- btn1 i btn2 ili btn3 i btn4 - spremanje orijentacije on/off (UI zastavica O)
Operacije koje koriste više od jednog gumba su dodane u letu. Prilikom pritiska jednog gumba prije nego što se registrira drugi može doći do promjene parametara. Ako je uključena zastavica P, znak će se ispisivati prilikom svake promjene parametara, ako je velik faktor skaliranja, gumbi nakon prvog se neće registrirati dok ne završi ispisivanje znaka. Razlog ovome je nedostatak slobodnih gumba. Prije korištenja operacija s više gumba treba isključiti zastavicu P, a nakon treba provjeriti parametre.