Добрый день!
Два исходника из примеров, идущих с 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`ом, а как быть в обработчиках прерываний.
Что посоветуете?