Fórum témák
» Több friss téma |
Cikkek » Karakteres LCD kijelző driver AVR és PIC mikrovezérlőkhöz Karakteres LCD kijelző driver AVR és PIC mikrovezérlőkhöz
Szerző: benjami, idő: Jan 17, 2013, Olvasva: 27699, Oldal olvasási idő: kb. 1 perc
A ’Hello world’ program Kiindulásnak írjunk egy programot, ami a kijelzőn megjeleníti a "Hello world" szöveget (azért maradtam az angol verziónál, mert az ékezetes betűket sajnos nem tartalmazza a standard karakterkészlet). Miután a charlcd.h-ban elvégeztük a konfigurációs beállításokat, rátérhetünk a főprogramunkra (a cikkben a könyvtári és a mikrovezérlőcsaládtól függő inlude fájlok, valamint a main függvény különböző típusú visszatérési értéke miatti eltérések ismertetésétől eltekintek, a letölthető mintaprogramokban ezek megtekinthetőek). Egyszeri frissítési üzemmódban (LCDMODEONCE…) az LcdText feltöltése után meg kell hívni az LcdRefreshAll() függvényhívást. (C18 fordító esetében a memcpy helyett a memcpypgm2ram függvényt használjuk!)
Megszakítás nélküli folyamatos frissítési üzemmódban (LCDMODECONTBUSY) a végtelen ciklusba be kell iktatni egy LcdProcess() függvényhívást.
Megszakításos folyamatos frissítési üzemmódban (LCDMODECONTIRQ) üzemmódban csak az LcdText tömböt kell feltölteni, a többit elintézi a driver.
Mivel a PIC16 és PIC18 vezérlők nem használnak a megszakításhoz ugrótáblázatot, manuálisan kell beilleszteni a közös megszakításkiszolgáló függvényünkbe. Ezt egyszerűen egy LcdIntProcess() függvényhívással tehetjük meg. PIC18 esetén az inicializáló függvény beállítástól függően engedélyezheti a kétszintű megszakítás használatát, a függvényhívást a beállított prioritási szint megszakításkiszolgáló függvényébe kell beilleszteni (ha nem használjuk a többszintű megszakítást, akkor a magas prioritásúba). Nem szükséges a megszakítás forrásának szelektálásával bajlódnunk, ezt az LcdIntProcess() megteszi helyettünk (charlcd.h-ban megnézhető hogyan). Ugyanazt a közös megszakításkiszolgáló függvényt természetesen a többi megszakítás kiszolgálására is felhasználhatjuk.
PIC18 esetén:
A cikk még nem ért véget, lapozz! Értékeléshez bejelentkezés szükséges! |
Bejelentkezés
Hirdetés |