Hallo, was gibt es alles zu beachten, wenn ich ein 16x2 LCD an einen MEGA 162 mit 8 MHz anschliessen will und die LCD-routines aus dem Tutorial verwenden will. Irgendwie tut sich bei mir nichts. Das Display wird noch nicht mal initialisiert und die Hauptschleife des Programms wird nie erreicht (Also bleibt der Mikrocontroller irgendwo vorher stecken) Tschüß Sebastian
Ich konnte das Problem weiter eingrenzen: Der Mega 162 läuft mit einem internen 16 MHz Quarz, so daß mein externes 4 MHz Quarz nichts brachte. Also muss ich natürlich die Funktionen für die Pausen auch anpassen. Wie machte ich das genau? Was ist das Beste? Einfach den Wert $21 x 4 = $84 ? Und warum kommt der Mega 162 aus der Funktion delay5ms nicht wieder raus? Hier der Code (Der aus den Tutorial): Das (von mir zu testzwecken eingebaute) rjmp loop wird nie erreicht delay5ms: ;5ms Pause ldi temp1, $21 WGLOOP0: ldi temp2, $C9 WGLOOP1: dec temp2 brne WGLOOP1 dec temp1 brne WGLOOP0 ret ;wieder zurück lcd_init: ldi temp3,50 powerupwait: rcall delay5ms rjmp loop ; <==!!!!!!!!!!!!!!!!!!!!!!!!!!! dec temp3 brne powerupwait
Hi! Na "rcall" braucht doch Stack, noch nichts davon gehört? Wenn nein empfehle ich dringendst das Tutorial dieses Forums. MFG Uwe
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.