|
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.
této úloze bude systémový čas generován pomocí přerušení
vyvolaného časovačem Základní funkce jsou modulu timer_drv. souboru
timer_drv. Řešení bez ošetření zákmitů by
mohlo vypadat následovně:
unsigned char cnt=0;
/* LCD */
lcd_init();
lcd_clrscr();
/* KBD */
kbd_init();
lcd_puts("0x00");
while (1)
{
while (!b0psh()); /*čekání stisk*/
cnt++;
lcd_gotoxy(0,0);
lcd_puts("0x");
lcd_putc(NumToHex((cnt 0xF0) 4));
lcd_putc(NumToHex(cnt 0x0F));
while (b0psh()); /*čekání uvolnění*/
}
Úkol Stavový automat
Použití stavových automatů vyžaduje existenci systémových hodin.c
Základem programu bude nekonečná smyčka.75
Zpoždění
Pro pokusy klávesnicí vhodné mít dispozici funkci pro zpoždění.h předpřipravené makro pro výpočet času.
. Čas je
reprezentován celočíselným údajem, který vyjadřuje počet násobků základního
časového kvanta. Možné
řešení může být následující:
#define DCONST 6000U
void delay_ms(unsigned int ms) {
volatile unsigned int i;
for(; ms; ms--)
for(i=0; i<DCONST; i++);
}
Výpis proměné LCD
Pro výpis proměné LCD již předpřipraveno makro pomocná tabulka.
const char hex[16] '0','1','2','3','4','5','6','7',
'8','9','A','B','C','D','E','F' };
#define NumToHex(i) (hex[(i)])
S využitím tohoto makra pak zápis proměnné unsigned char LCD může vypadat
takto:
lcd_putc(NumToHex((cislo 0xF0) 4));
lcd_putc(NumToHex(cislo 0x0F));
Hlavní modul main