Hallo zusammen
Beim Compilieren bekomme ich follgende Warnung:
avr-gcc -c -Os -save-temps -Wall -Wstrict-prototypes -fverbose-asm
-ffunction-sections -mcall-prologues -mmcu=at90s8515 -I. TAR.c -o
TAR.o
TAR.c: In function `main':
TAR.c:177: warning: comparison is always true due to limited range of
data type
avr-gcc -c -Os -save-temps -Wall -Wstrict-prototypes -fverbose-asm
-ffunction-sections -mcall-prologues -mmcu=at90s8515 -I. HD44780.c -o
HD44780.o
avr-gcc -c -Os -save-temps -Wall -Wstrict-prototypes -fverbose-asm
-ffunction-sections -mcall-prologues -mmcu=at90s8515 -I. misc.c -o
misc.o
avr-gcc -c -Os -save-temps -Wall -Wstrict-prototypes -fverbose-asm
-ffunction-sections -mcall-prologues -mmcu=at90s8515 -I. UART.c -o
UART.o
avr-gcc HD44780.o misc.o UART.o TAR.o -mmcu=at90s8515 -o TAR.elf
avr-objcopy -O avrobj -R .eeprom TAR.elf TAR.obj
avr-objcopy -O ihex -R .eeprom TAR.elf TAR.rom
avr-objcopy -j .eeprom --set-section-flags=.eeprom="alloc,load"
--change-section-lma .eeprom=0 -O ihex TAR.elf TAR.eep
avr-sizex --mcu at90s8515 TAR.elf
Flash SRAM EEPROM
----- ---- ------
58% 44% 0%
Errors: none
rm UART.o misc.o HD44780.o
In Zeile 177 steht die folgende Bedingung, contrast ist als unsigned
char definiert:
if((contrast < 30) && (contrast >= 0))
{
contrast++;
outp(contrast, OCR1AL);
}
Das komische daran ist jedoch, daß das Programm wie erwartet
funktioniert.
Ist die erklärbar?
MfG Stephan
Hallo, Du hast contrast als unsigned char definiert, also hat es einen Wertebereich von 0 bis 255. Deshalb ist der Ausdruck (contrast>=0) immer wahr, negative Zahlen kann contrast ja nicht annehmen. Uwe
Hallo Uwe Warum finde ich immer die einfachsten Fehler nicht. An so etwas einfaches hätte ich jetzt nicht gedacht. Vielen Dank. Mfg Stephan
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.