Fehlermeldung WinAVR

Gast #839316
Lesenswert?

Fange grad an mit der ganzen Programmiererei, also verzeiht mir bitte 
diese Frage. Für euch wird sie wohl das einfachste der welt sein.
Kann mir diese Fehlermeldungen von WinAVR erklären?

#include <avr/io.h>
#include <stdio.h>
#define  Takt 8000000UL
#define BAUD 9600UL
void inituart(void)
{
unsigned char x;
#ifdef UBRRL
UBRRL = (TAKT / (16 * BAUD)) -1
UCSRB |= (1 << TXEN) | (1<< RXEN);
UCSRC |= (1 << URSEL) | (1<< UCSZ1) | (1<< UCSZ0);
#else
UBRR = (TAKT / (16 * BAUD)) -1
UCR |= (1 << TXEN) | (1 << RXEN);
#endif
x = UDR
}
int putch (char X)
{
#ifdef UCSRA
while ( !(UCSRA & (1 << UDRE)));
#endif
UDR = x;
return 0;
}
int getch (void)
{
#ifdef UCSRA
while (!(UCSRA & (1 << RXC)))
#else USRA
while (!(USRA & (1 << RXC)))

#endif
return UDR;
}

int getche (void)
{
unsigned char x;
x = getch();
putch (x);
return x;
}


UART.c:1: error: expected identifier or '(' before '<' token
UART.c:1:51: warning: unknown escape sequence '\P'
UART.c:1:51: warning: unknown escape sequence '\P'
UART.c:1:51: warning: unknown escape sequence '\N'
UART.c:1:51: error: incomplete universal character name \UA
make.exe: *** [UART.o] Error 1

Hoffentlich kann man das überhaupt jetzt alles erkennen.
Und gleich noch eine Frage.
Ich möchte mit dem Controller (AT90USB) per USART eine Anfrage an ein 
Modul schicken. Kann ich den dafür genutzten HEX-Wert gleich bei z.B. 
UDR = x; eintragen?
Dank euch schon mal.
Gast #839337
Lesenswert?

Hab jetzt die fehlenden ; ersetzt. Waren ja doch nen ganzer Sack voll.
Die Fehlermeldungen sind aber geblieben und sogar noch welche dazu 
gekommen.

UART.c:1: error: expected identifier or '(' before '<' token
UART.c:1:51: warning: unknown escape sequence '\P'
UART.c:1:51: warning: unknown escape sequence '\P'
UART.c:1:51: warning: unknown escape sequence '\N'
UART.c:1:51: error: incomplete universal character name \UA
UART.c:1:145: warning: unknown escape sequence '\P'
UART.c:1:145: warning: unknown escape sequence '\P'
UART.c:1:145: warning: unknown escape sequence '\N'
UART.c:1:145: warning: unknown escape sequence '\L'
make.exe: *** [UART.o] Error 1


Kann man bei WinAVR nicht die Zeilen sehen wo der Fehler steckt? Dieses 
1:51: scheint ja nicht die Zeile zu sein.
Gast #839419
Lesenswert?

>Hab ihn mal als HTML exportiert. Richtig so?

Nein, natürlich nicht. Exportiert von wo aus ?

Die erste Fehlermeldung kommt vermutlich von dieser Zeile

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"

Du kannst mit Winavr keinen HTML Code compilieren !
Gast #839426
Lesenswert?

Da ist dann wohl was schief gegangen mit dem exportieren.
So wie hier steht er in WinAVR und mir ist sehr wohl klar, dass ein 
Compiler mit Metadaten nichts anfangen kann. Das er diese nun ausspuckt 
konnte ich vorher nicht wissen.

#include <avr / io.h>
#include <stdio.h>
#define  TAKT 8000000UL
#define BAUD 9600UL
void inituart(void)
{
unsigned char x;
#ifdef UBRRL
UBRRL = (TAKT / (16 * BAUD)) -1;
UCSRB |= (1 << TXEN) | (1<< RXEN);
UCSRC |= (1 << URSEL) | (1<< UCSZ1) | (1<< UCSZ0);
#else
UBRR = (TAKT / (16 * BAUD)) -1;
UCR |= (1 << TXEN) | (1 << RXEN);
#endif
x = UDR;
}

int putch (char X)
{
#ifdef UCSRA
while ( !(UCSRA & (1 << UDRE)));
#endif
UDR = x;
return 0;
}

