Forum: Mikrocontroller und Digitale Elektronik AtMega 32 - LCD-Anzeige fällt ab


von Dietmar P. (dietmar2)


Lesenswert?

Hallo,

habe da ein kleines Problem und komme nicht weiter:

Vorhanden:
Außenhautüberwachung (im Haus Türen, Fenster) mit AtMega-32.
Anzeige Objekte (Türen und Fenster) über LED's. LED brennt = Objekt 
geschlossen.
Ist ein Objekt offen, geht die betreffende LED aus. Zustand wird in 
einem "Leitungsspeicher" vermerkt.
Ist ein sog. Blockschloss zu und ein Objekt ist offen, dann wird ein 
Alarm ausgelöst. Optisch angezeigt durch eine pulsierende LED und 
akustisch durch ein Signal. In einem zweizeiligen LCD-Display wird das 
betreffende Objekt in Textform aus dem Leitungsspeicher angezeigt. Die 
Hintergrundbeleuchtung des Display wird hell.
Wird das Objekt wieder geschlossen bleibt der Text bestehen und die 
Alarm-LED pulst weiter, nur der Alarmton geht nach 30 Sekunden aus.
Soweit so gut.

Fehler:
Nach einiger Zeit (Tage, Stunden, ist nicht feststellbar) fällt beim 
Display die Textanzeige aus. Alles andere geht wie gewünscht, nur der 
Text eben nicht.

Lösung:
Bisherige Abhilfe: Versorgungsspannung kurz unterbrechen, ist aber keine 
wirkliche Lösung.
Über einen Timer regelmäßig (1xTag, oder so) WatchDog starten und damit 
einen Reset durchführen???
Nachteil: dann wird wohl auch mein Leitunsspeicher gelöscht(!?) und das 
wäre im Alarmfall nicht gerade produktiv.

Habt Ihr noch einen Vorschlag?
Danke für Eure Hilfe vorab.

Gruß
Dietmar

von Pete K. (pete77)


Lesenswert?

Wir brauchen den Quellcode und den Schaltplan und ein Foto vom Aufbau. 
Danke.

von Thomas M. (langhaarrocker)


Lesenswert?

Dietmar P. schrieb:

> Nach einiger Zeit (Tage, Stunden, ist nicht feststellbar) fällt beim
> Display die Textanzeige aus.

Fällt die wegen eines elektronischen (z.B. Wackelkontakt 
Versorgungsspannung) oder wegen eines Softwarefehlers aus?

von Cheffe (Gast)


Lesenswert?

Klarer Fall. Stack error!


Cheffe

von Dietmar P. (dietmar2)


Angehängte Dateien:

Lesenswert?

@ Pete K.

das wird etwas aufwändig. Die Schaltung ist recht komplex mit einer 
Datenübertragung zwischen einer Zentrale für die Leitungseingänge und 
der Anzeige mit dem AtMega (HCT165N Sender/Empfänger).
OK.Hänge mal die Programmdateien an.
leitung = Abfrage derObjekte
auswertung = Auswertung Objektzustand
alarm = Objekt offen, Blockschloss ist zu
lcd = Übertragung an Display
taster = Alarmreset und Pflege Texttabelle für Objakte
takt = Taktvorgabe für elle Element

Bitte berücksichtigen ich bin Anfänger!!

@Thomas M.
Wackelkontakt ist eigentlich ausgeschlossen.
Möglicherweise Softwarefehler. Wird diese Routine möglicherweise im 
AtMega blockiert? Alle Funktionen, wie beschrieben funktionieren 
einwandfrei, eben nur die Textanzeige kommt nicht mehr.

von Dietmar P. (dietmar2)


Lesenswert?

Hallo Cheffe,

sowas habe ich auch vermutet.

Wie kann ich den Fehler produziert haben, wie lösche ich den Stack, wie 
vermeide ich einen Stack-Überlauf?

Gruß

von Chris L. (kingkernel)


Lesenswert?

Verschwindet der Text auf dem Display oder wird einfach nur kein neuer 
Text ausgegeben (Der alte Text bleibt also stehen). Ersteres deutet 
vielleicht auf ein Problem mit der Kontrastspannung hin.

von Dietmar P. (dietmar2)


Lesenswert?

Hallo Chris.

Im Alarmfall wird gar kein Text angezeigt.

Gruß

von Chris L. (kingkernel)


Lesenswert?

Lass mal Testweise für den Fall, dass kein Text angezeigt werden soll, 
sowas wie "In Betrieb" anzeigen. Dann weisst du, ob es ein Fehler im 
Display oder im Controller ist.
Ich tippe bei gar keiner Anzeige auf das Fehlen von Kondensatoren oder 
auf ein Problem mit der Kontrastspannung.

von Dietmar P. (dietmar2)


Lesenswert?

Hallo Chris,

das ist ein guter Ansatz.
Ich werde auf dem Display den Text "Betrieb" ausgeben, immer wenn kein 
Alarm vorliegt.

Danke,
Gruß
Dietmar

von Stefan F. (Gast)


Lesenswert?

Eventuell hilft es, einen zusätzlichen Taster einzubauen, mit dem du im 
Fehlerfall das Display neu initialisieren kannst.

Wenn es darauf gut reagiert, weißt du zumindest, dass das Display 
wahrscheinlich nicht defekt ist. Wenn es nicht reagiert, kannst du ein 
anderes Display versuchen.

Außerdem würde ein Logic Analyzer sicher hilfreich sein. Damit kannst du 
prüfen, ob die Kommunikation zum Display noch funktioniert.

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.