Ponawiam temat. Bo nie wiem, co może być przyczyną, że nie mogę wpisać nic do rejestru UCSRC. Programuje przez JTAG. I czy to ATmega 16,czy 32 to zawsze UCRSC==0x00
Kod:
Kod:
Kod:
90: UCSRC = _BV(URSEL)|_BV(USBS)|_BV(UCSZ1)|_BV(UCSZ0);
+00000C07: E88E LDI R24,0x8E Load immediate
+00000C08: BD80 OUT 0x20,R24 Out to I/O location Kod:
void uart_init()
{
ubrr=MY_UBRR;
/* 9600 bit/s */
UBRRH = (unsigned char)(ubrr>>8);
UBRRL = (unsigned char)ubrr; // 25 -> 4000000
/* RxD=>ON; ISR(koniec odbioru), */
/* 8-bit dane, 2-bit stopu, brak bitu parzystosci */
UCSRC = _BV(URSEL)|_BV(USBS)|_BV(UCSZ1)|_BV(UCSZ0);
UCSRB = _BV(RXEN)|_BV(RXCIE)|_BV(TXEN);
RS485_INIT(); // DDR - wyjscie
RS485_OUT(); // DE/RE w stan niski - Przyjmowanie danych
ALBITRAZ_UART_INIT(); // DDR - wyjscie (podciagniete rezystorem
ALBITRAZ_UART_HIGH(); //stan wysoki - magistrala wolna)
}