int getch (void)
{
#ifdef UCSRA
while (!(UCSRA & (1 << RXC)));

#else USRA
while (!(USRA & (1 << RXC)));
#endif
return UDR;
}

int getche (void)
{
unsigned char x;
x = getch();
putch (x);
return x;
}
Gast #839442
Lesenswert?

So viele Zeile hat die datei auch eigentlich nicht. Irgendetwas ist 
jetzt wirklich mächtig schief gegangen. Die Datei mit dem Quelltext 
sollte doch eigentlich ne ganz normale .c Datei. Oder? Wenn ich die 
öffne, dann kommt folgendes <Workspace name="New Project Group"><Project 
path="D:\Programmierung PulsOxi\Programm PulsOxi\Neuer 
Ordner\UART.pnproj"></Project></Workspace>

Daher dann auch die Fehler. Nur woher kommt das?
Gast #839449
Lesenswert?

Wie schon erwähnt, keine Ahnung was da schief gegangen ist.

Nochmal alles von vorn und jetzt kommt das raus.

#include <avr/io.h>
#include <stdio.h>
#define TAKT 8000000UL
#define BAUD 9600UL
void inituart(void)
{
unsigned char x;
#ifdef UBRRL
UBRRL = (TAKT / (16 * BAUD)) -1;
UCSRB |= (1 << TXEN) | (1<< RXEN);
UCSRC |= (1 << URSEL) | (1<< UCSZ1) | (1<< UCSZ0);
#else
UBRR = (TAKT / (16 * BAUD)) -1;
UCR |= (1 << TXEN) | (1 << RXEN);
#endif
x = UDR;
}
int putch (char X)
{
#ifdef UCSRA
while ( !(UCSRA & (1 << UDRE)));
#endif
UDR = x;
return 0;
}
int getch (void)
{
#ifdef UCSRA
while (!(UCSRA & (1 << RXC)));
#else USRA
while (!(USRA & (1 << RXC)));

#endif
return UDR;
}

int getche (void)
{
unsigned char x;
x = getch();
putch (x);
return x;
}


UART.c:1:21: warning: avr/io.h: No such file or directory
UART.c:2:20: warning: stdio.h: No such file or directory
UART.c: In function 'inituart':
UART.c:13: error: 'UBRR' undeclared (first use in this function)
UART.c:13: error: (Each undeclared identifier is reported only once
UART.c:13: error: for each function it appears in.)
UART.c:14: error: 'UCR' undeclared (first use in this function)
UART.c:14: error: 'TXEN' undeclared (first use in this function)
UART.c:14: error: 'RXEN' undeclared (first use in this function)
UART.c:16: error: 'UDR' undeclared (first use in this function)
UART.c: In function 'putch':
UART.c:23: error: 'UDR' undeclared (first use in this function)
UART.c:23: error: 'x' undeclared (first use in this function)
UART.c:30:7: warning: extra tokens at end of #else directive
UART.c: In function 'getch':
UART.c:31: error: 'USRA' undeclared (first use in this function)
UART.c:31: error: 'RXC' undeclared (first use in this function)
UART.c:34: error: 'UDR' undeclared (first use in this function)
make.exe: *** [UART.o] Error 1

> Process Exit Code: 2
> Time Taken: 00:00

Sind ja wenigstens schon mal normale Fehlermeldungen

Der Fehler mit x ist dann auch eine Frage von meinen Thread ganz oben
"Ich möchte mit dem Controller (AT90USB) per USART eine Anfrage an ein
Modul schicken. Kann ich den dafür genutzten HEX-Wert gleich bei z.B.
UDR = x; eintragen?
"
#1457064
Lesenswert?

Ich weiß dass der Thread schon bisschen angestaubt ist, jedoch kommt er 
bei der Fehlersuche, nach dem Fehler aus dem letzten Post

hatte bis gerade das gleiche Problem, aber dann einen Tipp gefunden:

MartinFunk - 14.01.2008, 17:28
Titel: Hi irobot,
versuch dein projekt nicht in den Eigenen Dateien zu compilieren sonder 
z.B. in C:\Asuro\projektname denn WinAVR macht probleme bei ordner namen 
mit Leer zeichen (C:\Dokumente und Einstellungen\Petersen.PN15\Eigene 
Dateien\)

MfG Martin

Quelle: http://www.roboternetz.de/phpBB2/printview.php?t=37214&start=0

Selbst getestet und froh dadrüber dass es läuft

mfg

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren