Gast
#2311627
Hallo Foristen, ich steige derzeit von Assembler auf C um, und versuche derzeit, eine LCD-Ausgabefunktion nach C zu überführen. Leider gelingt mir das nicht so recht, der Compiler optimiert mir meine Codezeilen raus. Da muss wohl ein Fehler in diesen stecken, aber ich finde diesen einfach nicht. Ich habe ein Standard-LCD (HD44780, 4-Bit-Modus) über eine Porterweiterung (74HC595) an meinen ATMega88 angeschlossen. DB7..DB4 und RS des LCD sind am 595er an Q_H..Q_D angeschlossen, LCD_EN am AVR selbst. Was geht nun nicht? Ich rufe aus meiner main() die lcd_init() auf, und daraus wiederum wird com74hc595_out aufgerufen und ein Parameter ("3" zum initialisieren des 4-Bit-Modus) wird übergeben. In der com74hc595 wird der Übergabewert jedoch sofort gnadenlos überschrieben. Ich komme einfach nicht auf den Fehler. Wer findet ihn? :-) Vielen Dank Chris2k