Разработка, производство и продажа радиоэлектронной аппаратуры
|
Требуется программист в Зеленограде - обработка данных с датчиков; ColdFire; 40 тыс.
e-mail: jobsmp@pochta.ru
|
Какие есть особенности инициализации UART3 в atmega2560?
Отправлено
Oleg_IT (188.123.240.44) 22 февраля 2011, г. 19:08
UART0, UART1 работают, а у третьего прерывания не идут. Инициализирую UART-ы одинаково, только номера меняю. Пример для UART0
void StartTX_0(void)
{
UCSR0C |= ((1 << UCSZ00) | (1 << UCSZ01));
UBRR0L = 14; // fosc = 13.824 MHz U2X = 0 BR = 57.6k
UBRR0H = 0;
UDR0 = Buff[0];
CountTx_0 = 1;
UCSR0B &=~ (1 << UDRIE0);
UCSR0B |= ((1 << TXEN0) | (1 << UDRIE0));
}
ISR (USART0_TX_vect)
{
UCSR0B &=~ ((1 << TXCIE0) | (1 << TXEN0) | (1 << UDRIE0));
ByteFlags_0.Flag_Tx_Stop = 1;
}
ISR (USART0_UDRE_vect)
{
UDR0 = Buff [CountTx_0];
CountTx_0++;
if (CountTx_0 == sizeof(Buff))
{
UCSR0B &=~ (1 << UDRIE0);
UCSR0B |= (1 << TXCIE0);
return;
}
}
Составить ответ | Вернуться на конференцию
Ответы
- Может, с них вообще тактовая частота снята? - IdleMode (22.02.2011, 22:29:19 178.140.193.70, пустое)
- В UART2 тоже прерывания не идут. UART0, UART1 работают, UART2, UART3 нет. - Oleg_IT (22.02.2011, 21:45:15 188.123.240.44, пустое)
- A что Вы хотели этим сказать( + )? - Ереваныч (22.02.2011, 21:05:55 81.200.4.107, 152 байт)