|
Kategorie: Diplomové, bakalářské práce |
Tento dokument chci!
Předmětem této práce je studium stávajícího vývojového řetězce pro mikroprocesor LPC23xx v předmětu MPOA. Hlavním cílem je zkoumání možností realizace nového vývojového řetězce, postaveného na GCC. Výstupy této práce jsou ukázkové aplikace s mikroprocesorem LPC2378 a GCC. Součástí vysledků jsou i návody pro studenty, jak tyto ukázkové aplikace implementovat. Ukázky zahrnují základní aplikace, RTOS aEthernet.
c kbd_drv.
Prvním krokem pro zrealizování požadované aplikace může být dokončení procesu
realizující hodiny. Pro
inkrementaci vteřin možno použít takovýto kód:
if(cas. Zde třeba dokončit inkrementaci proměnné obsahující čas. Tato funkce se
jmenuje print_time() očekává dva parametry. Po
spuštění aplikace LCD měl objevit nápis:
MPOA: 06
Cas:11:00:11:x
Přičemž místě budou neustále probíhat čísla 9. Při nastavení jednotlivých přerušení tedy
třeba správně nastavit VIC. prvním procesu task_hodiny již
realizována ukázka jak použít proměnnou time jakým způsobem realizovat výpis na
LCD. Jelikož časový údaj obecně skláda
z několika čísel různým významem, vhodné pro tuto aplikaci použít vlastní typ
proměnné. našem případě třeba dokončit modulu
kbd_drv.ss 60)
{
cas.h.c předpřipravenou
funkci pro zformátování datového typu time řetězec znaků char.c funkci pro inicializaci ovladače dále vytvořit funkci pro obsluhu přerušení,
tzv. Jelikož, jádro
ARM jen dva přerušovací vstupy (IRQ FIQ).
V jazyce vlastní typy deklarují klíčovým slovem typedef.
Jde soubory kbd_drv. První ukazatel řetězec char,
druhý ukazatel proměnnou typu time.
Dalším krokem doplnění ovladače tlačítka využití přerušení.ss 0;
}
}
Obdobným způsobem lze realizovat inkrementaci minut hodin.ms 10)
{
cas. MCU integrován pomocný blok
VIC (Vectored Interrupt Controller). ISR funkci. Připravenou kostru tedy možné přeložit nahrát desky MCB2300.81
realizovat hodiny, druhý bude realizovat stopky.ss++;
if(cas.ms 0;
cas. funkci kbd_init třeba správně nastavit hodnoty předpřipravených
. Tento blok umožňuje jakoby sloučit všechna
přerušení jednoho použít pro jádro. našem případě
již máme nadefinován typ time takto:
typedef struct
{
unsigned char hh; //hodiny
unsigned char mm; //minuty
unsigned char ss; //vteriny
unsigned char ms; //desetiny vteriny
} time;
Pro další zjednodušení úlohy máte hlavním souboru main.
Ovladač tlačítka již předpřipraven složce KBD skláda dvou souborů