Hallo, ich habe heute versucht lcd-routines.c zu kompilieren und verwende die Dateien von http://www.mikrocontroller.net/articles/AVR-GCC-Tutorial/LCD-Ansteuerung Die Fehlermeldung ist: root:firmware r00t$ make avr-gcc -Wall -Os -DF_CPU=12000000 -mmcu=atmega8 -c main.c -o main.o avr-gcc -Wall -Os -DF_CPU=12000000 -mmcu=atmega8 -c lcd-routines.c -o lcd-routines.o lcd-routines.c: In function 'lcd_generatechar': lcd-routines.c:172: error: 'for' loop initial declaration used outside C99 mode make: *** [lcd-routines.o] Error 1 Der betroffene Abschnitt: void lcd_generatechar( uint8_t code, const uint8_t *data ) { // Startposition des Zeichens einstellen lcd_command( LCD_SET_CGADR | (code<<3) ); // Bitmuster übertragen for ( uint8_t i=0; i<8; i++ ) { lcd_data( data[i] ); } } Vielleicht könntt ihr mir ja helfen, Vielen Dank ~Flo PS: Verwende CrossPack auf Mac OS X 10.6
Hi, Du musst den C99 switch aktivieren. Einfach -std=c99 zu den Compiler Flags hinzufügen.
Ch D. schrieb: > Hi, > Du musst den C99 switch aktivieren. Einfach -std=c99 zu den Compiler > Flags hinzufügen. Kann das jemand bitte nochmal am Beispiel von AVR Studio 4.0 Schritt für Schritt erklären?
Ich hab die Variablendeklaration einfach "nach oben geholt", hat dann auch funktioniert:
1 | void lcd_generatechar( uint8_t code, const uint8_t *data ) |
2 | {
|
3 | uint8_t i; |
4 | |
5 | // Startposition des Zeichens einstellen
|
6 | lcd_command( LCD_SET_CGADR | (code<<3) ); |
7 | |
8 | // Bitmuster übertragen
|
9 | for ( i=0; i<8; i++ ) |
10 | {
|
11 | lcd_data( data[i] ); |
12 | }
|
13 | }
|
Oder eben in der Zeile des Makefiles, wo der avr-gcc direkt involviert ist, die o.g. Ergänzung hinzufügen. mfg mf
imidin schrieb: > Kann das jemand bitte nochmal am Beispiel von AVR Studio 4.0 Schritt für > Schritt erklären? Hast du doch schon; siehe dein Bild im anderen Thread: Beitrag "Re: Evolution Board + ATMEGA 8 + WinAVR + LCD 4Bit"
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.