Gast
#1207294
Hi,
habe ein Problem mit dem Atmega2560 und dem USART2. Egal was ich mach es
kommt nix gescheides an am PC - nur 0x00 und 0x80, das wars. Ich nutz
den 2560 auf dem STK600. Ich bin mir eigentlich sicher, dass alles
stimmt, Taktrate ist auch richtig auf 16MHz auf dem Board eingestellt.
Vielleicht kann mir jemand weiterhelfen.
Danke.
casio
#include <avr/io.h>
#define F_CPU 16000000
#define BAUD 38400
#define UBRRXX (F_CPU/16/BAUD-1)
void USART_transmit(unsigned char);
void USART_Init(void);
int main(void)
{
USART_Init();
for(;;)
{
USART_transmit('A');
}
return 0;
}
void USART_Init(void)
{
PRR1 &= ~(1<<PRUSART2); //Power reduction usart2 off
UBRR2H = (unsigned char) (UBRRXX>>8); //Baudrate
UBRR2L = ((unsigned char) UBRRXX);
UCSR2B = (1<<TXEN2); //TX enable
UCSR2C = 0x06; //8N1
}
void USART_transmit(unsigned char data)
{
while (!( UCSR2A & (1<<UDRE2)));
UDR2 = data;
}