Roberto
14.11.2007, 23:15
Hallo Leute
Habe da ein bisschen ein komisches Problem:
Benutze neueste Version von WinAVR mit Avr Studio.
Prog. ein MEGA16 über STK500
Schreibe da gerade ein bisschen an einem Programm für einen kleinen Robi..
Das Programm besteht derzeit aus 3 Teilen die alle unter Source-File im AvrStudio liegen.
Eines ist für das Grafik LCD (Sharp) eines als Hauptprogramm und eines für die Motorstersteuerung. (derzeit gerade mit PWM)
Die Ausgabe am LCD (in Text) funktionierte bis jetzt immer einwandfrei.
Auf einmal kommen teilweise wirre Zeichen.
Jetzt bin ich draufgekommen, dass wenn ich den Compiler optimieren lasse, sind diese Anzeigefehler weg. :-k
Kennt jemand diese Probleme ?
Jetzt habe ich mir mal die Warnungen angeschaut..
Schätze mal, das hängt irgendwie zusammen :-k
Hier mal ein Auszug:
../sharp_lcd_v2.c:166: warning: left shift count >= width of type
../sharp_lcd_v2.c:168: warning: left shift count >= width of type
../sharp_lcd_v2.c:172: warning: implicit declaration of function 'Kontroll_Register'
../sharp_lcd_v2.c: At top level:
../sharp_lcd_v2.c:190: warning: conflicting types for 'Kontroll_Register'
../sharp_lcd_v2.c:172: warning: previous implicit declaration of 'Kontroll_Register' was here
../sharp_lcd_v2.c: In function 'LCD':
../sharp_lcd_v2.c:251: warning: suggest parentheses around comparison in operand of |
../sharp_lcd_v2.c:251: warning: suggest parentheses around comparison in operand of |
../sharp_lcd_v2.c:251: warning: suggest parentheses around comparison in operand of |
avr-gcc.exe -mmcu=atmega16 -Wall -gdwarf-2 -DF_CPU=8000000UL -O1 -fsigned-char -MD -MP -MT Hauptprogramm.o -MF dep/Hauptprogramm.o.d -c ../Hauptprogramm.c
../Hauptprogramm.c: In function 'main':
../Hauptprogramm.c:48: warning: implicit declaration of function 'Motor_init'
../Hauptprogramm.c:50: warning: implicit declaration of function 'LCD_init'
../Hauptprogramm.c:55: warning: implicit declaration of function 'Display_fuellen'
../Hauptprogramm.c:56: warning: implicit declaration of function 'LCD'
Vielleicht könnt Ihr mir da ein paar Tipps geben, wo ich da ansetzen kann?
Leider schaut es mit dem englisch nicht so gut aus und auch im C bin ich erst Anfänger 8-[ , Aber der Wille ist da O:)
Vielleicht habt Ihr ein paar Tipps für mich ?!
L.G. Roberto
Ps.: Weis schon, ohne Code ist da blöd einen Rat zu geben, aber will auch nicht den ganzen Code da reinmüllen.
Bei bedarf vielleicht auszugsweise....
Nachtrag:
Zeile 166:
LCD_Adress_Port &= ~(1<<_resb);
Zeile 172:
Kontroll_Register(0xf0);
Zeile 190:
void Kontroll_Register(int Register)
{
LCD_Bus_Port=Register; //Register-Daten anlegen
LCD_Adress_Port |= rs; // org. war rs=1; //Registerauswahl (Low = Datenregister, High = Controllregister)
LCD_Adress_Port &= ~_csb; // org. war _csb=0; //Display Auswählen (Low Aktiv)
LCD_Adress_Port &= ~_wrb; // org. war _wrb=0; //Write (Low ist schreiben)
LCD_Adress_Port |= _wrb; // org. war _wrb=1; //Nicht mehr schreiben
LCD_Adress_Port |= _csb; // org. war _csb=1; //Display nicht mehr auswählen
}
Zeile 251:
if (Zeile == 1|Zeile == 3 | Zeile ==5 | Zeile ==7)
.
.
.
Habe da ein bisschen ein komisches Problem:
Benutze neueste Version von WinAVR mit Avr Studio.
Prog. ein MEGA16 über STK500
Schreibe da gerade ein bisschen an einem Programm für einen kleinen Robi..
Das Programm besteht derzeit aus 3 Teilen die alle unter Source-File im AvrStudio liegen.
Eines ist für das Grafik LCD (Sharp) eines als Hauptprogramm und eines für die Motorstersteuerung. (derzeit gerade mit PWM)
Die Ausgabe am LCD (in Text) funktionierte bis jetzt immer einwandfrei.
Auf einmal kommen teilweise wirre Zeichen.
Jetzt bin ich draufgekommen, dass wenn ich den Compiler optimieren lasse, sind diese Anzeigefehler weg. :-k
Kennt jemand diese Probleme ?
Jetzt habe ich mir mal die Warnungen angeschaut..
Schätze mal, das hängt irgendwie zusammen :-k
Hier mal ein Auszug:
../sharp_lcd_v2.c:166: warning: left shift count >= width of type
../sharp_lcd_v2.c:168: warning: left shift count >= width of type
../sharp_lcd_v2.c:172: warning: implicit declaration of function 'Kontroll_Register'
../sharp_lcd_v2.c: At top level:
../sharp_lcd_v2.c:190: warning: conflicting types for 'Kontroll_Register'
../sharp_lcd_v2.c:172: warning: previous implicit declaration of 'Kontroll_Register' was here
../sharp_lcd_v2.c: In function 'LCD':
../sharp_lcd_v2.c:251: warning: suggest parentheses around comparison in operand of |
../sharp_lcd_v2.c:251: warning: suggest parentheses around comparison in operand of |
../sharp_lcd_v2.c:251: warning: suggest parentheses around comparison in operand of |
avr-gcc.exe -mmcu=atmega16 -Wall -gdwarf-2 -DF_CPU=8000000UL -O1 -fsigned-char -MD -MP -MT Hauptprogramm.o -MF dep/Hauptprogramm.o.d -c ../Hauptprogramm.c
../Hauptprogramm.c: In function 'main':
../Hauptprogramm.c:48: warning: implicit declaration of function 'Motor_init'
../Hauptprogramm.c:50: warning: implicit declaration of function 'LCD_init'
../Hauptprogramm.c:55: warning: implicit declaration of function 'Display_fuellen'
../Hauptprogramm.c:56: warning: implicit declaration of function 'LCD'
Vielleicht könnt Ihr mir da ein paar Tipps geben, wo ich da ansetzen kann?
Leider schaut es mit dem englisch nicht so gut aus und auch im C bin ich erst Anfänger 8-[ , Aber der Wille ist da O:)
Vielleicht habt Ihr ein paar Tipps für mich ?!
L.G. Roberto
Ps.: Weis schon, ohne Code ist da blöd einen Rat zu geben, aber will auch nicht den ganzen Code da reinmüllen.
Bei bedarf vielleicht auszugsweise....
Nachtrag:
Zeile 166:
LCD_Adress_Port &= ~(1<<_resb);
Zeile 172:
Kontroll_Register(0xf0);
Zeile 190:
void Kontroll_Register(int Register)
{
LCD_Bus_Port=Register; //Register-Daten anlegen
LCD_Adress_Port |= rs; // org. war rs=1; //Registerauswahl (Low = Datenregister, High = Controllregister)
LCD_Adress_Port &= ~_csb; // org. war _csb=0; //Display Auswählen (Low Aktiv)
LCD_Adress_Port &= ~_wrb; // org. war _wrb=0; //Write (Low ist schreiben)
LCD_Adress_Port |= _wrb; // org. war _wrb=1; //Nicht mehr schreiben
LCD_Adress_Port |= _csb; // org. war _csb=1; //Display nicht mehr auswählen
}
Zeile 251:
if (Zeile == 1|Zeile == 3 | Zeile ==5 | Zeile ==7)
.
.
.