Forum: Mikrocontroller und Digitale Elektronik USART Atmega 2560 funktioniert nicht


von Casio (Gast)


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

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.