mikrocontroller.net

Forum: Compiler & IDEs ATMEGA32 UART mag nich


Autor: Tobias Müller (twam) Flattr this
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo!

Hab eine kleine Testroutine gebastelt und meinen UART zum Alphabet
aufsagen zu überreden.
#define FCPU 8000000L
#define UART_BAUD_RATE 9600
#define UART_BAUD_CALC(UART_BAUD_RATE,F_OSC)
((F_OSC)/((UART_BAUD_RATE)*16L)-1)

#include <inttypes.h>
#include <stdio.h>
#include <stdlib.h>
#include <avr/io.h>

int uart_putc(unsigned char c)
{
    while (!(UCSRA & (_BV(UDRE))));
    UDR = c;
    return 0;
}

int main( void )
{

    UCSRB |= _BV(TXEN);
    UCSRC |= _BV(URSEL)|_BV(UCSZ0);

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

    for (int i='A';i<'A'+26;i++) {
        uart_putc(i);
    }

}

Am PC kommt aber nur Ah"Et!IibMzP5QUuaY an. Dort sind 9600 Baud mit
8N1 eingestellt. Was mach ich denn falsch?

Grüße
  Tobias

Autor: Tobias Müller (twam) Flattr this
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

#define FCPU statt F_CPU war/ist übrigens nicht der Grund, da F_CPU eh
im makefile auf 8000000 gesetzt wird.

Grüße

Autor: Tobias Müller (twam) Flattr this
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

ich habs endlich gefunden:

    UCSRC |= _BV(URSEL)|_BV(UCSZ0)|_BV(UCSZ1);

Wenn man 8 bit möchte. :)

Autor: Jörg Wunsch (dl8dtl) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Am besten UCSRC gar nicht anfassen, das schützt vor
schieß-dir-ins-Knie-Fehlern.  Die Voreinstellung ist
(vernünftigerweise) 8n1 als Frame-Format.

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.