Gast
#492229
Guten Tag Ich habe über die Suchfunktion sehr viel über die Capturefunktion gelernt und verstehe nun das Grundprinzip. Ich arbeite mit dem PIC18F4680 (10Mhz)und schreibe mein Programm mittels CCS compiler. Habe nun schon seit langer Zeit versucht ein Rechteckignal(1-40Hz) einzulesen. Mein vorgehen: Timer einschalten. (Timer1) "Steigende Flanke detektieren" einschalten. "Fallende Flanke detektieren" einschalten. Interruprutine für fallende und steigende Flanke einschalten. Wird eine steigende Flanke erkannt, wird eine Interruptrutine gestartet. Ich speichere in dieser Routine den Fotografierten Wert (ccp1) in eine globale Variabel(t1). Wird eine fallende Flanke erkannt, wird eine weitere Interruptrutine gestartet. Ich speichere in dieser Routine den Fotografierten Wert (ccp2) in eine Variabel(t2). In dieser Interruprutine wird auch gleich der Wert der Positivenflanke berechnet: positiveflanke = t2-t1; Die Variabeln habe ich als long definiert um dem Timerüberlauf entgegen zu wirken. Als ergebniss (positiveflanke) erhalte ich Verschiedene Werte die irgendwo im Bereich des Zählers liegen. Ich habe auch schon versucht den Timer bei jeder steigenden Flanke auf 0 zu setzen. Aber das Resultat bleibt gleich. Habe ich grundsätzlich einen falschen Ablauf geplant? Hat jemand einen Code an dem ich mich orientieren könnte? Mfg Mark