|
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.
Připravenou kostru tedy možné přeložit nahrát desky MCB2300. našem případě třeba dokončit modulu
kbd_drv. 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.81
realizovat hodiny, druhý bude realizovat stopky.c kbd_drv.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.ms 0;
cas. MCU integrován pomocný blok
VIC (Vectored Interrupt Controller). Tato funkce se
jmenuje print_time() očekává dva parametry. Jelikož, jádro
ARM jen dva přerušovací vstupy (IRQ FIQ).h.ss++;
if(cas.
Jde soubory kbd_drv.
Dalším krokem doplnění ovladače tlačítka využití přerušení. 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. Tento blok umožňuje jakoby sloučit všechna
přerušení jednoho použít pro jádro. Zde třeba dokončit inkrementaci proměnné obsahující čas. funkci kbd_init třeba správně nastavit hodnoty předpřipravených
.
Ovladač tlačítka již předpřipraven složce KBD skláda dvou souborů. 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é. První ukazatel řetězec char,
druhý ukazatel proměnnou typu time.
V jazyce vlastní typy deklarují klíčovým slovem typedef. ISR funkci. Pro
inkrementaci vteřin možno použít takovýto kód:
if(cas.ss 0;
}
}
Obdobným způsobem lze realizovat inkrementaci minut hodin.ms 10)
{
cas.
Prvním krokem pro zrealizování požadované aplikace může být dokončení procesu
realizující hodiny. 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.ss 60)
{
cas. Při nastavení jednotlivých přerušení tedy
třeba správně nastavit VIC