Cus,
snažím se přejít z ATmega8 na ATmega168, ale nemůžu to pořád nastavit.
Původně to bylo takhle.
void uart_putc(unsigned char data )
{
while ( !( UCSRA & (1<<UDRE)) )
;
UDR = data;
}
// get char
unsigned char uart_getc( void )
{
/* Wait for data to be received */
while ( !(UCSRA & (1<<RXC)) )
;
/* Get and return received data from buffer */
return UDR;
}
---
/***** inicializace uart *****/
UCSRA = 0x00;
UBRRH = 0x00;
UBRRL = 51; // 9600 baud
UCSRB |= (1<<TXEN) | (1<<RXEN);
UCSRC = 0x86; // ramec dat: 8 datovych, 1 stop bit, bez parity
TIMSK = 0b00010001; //bit 0 - povolení přerušení při přetečení od timeru 0, bit 4 - povolení přerušení timer 1
TCCR0 = 5; //předdělička na 1024, timer 0
TCCR1B = 0b00001010; //předdělička na 8(bit 1); (bit 3) nastavení CTC modu
OCR1A = 100; // 460 při 18,xx MHz, 199 při 8 MHz
TCCR2 = 0b00000100; // předdělicka timeru 2 na 64
----
TIMSK ^= 0b01000000; //povolení přerušení od timeru 2
TIMSK &= (~(1 << 6)); //zakázání přerušení od přetečení timeru 2