PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : UART Code Problem



cteisbaer
02.08.2006, 10:56
Hallo

ich habe ein problem mit folgendem code:


//Schnittstelle
void uart_init(void)
{
/* Baudrate einstellen ( Normaler Modus ) */
UBRRH = (unsigned char) (UBRR_BAUD>>8);
UBRRL = (unsigned char) UBRR_BAUD;

/* Aktivieren des Empfängers, des Senders und des "Daten empfangen"-Interrupts */
UCSRB = (1<<RXCIE)|(1<<RXEN)|(1<<TXEN);

/* Einstellen des Datenformats: 8 Datenbits, 1 Stoppbit */
UCSRC = (1<<URSEL)|(1<<UCSZ1)|(1<<UCSZ0);
}

/* Baudrate einstellen ( Normaler Modus ) */
UBRRH = (unsigned char) (UBRR_BAUD>>8);
UBRRL = (unsigned char) UBRR_BAUD;

hier bringt der compiler die Fehlermeldung:
" ../sm.c:298: error: syntax error before '=' token"
ich habe aber ka warum :(
selbst im datenblatt des µC is das beispiel so angegeben.

ich arbeite mit avr studio und der neusten avr-gcc version.
mein µC is der Atmel atmega16

sast
02.08.2006, 13:35
was ist denn bei dir Zeile 298

Vielleicht kennt er ja UBRRH/UBRRL oder UBRR_BAUD nicht

sast

askazo
02.08.2006, 13:43
Ich kann mir eigentlich nur vorstellen, dass Du UBRR_BAUD nicht definiert hast. Ansonsten sind alle Makros über die io.h bekannt und syntaktisch ist's auch korrekt...

askazo

cteisbaer
02.08.2006, 13:52
hab das oben definiert:

#define F_CPU 16000000
#define UART_BAUD_RATE 19200
#define UBRR_BAUD = ((F_CPU/(16*UART_BAUD_RATE))-1)

cteisbaer
02.08.2006, 14:04
fehler gefunden:

#define UBRR_BAUD ((F_CPU/(16*UART_BAUD_RATE))-1)

so heissts richtig :)

sast
02.08.2006, 14:04
was ist denn nun Zeile 298

sast

edit: zu spät

cteisbaer
02.08.2006, 15:14
zeile 298 war die zeile wo der error auftrat
einfach nur die zeilenangabe im programm

sast
02.08.2006, 15:50
JA,

deshalb wollte ich ja von dir wissen welcher Code in der Zeile 298 steht.

Wenn du eine Fehlermeldung hinschreibst die sich auf eine Zeile bezieht, kann ich ja nicht anfangen zu raten welche Programmzeile bei dir 298 ist. Da ist es besser wenn du die Zeilennummern davor schreibst.

Für dieses mal hat es sich ja erledigt.

sast