USART Atmega 2560 funktioniert nicht

Gast #1207294
Lesenswert?

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;
}

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren