PIC Capture/Compare-Modul

OP (Firma: Eigenbau) #7917956
Lesenswert?

Guten Abend, bei meiner Frage gehts um das Captur-Modul eines dsPic30f. Bei einem capture-event ladet das Capturregister den momentanen Wert des zugeschalteten Timers, soweit alles klar. Ich konnte aber nirgends im DS einen Hinweis finden, ob der Timer-Zähler einfach weiterläuft oder ob dieser resetet wird. Gruss Jan

#7918068
Lesenswert?

Björn W. schrieb:

Setz doch einfach den Timer zurück.

Das ist nicht so einfach. Je nachdem wie schnell der Timer läuft, vergeht auch für den Captureinterrupt einiges an Zeit. Ich glaube so 10-14 CPU Takte bis er überhaupt im Interrupt ist und dann muß auch noch der Timer zurückgesetzt werden. Wenn der Timer nur mit ein paar kHz läuft mag das gehen, aber bei höheren Frequenzen verliert man, wie Harald schon schrieb, Genauigkeit.

Aber ich verstehe das Problem von Jan auch nicht so recht. Zur Auswertung der Captureevents hat man doch in der Regel alle Zeit der Welt, da kann man die Werte locker substrahieren. Wie schnell kommen die Events bei dir?

Hab mal kurz das Datenblatt überflogen. Das Capturemodul hat eine Buffer für 4 Events, muß theoretisch also nur bei jedem 4. Event ausgelesen werden. Wenn viele Events in kurzer Zeit zu erwarten sind könnte das ein nützliches Feature sein.

#7918104
Lesenswert?

Jan S. schrieb:

aber ich befürchte, dass damit der Vorteiler zurückgesetzt wird

Der Vorteiler wird natürlich nicht zurück gesetzt, das würde ja den Timer verfälschen. Wenn Dir die Auflösung zu gering ist, setze den Vorteiler einfach auf 1:1. Wenn dann die Zählweite zu gering ist, zähle auch die Timerüberläufe mit. Das höchstwertige Bit des Capturewertes zeigt Dir an, ob der Überlauf vor oder nach dem Capture erfolgte.

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