mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik atmega16 UART


Autor: avr noop (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich bin relativ neu auf dem gebiet der avr Progrmmierung, hab bis jetzt 
durch das gute Tutorial alles verstanden. Als ich dann das senden mit 
dem UART probierte hab ich es aber nich zum laufen bekommen. Baudrate 
stimmt am Hyperterminal mit dem avr überein. Könnt ihr mir vieleicht 
sagen wo der Fehler liegt?

Code:

#include <avr/io.h>
#include <stdint.h>
#ifndef F_CPU
#define F_CPU 1000000
#endif
#define UART_UBRR_CALC(BAUD_,FREQ_) ((FREQ_)/((BAUD_)*16L)-1)
#define UART_BAUD_RATE 9600

int main(void)
{
    UBRRH = (uint8_t)( UART_UBRR_CALC( UART_BAUD_RATE, F_CPU ) >> 8 );
    UBRRL = (uint8_t)UART_UBRR_CALC( UART_BAUD_RATE, F_CPU );

    while (!(UCSRA & (1<<UDRE)))
  {}
  UDR = 'x';
}

Autor: Basti (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
haste in den registern UDR und USR die bits passend gesetzt? sieht ja 
nicht so aus

Autor: avr noop (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke für den Tipp. Jetzt sendet er zwar an den PC aber nicht das was er 
sollte. stadt "x" sendet er nun eine "8".

Der Code sieht jetzt so aus:


int main(void)
{
    UCSRB |= (1<<TXEN);
    UCSRC |= (1<<URSEL)|(3<<UCSZ0);

    UBRRH = (uint8_t)( UART_UBRR_CALC( UART_BAUD_RATE, F_CPU ) >> 8 );
    UBRRL = (uint8_t)UART_UBRR_CALC( UART_BAUD_RATE, F_CPU );

    while (!(UCSRA & (1<<UDRE)))
  {}
  UDR = 'x';
}

Autor: Stefan Wimmer (wswbln)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
...was für eine Taktquelle verwendest Du für den Mega16?

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.