ATmega2561 -> USART

OP #4856322
Hallo zusammen,

ich versuche gerade die Kommunikation zwischen meinem Laptop und meinem 
ATmega2561 hinzubekommen. Dazu halte ich mich an das Beispiel von Atmel.

Wenn ich Zeichen von hterm zum ATmega2561 sende, bekomme ich immer 
kleine Quadrate zurück. Zumindest die Anzahl der Zeichen stimmt mit der 
Anzahl der gesendeten Zeichen überein.

Mein Programm:

#include <avr/io.h>

#define FOSC 7372800 // Clock Speed
#define BAUD 9600
#define MYUBRR (FOSC/16/BAUD-1)

void USART_Init( unsigned int ubrr){
  /* Set baud rate */
  UBRR0H = (unsigned char)(ubrr>>8);
  UBRR0L = (unsigned char)ubrr;
  /* Enable receiver and transmitter */
  UCSR0B = (1<<RXEN0)|(1<<TXEN0);
  /* Set frame format: 8data, 1stop bit */
  UCSR0C = (3<<UCSZ00);
} // USART_Init

void USART_Transmit( unsigned char data )
{
  /* Wait for empty transmit buffer */
  while ( !( UCSR0A & (1<<UDRE0)) )
  ;
  /* Put data into buffer, sends the data */
  UDR0 = data;
}

unsigned char USART_Receive( void )
{
  /* Wait for data to be received */
  while ( !(UCSR0A & (1<<RXC0)) )
  ;
  /* Get and return received data from buffer */
  return UDR0;
}

int main(void)
{
  USART_Init(MYUBRR);

  /* Replace with your application code */
  while (1)
  {
    USART_Transmit(USART_Receive());
  }
}

Hat jemand eine Idee?

Vielen Dank.

Grüße

datatom
OP #4856440
LOW.CKDIV8 hat keinen Haken. Mehr Fuses-Einstellungen kenne ich leider 
nicht.

Ich habe festgestellt, dass, wenn ich bei hterm den Wert Data von 8 auf 
7 ändere, ich beim Senden von Zahlen die richtige Zahl zurück erhalte. 
Bei Buchstaben erhalte ich zwar auch immer den richtigen Buchstaben 
zurück, nur dass er manchmal als Großbuchstabe zurück kommt, obwohl ich 
einen Kleinbuchstaben gesendet habe.
OP #4856777
Ich habe einen Quarz, welchen ich auf mein Board aufstecken kann. Der 
Quarz arbeitet mit 7,3728 MHz.

Sehe ich das richtig, dass ich bei der Fuse-Einstellung LOW.SUT_CKSEL 
folgende Auswahl treffen kann?

Ext. Crystal Osc. 3.0 - 8.0 MHz; Start-up time: 16K CK + 65MS

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 9 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.