Guten Abend ! Ich habe da ein Problem, ich hab mir einen Wattmeter zusammengebastelt, der von einem Solarmodul die Spannung sowie Strom erfasst und damit die Leistung und Amperestunden erechnet und an einem LCD (20x2) anzeigt. Funktioniert soweit auch wunderbar, aber, dann und wann, nach einer halben Stunde oder auch erst nach wenigen Tagen zeigt das LCD aufeinmal einige wirre Zeichen und der Atmega8 arbeitet nicht mehr, erst ein Druck auf die eingebaute Reset-Taste stellt die Funktion wieder her. Sehr zum übel, da dann die geleisteten AH im Display von der Batterieladung weg sind. Ich komme nicht drauf was das sein kann, ich habe alle freien Pins intern mit den PullUps gesetzt, so das ich mir denke der MC geht in den Sleep Modus, ich weiss ja nicht ob der im Auslieferungszustand im MCUCR - Register gesetzt ist. Wie kann man das Register einsehen bzw. verändern ?, ich finde zwar die Beschreibungen dazu aber wie ich das im AVR-Basic änden kann - keine Ahnung. Wie gesagt, ich brenne den Atmega8 und ändere sonst nichts, das Programm ist in AVR-Basic ohne irgendwelchen speziellen Funktionen. Vielleicht kann mir jemand da weiterhelfen, im Anhang das Programm, schönen Abend noch Peter
also wenn es ungegelmäßig ist und dann auch noch nach so einer langen Zeit ( mehre minuten) dann hat das bestimmt nicht mit dem Schlafmodus zu tun. Vermutlich hast du Probeme mit der Stomversorgung von dem Atmel - alle üblichen Kondensatoren verbaut?
n+peter schrieb: > der Atmega8 arbeitet nicht mehr Erkennst du das nur am Display? -> Möglich das nur das Display aussteigt (hatte ich auch schon). Mach mal regelmäsig (oder auf Tastendruck) einen Displayreset und eine neue Initialisierung. Sonst evtl. ein Problem mit dem Stack. Also ein GOSUB ohne RETURN (Raussprung mit GOTO). hans
Hallo, warum machst du das mit der GOSUB? In Bascom gibt es den Befehl Do ... Loop
n+peter schrieb: > Sleep Modus, ich weiss ja nicht ob der im Auslieferungszustand im MCUCR > - Register gesetzt ist. Da geht nix in den Sleep-Modus, schau Dir im Datenblatt die Defaults der Register an. Toggle in der Hauptschleife eine Led und Du weist, ob sich der Controller aufhängt. Überprüf' ob die per $crystal gesetzte Frequenz mit der tatsächlichen übereinstimmt. Sollte die tatsächliche Frequenz höher sein, so werden die Delays zu gering berechnet, dies quittiert das Display mit Arbeitsniederlegung. Ein regelmäßiges LCDINIT kann dann weiter helfen, wenn das Display selbst nicht zuverlässig arbeitet. Und sollte tatsächlich ein Quarz angeschlossen sein, so kann der Sekundentakt viel exakter erzeugt werden, als so hingemurkst wie im gezeigten Code.
Hast auch noch Glück dass Du noch nicht zerfleischt wurdest, weil Du Deine Bascom-Frage unter AVR-GCC gepostest hast :D
MWS schrieb: > Hast auch noch Glück dass Du noch nicht zerfleischt wurdest, weil Du > Deine Bascom-Frage unter AVR-GCC gepostest hast :D Naja, er ist ja auch Bascom-User. Da erwartet man schon gar nicht mehr, dass die überhaupt wissen, dass es noch andere Compiler gibt, bzw. was ein Compiler überhaupt ist. ;-)
Klaus schrieb: > MWS schrieb: >> Hast auch noch Glück dass Du noch nicht zerfleischt wurdest, weil Du >> Deine Bascom-Frage unter AVR-GCC gepostest hast :D > > Naja, er ist ja auch Bascom-User... Das war von mir nicht geschrieben um Ihn runterzumachen, fand's nur lustig wenn sich jemand so unbefangen in die Höhle des Löwen begibt :D
Danke für die Antworten, und entschuldigung weil im falschem Forum, habe hier zuletzt nach Lösungen gesucht und eben hernach hier eingestellt. Aber es liegt wahrscheinlich eh nicht am Programm, am Sleep und auch nicht in der U-Versorgung. Ich habe nun folgendes versucht, ich habe zwei verschiedene Layouts, selbe Schaltung aber einmal für LCD 20x4 und einmal für 20x2, Platine passend zum LCD, bei 20x4 hatte ich noch nie Probleme nur eben für das neue mit 20x2, und nun habe ich die MC vertauscht und siehe da, das selbe Problem wieder auf Platine 20x2, demnach muss sich der Fehler (höchstwahrscheinlich) auf dieser Platine befinden. Trotzdem Danke, so kann ich zumindest den Sleep-Mode als Fehlerquelle ausschliessen.
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.