Forum: Mikrocontroller und Digitale Elektronik probleme mit lcd&interrupts


von Michael (Gast)


Angehängte Dateien:

Lesenswert?

Hallo!

Meine Ausrüstung:

Phytec Kitcon C167 (-> das Übungsboard), LCD Ansteuerung lt. 
http://www.htblmo-klu.ac.at/lernen/siemens/lcdmodul.pdf , 
angeschlossener u. ansprechbarer DS1820

Mein Problem: Der DS1820 soll nach einer bestimtmen Zeit abgefragt und 
die Temperatur auf dem LCD ausgegeben werden.
Nun ja, soweit so gut....ich verwende zur Zeitsteuerung foglenden 
"Aufbau" -> Timer3 als Sekundentimer (wird von T4 reloaded), T2 als 
counter der jede Minute einen Interrupt ausführt der wiederrum die 
Abfrage des DS1820 steuert

Im Debug Modus von Keil funktioniert das ganze ja tadellos, wenn ich 
jedoch versuche zu flashen, hängt sich das ganze System bei dem ersten 
Minuteninterrup auf!

Kann mir da mal jemand helfen?

Noch was: der Temperaturwert ist ein Integer, den ich in eine Floatzahl 
umwnadle und l mit sprintf in einen String umwandle und ihnauf den LCD 
ausgeben zu lassen....leider wird dieser String (ebenfalls wenn ich 
flashe!!) völlig falsch fomatiert ausgegeben (zB komma ist verrutscht 
bzw Stellen sind nach rechts bzw. links gerrückt....etc)


danke für euere hilfe

mfg
Michael

PS: als anhang schicke ich mein programm mit (inkl startup)

von Ingo B. (Gast)


Lesenswert?

Hi,

Du solltest versuchen, das Problem etwas mehr einzugrenzen.
Z.B. ist das Problem der Minuten-Int oder der Code, der daraufhin 
ausgeführt wird (measure?  rd_temp?).
Also mal fleissig an das Auskommentieren, bis der Übertäter gefunden 
ist.
Du könntest ausserdem mal versuchen jedem Interrupt eine eigene 
Registerbank zuzuweisen.

Zu deiner Ausgabe: Ich würde ganz auf float verzichten. Ich benutze eine 
Routine, die die Ziffern eines Ints nacheinander ausgibt und an die 
gewünscht Stelle einfach ein Komma ins Display schreibt.

Bis dann,
Ingo.

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.