Есть несколько вопросов, просветите, пожалуйста. Похоже стою на асфальте в лыжах...
Связка Протеус + Атмега + AVRLib. Проблема с UART1.
Скажу честно, воспользовался библиотечкой ARVLib, очень удобной, нужно заметить.
Есть в ней функции инициализации UART:
Код
void uart0Init(void)
{
// initialize the buffers
uart0InitBuffers();
// initialize user receive handlers
UartRxFunc[0] = 0;
// set default baud rate
uartSetBaudRate(0, UART0_DEFAULT_BAUD_RATE);
// enable RxD/TxD and interrupts
outb(UCSR0B, BV(RXCIE)|BV(TXCIE)|BV(RXEN)|BV(TXEN));
// initialize states
uartReadyTx[0] = TRUE;
uartBufferedTx[0] = FALSE;
// clear overflow count
uartRxOverflow[0] = 0;
// enable interrupts
sei();
}
void uart1Init(void)
{
// initialize the buffers
uart1InitBuffers();
// initialize user receive handlers
UartRxFunc[1] = 0;
// set default baud rate
uartSetBaudRate(1, UART1_DEFAULT_BAUD_RATE);
// enable RxD/TxD and interrupts
outb(UCSR1B, BV(RXCIE)|BV(TXCIE)|BV(RXEN)|BV(TXEN));
// initialize states
uartReadyTx[1] = TRUE;
uartBufferedTx[1] = FALSE;
// clear overflow count
uartRxOverflow[1] = 0;
// enable interrupts
sei();
}
{
// initialize the buffers
uart0InitBuffers();
// initialize user receive handlers
UartRxFunc[0] = 0;
// set default baud rate
uartSetBaudRate(0, UART0_DEFAULT_BAUD_RATE);
// enable RxD/TxD and interrupts
outb(UCSR0B, BV(RXCIE)|BV(TXCIE)|BV(RXEN)|BV(TXEN));
// initialize states
uartReadyTx[0] = TRUE;
uartBufferedTx[0] = FALSE;
// clear overflow count
uartRxOverflow[0] = 0;
// enable interrupts
sei();
}
void uart1Init(void)
{
// initialize the buffers
uart1InitBuffers();
// initialize user receive handlers
UartRxFunc[1] = 0;
// set default baud rate
uartSetBaudRate(1, UART1_DEFAULT_BAUD_RATE);
// enable RxD/TxD and interrupts
outb(UCSR1B, BV(RXCIE)|BV(TXCIE)|BV(RXEN)|BV(TXEN));
// initialize states
uartReadyTx[1] = TRUE;
uartBufferedTx[1] = FALSE;
// clear overflow count
uartRxOverflow[1] = 0;
// enable interrupts
sei();
}
С UART0 все хорошо... инициализируется, работает.. никаких проблем вообще...
С UART1 все плохо


Стоит убрать при инициализации 1-го UART'а BV(TXCIE), т.е. разрешение прерывания на передачу, как все начинает работать...
Собственно вопрос, в чем глупость-то? Ведь 0-й работает и с вкюченным TX прерыванием...

Или это особенность Протеуса?
Спасибо!