www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik UART Fehlermeldung


Autor: Timo (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,
Möchte ein Zeichen "x" an die RS232 Schnittstelle senden und es mit 
einen Programm auslesen. Dass Programm auf dem PC geht zu 100%. Ich habe 
laut Toturial folgenden Quellcode für meinen ATMega16 geschrieben:
#include <avr/io.h>

#ifndef F_CPU
#define F_CPU 8000000UL  //Einstellen der Oszillator - Frequenz in Hz 
#endif              


#define UART_UBRR_CALC(BAUD_,FREQ_) )((FREQ_)/((BAUD_)*16L)-1

#define UART_BAUD_RATE 9600 //Einstellen der Baudrate 


int main (void)
{
//Initialisieren des UART´s 


UCSRB  |=  (1<<TXEN); //UART TX einschalten
UCSRC  |=  (1<<URSEL)  |  (3<<UCSZ0); //Asynchron 8N1

//Einstellen der Baudregister

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

//Senden einzelner Zeichen

while (!(UCSRA & (1<<UDRE)))  //Warten, bis das Senden möglich ist
{

}



UDR    =  'x'; //Schreiben des Zeichens 'x' auf die RS232 - Schnittstelle

return (0);

}


Ich kann ihn aber nicht übersetzten. Bekomme immer Fehlermeldungen. Was 
mache ich falsch?

Autor: Michael U. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

immer diese C-Übungen für mich (nur ASM-Programmierer...) ;)

Zähle und sortiere mal Deine Klammern
#define UART_UBRR_CALC(BAUD_,FREQ_) )((FREQ_)/((BAUD_)*16L)-1

und auch hier mit der Ersetzung:
UBRRH  =  (uint8_t)(UART_UBRR_CALC(UART_BAUD_RATE, F_CPU) >> 8);

zumindest mault der Compiler bei mir darüber.

Gruß aus Berlin
Michael


Autor: Timo (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke. Es waren die Klammern :D

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.