PIC - Register während Interrupt abfragen

OP #1840637
Lesenswert?

Hallo,
ich habe in Assembler einen Counter für einen Pic geschrieben. Es 
funktioniert auch alles wunderbar, die Zeit lässt sich mit 4 Tastern 
einstellen und wird auf 4 7-Segment Anzeigen visualisiert. Nun möchte 
ich, das das "runterlaufen" der Zeit nur stattfindet (im Moment immer), 
wenn ein zusätzlicher Taster gedrückt wurde. Dazu wollte ich ein Bit 
(Starten, 0) setzen und während des Interrupts abfragen:

     btfss Starten, 0
     goto Int_end
     Counter

Doch leider funktioniert das kein bisschen, egal was ich schon versucht 
habe, es scheint sich immer aufzuhängen, da die Ausgänge plötzlich 
völlig verrückt spielen.

Weis jemand woran das liegen könnte?
Danke im vorraus

Gruß Moritz
Persönliche Seite #1841165
Lesenswert?

Hallo Moritz,

> ich habe in Assembler einen Counter für einen Pic geschrieben. Es
> funktioniert auch alles wunderbar, die Zeit lässt sich mit 4 Tastern

Counter? Zeit?
Hast Du jetzt einen Counter oder einen Timer gebaut?\

Sieht nach Timer aus: Eine Zeit wird heruntergezaehlt und angezeigt, 
richtig?

>      btfss Starten, 0
>      goto Int_end
>      Counter

Das kann wirklich alles sein:
- Falsch/Doppeltdeklaration des Bytes "Starten"
- falsche Sprungadresse Int_end (ohne Wiederherstellung des Stacks)
- .......



Holger MUSS nicht recht haben....kann auch Deine Hardware sein ;-)
Aber ohne weitere INformation wuerde ich sagen, der Kondensator C14 
sollte nicht mit der Adresse der Interruptserviceroutine verbunden sein!


Gruss

Michael
OP #1841815
Lesenswert?

So,
ich habe jetzt folgendes Problem: Der Counter zählt nach dem drücken der 
OK - Taste abwärts. Allerdings funktioniert es nur bei der 4 Ziffer. 
Sobald ich auch eine der 3 Ziffern vorher auf eine andere Zahl auser 0 
einstelle leuchten auf einmal die Dezimalpunkte, genauso auch wenn der 
Counter nach dem Runterzählen der Sekunden auf 0 kommt.

Wie kann das sein, ich habe den Ausgang der Dezimalpunkte nirgends 
definiert???
Und warum funktioniert es nur bei der 4 Ziffer???

Mfg
Moritz
Angehängte Dateien:
Gast #1841850
Lesenswert?

Wenn es nur bei der 4 funktioniert klappt vielleicht nur die Abfrage 
nicht und überspringt alle anderen, du hast wenn ich das richtig sehe in 
deinem Interrupt die 4 als automatische Auswahl falls alle andern 
"false" sind definiert.

Ansonsten evtl. mal noch den Schaltplan anhängen, wenn man selbst schon 
paar Stunden grübelt ist einem das alles immer etwas mehr vor Augen als 
dem Rest hier im Forum, deswegen machen paar wenige Sätze meist nicht 
viel Sinn ;)

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren