Forum: Mikrocontroller und Digitale Elektronik Timer pausieren


von Markus T. (1lc)


Lesenswert?

Hallo, ich habs zwar noch nicht ausprobiert, ich wollte nur Fragen:
Kann man einen Timer pausieren?
Angenommen man hat am PIC einen Schiebeschalter den man analog einließt.
Daher weiß man ob er rechts (1) oder links(0) aus steht.

Könnte man dann abstrakt sowas machen um den Timer (Zählerstand) zu 
pausieren?
1
Timer2(void)
2
{
3
   ....
4
}
5
main()
6
{
7
if(regler==1)
8
{
9
  Timer2();
10
}
11
if(regler==0)
12
{
13
  // nicht weiter zählen
14
}
15
16
}

Mfg
Markus

von M. K. (sylaina)


Lesenswert?

Markus L. schrieb:
> Kann man einen Timer pausieren?

Na klar, einfach die Taktquelle des Timers ausschalten. Wie das geht 
steht sicher im Datenblatt.

von Markus T. (1lc)


Lesenswert?

das mit der taktquelle ausschalten hab ich nicht hingekriegt, benutze 
den PIC18F14K22,
habs aber trotzdem geschafft den timer zu stoppen indem ich das BIT 
TMRXIF des Timers auf 0 gesetzt hab falls der schalter auf 1 liegt.

von TM F. (p_richner)


Lesenswert?

Jeder der 4 Timer (welchen benötigst du überhaupt) hat ien On/Off Bit. 
Setze dieses, um den Timer zu starten und lösche es um ihn zu stoppen.

von Ingo L. (corrtexx)


Lesenswert?

Markus L. schrieb:
> habs aber trotzdem geschafft den timer zu stoppen indem ich das BIT
> TMRXIF des Timers auf 0 gesetzt hab falls der schalter auf 1 liegt.
Ich kenne den PIC zwar nicht, aber sieht für mich eher so aus als ob du 
die Interrupts ausgeschaltet hast.

von neuer PIC Freund (Gast)


Lesenswert?

Such mal im Datenblatt nach
1
Multiple Timer1/3 gate (count enable) sources

Wenn ja, dann macht der das in Hardware. Mit IF=0 löscht du nur das 
Flag, bis der Interrupt erneut auftritt.

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.