Forum: Mikrocontroller und Digitale Elektronik CodeVision+Mega8+LCD


von Aleksej Kiselev (Gast)


Lesenswert?

Hallo, ich hab ein Problem mit der Steuerung von HD44780-based
LCD-Anzeige. Es läuft alles unter CodeVision mit Mega8. Es passiert
nichts, wenn ich PORTB als LCD- Port definiere, mit dem PORTD klappt es
einwandfrei. Den Oscillator habe ich mit den Fuses richtig eingestellt
(1MHz intern). Woran könnte es liegen? Mega8 ist neu, kaputt sollte es
nicht sein (ich hab schon mal erlebt, dass die Oscillator-Pins PB6 und
PB7 kaputt waren, aber in diesem Fall liegt es bestimmt nicht daran).
Mit freundlichen Grüßen, Aleksej.

P.S. __lcd_port=0x18;

von Tobi (Gast)


Lesenswert?

hast du alle vcc und gnd angesplossen, auch avcc usw?

von Aleksej Kiselev (Gast)


Lesenswert?

Ja, klar. Alles ist auf STK500 aufgebaut.

von Aleksej Kiselev (Gast)


Lesenswert?

Es ist wirklich interessant, ich hab alles mögliches abgeschaltet, es
geht ja trotzdem nicht. Ich vermute, dass der Controller nicht in der
Lage ist, LCD abzufragen, deshalb sturzt das Programm ab. Was könnte
mit den Pins von PORTB falsch sein???

von Thorsten (Gast)


Lesenswert?

Hast du Jumper XTAL1 auf dem STK500 geöffnet (d. h. NICHT gesetzt) ? Das
muß so sein bei externer bzw. prozessorinterner Taktversorgung.
Thorsten

von Aleksej Kiselev (Gast)


Lesenswert?

Natürlich habe ich es geöffnet. Das Problem liegt wahrscheinlich daran,
dass Controller aus irgendwelchen Gründen keine Information von der
Anzeige kriegt. Pins 6 und 7 von dem PORTB sollen doch aktiv sein, wenn
ich interner Oscillator einsetze oder?

von klack (Gast)


Lesenswert?

Hallo,

Überprüfe doch die einstellungen an denem "ASSR Register"
was ist dort eingetragen

klack

von Aleksej Kiselev (Gast)


Lesenswert?

Da steht 0x00

von Aleksej Kiselev (Gast)


Lesenswert?

Ich verstehe es nicht, mit dem PORTB klappt es überhaupt nicht, wenn ich
Pins 6 oder 7 als Eingang einsetzen will. Hat jemand eine Idee?

von Thorsten (Gast)


Lesenswert?

Kleine Frage, wieso brauchst du Eingänge am µC wenn du ein LCD
anschließen willst ?

von Aleksej Kiselev (Gast)


Lesenswert?

weil CodeVision testet die, um festzustellen, ob LCD bereit ist. Aber
ich habe gerade procedure von CodeVision so geändert, damit es nur
abgewartet ist, ohne Abfrage. Funktioniert trotzdem nicht

von Aleksej Kiselev (Gast)


Lesenswert?

Leute, das ist wirklich wichtig, es kann doch nicht war sein, dass
keiner eine LCD-Anzeige an den PORTB von Mega8 angeschlossen hat.

von Pascal (Gast)


Lesenswert?

vielleicht ist ja der Watchdog an(ist er glaube ich beim ATMEGA8
standartmäßig), das heißt, wenn du ihn nicht regelmäßig zurücksetzt,
startet er den µC neu
vielleicht kommt er deswegen ja nie bis zu der Stelle, an der etwas mit
dem Display geschieht
Abhilfe würde schaffen, indem man den Watchdog entweder per Fusebits
oder softwaremäßig ausschaltet

aber wie gesagt, es ist nur eine Vermutung

von Aleksej Kiselev (Gast)


Lesenswert?

Ne, Watchdog ist es ganz bestimmt nicht. Dasselbe Programm mit dem PORTD
funktioniert ohne Aufwand, mit dem PORTB will die Anzeige nicht.

von Tobias A. (Gast)


Lesenswert?

mal anders gefragt
was zeigt das LCD denn an?
nix? schwarzen Balken?

von Aleksej Kiselev (Gast)


Lesenswert?

Schwarze Balken, als ob es nicht initialisiert wurde. Aber um es klar zu
machen - an dem Programm liegt es nicht. Entweder stimmt was mit Mega8
nicht (es soll nicht unbedingt kaputt sein! Kann sein, dass die Pins 6
und 7 von PORTB sind irgendwie anders gebaut) oder soll ich bei den
Fuses noch irgendwas einzustellen.

von Thorsten (Gast)


Lesenswert?

Mir fällt da gerade ein, daß ich kürzlich ne Mail von jemandem bekam,
der sein LCD auch nicht an Port B vom ATm8 zum laufen bekam. Als er es
dann mit Port D probierte, funktionierte alles einwandfrei. Ist jetzt
nicht wirklich ne Hilfe, aber schon seltsam.

Thorsten

von Aleksej Kiselev (Gast)


Lesenswert?

Ich hab es rausgekriegt! Das Problem lag an STK500, da sind diese Pins
(PB6 und PB7) NICHT an den PORTB angeschlossen! Die kriegt man bei dem
PORTE/AUX (XT1 und XT2). Ich finde es irgendwie unlogish...
Aber trotzdem danke!!!

von Thorsten (Gast)


Lesenswert?

Äh, sowas checkt man ja wohl als erstes mittels Durchgangsprüfer oder
so.

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
Noch kein Account? Hier anmelden.