Дорый день!
Немного удивляет поведение юарта в этом МК.
Исходник
Код
void main( void )
{
UCSRA=0x00;//UART init
UCSRB=0x98;
UCSRC=0x86;
UBRRH=0x00;
UBRRL=0x5F;
DDRC |=0x03;
DDRD |=0x80;
PORTC=0x00;
asm("sei");
while(1)
{
}
}
void USART_Transmit( unsigned char data )
{
while ( !( UCSRA & (1<<5)) );
UDR = data;
}
Обработчик
Код
#pragma vector = USART_RXC_vect
__interrupt void USART_Receive(void)
{
PORTD |=0x80;
USART_Transmit(UDR);
PORTD &=~0x80;
}
Прикол в том что если с терминала ему слать данные то он нормально отвечает то что и принял. А вот строки
Код
PORTD |=0x80;
и
Код
PORTD &=~0x80;
он обрабатывает только при первом принятом символе. Дльше никаких дёрганий.
В чем может быть Ошибка.
Спасиба!!!