Hallo zusammen,
ich bin gerade an einem kleinen Projekt tätig in dem ich nicht mehr
weiter komme und nun Hilfe suche.
Folgendes Problem ich versuche mit dem Controller AT89C5131 und einem
12Mhz Quarz in Assembler einen Count Down Timer zu programmieren.
Die Werte des Counters sollen über 4 Taster eingestellt werden können
Min/sek/zehntel sek und dann noch 1 Taster für den Start.
Das Problem ist, dass mein Interrupt auslöst aber irrend wie startet der
Rückwärtslaufen nicht. Die werte für den counter lassen sich einwandfrei
über port 2 einstellen.
Bitte um Hilfe und Denkanstöße :)
Kriechtier
hier mein Programm
Sorry, da quäl ich mich so im Detail (fast) nicht durch.
In der IRQ springst du zu zähler, der springt zu, der springt zu etc.
pp.
Im Endeffekt arbeitest du so in der irq das ganze programm ab und die
irq ist während dessen totgelegt für weitere auslösungen.
Nachdem das alles durchgerattert wurde setzt du den timer nochmal neu
(m6).
D.h. die Bearbeitungszeit deines Programmes addiert sich zur timer zeit
(10ms).
Besser:
Der Timer irq setzt alle 10 auslösungen ein flag (100ms flag), setzt den
timer neu und ende.
Im hauptprg. wird das flag ausgewertet.
Arbeite am besten mit pin debugging + oszi um Fehler im ablauf zu
finden.