Добрый день!
Два исходника из примеров, идущих с Keil:
1. Для AT #include <91M40800.H> /* AT91M40800 definitions */ #define CR 0x0D void init_serial (void) { /* Initialize Serial Interface */ PIO_PDR = (1<<PIORXD0) | (1<<PIOTXD0); /* Enable RXD0 and TXD0 */ US0_MR = US_CHRL_8 | US_PAR_NO; /* 8 bits, no Parity, 1 Stop bit */ US0_BRGR = 260; /* 9600 Baud Rate @ 40 MHz Clock */ US0_CR = US_RXEN | US_TXEN; /* Enable RX and TX */ }
2. Для LPC #include <LPC21xx.H> /* LPC21xx definitions */ #define CR 0x0D oid init_serial (void) { /* Initialize Serial Interface */ PINSEL0 = 0x00050000; /* Enable RxD1 and TxD1 */ U1LCR = 0x83; /* 8 bits, no Parity, 1 Stop bit */ U1DLL = 97; /* 9600 Baud Rate @ 15MHz VPB Clock */ U1LCR = 0x03; /* DLAB = 0 */ }
Как избавиться от "нелепых" констант? 1. Можно забить свой заголовочник для каждого чипа. 2. Для инициализации "железа" можно воспользоваться Conf Wizard`ом, а как быть в обработчиках прерываний.
Что посоветуете?
|