This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| et:examples:display:lcd_graphic [2009/12/22 16:52] – mikk.leini | et:examples:display:lcd_graphic [2020/07/20 12:00] (current) – external edit 127.0.0.1 | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| + | < | ||
| + | ====== Graafiline LCD ====== | ||
| + | //Vajalikud teadmised: [HW] [[et: | ||
| + | |||
| + | ===== Teooria ===== | ||
| + | |||
| + | Graafiline LCD on vedelkristall-ekraan, | ||
| + | |||
| + | [{{ : | ||
| + | |||
| + | Monokromaatilised graafilised ekraanid on tavaliselt passiivmaatriksiga, | ||
| + | |||
| + | ~~CL~~ | ||
| + | |||
| + | ===== Praktika ===== | ||
| + | Kodulabori III seeria kasutajaliidesele on paigaldatud 128 x 160 piksliga 1.8" täisvärviline TFT LCD ekraan. Ekraani juhib Sitronixi ST7735 LCD kontroller, mida juhtakse üle SPI siini. Lisaks on juhitav ekraani taustavalgus, | ||
| + | |||
| + | /* Kodulabor 2 info: | ||
| + | Kodulabori komplekti kuulub mõõtudega 84 x 48 pikslit monokromaatiline graafiline LCD ekraan. See ekraan on sama, mida kasutatakse Nokia 3310 mobiiltelefonides. Ekraani küljes on Philipsi PCD8544 kontroller, millega saab suhelda läbi SPI-taolise järjestikliidese. Eraldi juhitav on veel ekraanimooduli taustvalgustus. Ekraaniga suhtlemine pole kuigi keeruline, kuid funktsioonide suure arvu tõttu pole siinkohal seda lahti seletatud. Kodulabori teegis on olemas funktsioonid selle kasutamiseks.*/ | ||
| + | |||
| + | Graafilise LCD teegi funktsioonid on sarnased alfabeetilise LCD omadele. Esmalt tuleb ekraan algväärtustada funktsiooniga // | ||
| + | |||
| + | Järgnevalt on toodud näide aja loenduri kohta. Programm loendab sekundeid (ligikaudu), | ||
| + | |||
| + | < | ||
| + | |||
| + | <code c> | ||
| + | // | ||
| + | // Kodulabori graafilise LCD kasutamise näide. | ||
| + | // LCD-le kuvatakse kellaaeg programmi algusest alates. | ||
| + | // | ||
| + | #include < | ||
| + | #include < | ||
| + | #include < | ||
| + | |||
| + | // | ||
| + | // Põhiprogramm | ||
| + | // | ||
| + | int main(void) | ||
| + | { | ||
| + | int seconds = 0; | ||
| + | char text[16]; | ||
| + | |||
| + | // LCD ekraani algseadistamine | ||
| + | lcd_gfx_init(); | ||
| + | |||
| + | // Ekraani puhastamine | ||
| + | lcd_gfx_clear(); | ||
| + | |||
| + | // Taustavalgustuse tööle lülitamine | ||
| + | lcd_gfx_backlight(true); | ||
| + | |||
| + | // Programmi nime kuvamine | ||
| + | lcd_gfx_goto_char_xy(1, | ||
| + | lcd_gfx_write_string(" | ||
| + | |||
| + | // Lõputu tsükkel | ||
| + | while (true) | ||
| + | { | ||
| + | // Sekundite teisendamine kellaaja kujule | ||
| + | // hh:mm:ss | ||
| + | sprintf(text, | ||
| + | (seconds / 3600) % 24, | ||
| + | (seconds / 60) % 60, | ||
| + | seconds % 60); | ||
| + | |||
| + | // Kellaaja teksti kuvamine | ||
| + | lcd_gfx_goto_char_xy(3, | ||
| + | lcd_gfx_write_string(text); | ||
| + | |||
| + | // Sekundi suurendamine 1 võrra | ||
| + | seconds++; | ||
| + | |||
| + | // Riistvaraline paus 1000 millisekundit | ||
| + | hw_delay_ms(1000); | ||
| + | } | ||
| + | } | ||
| + | </ | ||