Zitat Zitat von RolfD Beitrag anzeigen
Bei folgendem Code.. und c=0x00;
Code:
#define LCD_LL 0x0f

static uint8_t lcd_cpos;
static uint8_t lcd_line;
        c=0x00;
        lcd_line = 0x00;
        lcd_cpos = (c - (lcd_line * LCD_LL));
Kommt bei mir in lcd_cpos immer 1 raus.. obwohl es 0 sein muss.
Ist der Compiler defekt?
Mit Sicherheit nicht. Ein Compiler, bei dem die Integer-Multiplikation nicht funktioniert, kommt nicht durch die automatischen Regressionstests. Da braucht man nicht den Assemblercode anzuschauen. Ist Zeitverschwendung.

Wenn ich der Compiler wäre, würde ich den ganzen gezeigten Code wegoptimieren. lcd_cpos wird zwar berechnet aber nie verwendet, also braucht es nicht berechnet zu werden. Außerdem ist alles außerhalb jeder Funktion und wird daher nie ausgeführt.

Oder ernsthaft: zeig mehr von deinem Code, am besten auch die Zeile, in der der Fehler steckt.

MfG Klebwax