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.