[an error occurred while processing this directive]
|
//--------------------------------------------------------------------------------------------------
// Настройка UART0
void Uart0Init (unsigned int baudrate)
{
// Разрешаю ножки
PINSEL0 = (PINSEL0 & 0xFFFFFFF0) | 0x00000005;
// Очищаю регистры
U0IER = 0x00;
U0IIR;
U0RBR;
U0LSR;
// Скорость
U0LCR = (1 << U0LCR_Divisor_Latch_Access_Bit_BIT); // Режим смены коеффициентов деления
baudrate = Fpclk / (baudrate * 16); // Коеффициенты деления
U0DLL = baudrate & 0xFF;
U0DLM = (baudrate >> 8) & 0xFF;
// Прочие параметры
U0LCR = 3; // 8бит/символ, 1стоп, без четности, без брейка
U0FCR = 7; // Разрешаю и сбрасываю FIFO, прерывание по первому поступившему байту
// Обработчик прерывания
ctl_set_isr (
UART0_INT,
PRIORITY_UART0INT,
CTL_ISR_TRIGGER_FIXED,
Uart0Isr,
0);
// Разрешаю вызывать прерывания
U0IER = 1; // Только по приему
// Разрешаю обрабатывать прерывания
ctl_unmask_isr(UART0_INT);
E-mail: info@telesys.ru