|
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. Ř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. Čas je
reprezentován celočíselným údajem, který vyjadřuje počet násobků základního
časového kvanta.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. souboru
timer_drv.c
Základem programu bude nekonečná smyčka.
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.
. 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