PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : LCD und Single



Prozessor
03.03.2005, 18:25
Ich versuche schon eine ganze Weile Divisionen mit meinem Mega 16 durchzuführen, das ist ja auch simpel mit Bascom.
Jedesmal wenn ich aber eine Single in der Rechnung habe, bekommt mein LCD falsche Daten und füllt sich nach und nach mit irgendwelchen Zeichen an irgenwelchen Stellen. Oder das Prog schmiert ab. Das Gleiche ist, wenn ich versuche die Singles für die LCD-Ausgabe zu formatieren (fusing).
Das Problem tritt nur auf, wenn Interrupts auftreten, die brauche ich aber. Ich denke daß Speicherbereiche überschrieben werden. Ich habe gelesen, man soll R12,R13,R14 und 15 auf den Stack retten bevor die ISR ausgeführt wird, hab ich gemacht, wurde etwas besser, jetzt hängt sich das Prog wenigstens nicht mehr sporadisch auf. Dann habe ich gelesen, man soll die Entwicklungsumgebung anpassen, Framesize und Softstack bzw. HW-Stack anpassen (Environment in Bascom). Ergab nochmal eine Besserung. Dann jede Menge "Disable/Enable Interrupts" probeweise gesetzt, aber jetzt weiss ich nicht weiter. Debuggen kann ich noch nicht und der Simulator mag auch nicht, vermutlich wurde er darauf getrimmt diesem Thema auszuweichen, wie die Bascom-Hilfe auch.

Mein Programm soll den Benzinverbrauch ermitteln, ich verwende Timer0 um Impulse hochzuzählen, jeder Impuls entspricht 1/1700-tel Liter. Dann
rechne ich "gezählte Impulse/1700" ergibt verbrauchte Benzinmenge. Der Tank faßt 221000 Impulse, da rechne ich auch die Restmenge im Tank aus. Mit Timer1 habe ich eine Uhr realisiert, damit ich den Momentanverbrauch berechnen kann. Funktioniert alles prima, aber sobald ich Singles ins Spiel bringe, geht nichts mehr gut.
Es liegt definitiv am Problem "Single und Interrupt", denn solange ich keine Int ausführe, geht alles. Hat jemand soein Problem bereits einmal gelöst, oder gibt es Lösungsansätze? Nehme echt alles,
Alex