InputCaptureEdge während Messung verstellen

Gast #661811
Lesenswert?
• ▲
▼
Hallo!

Ich möchte während einer Messung am ICP die Flankenart verändern. 
(bisher hab ich nur von steigender zu steigender Flanke gemessen -> 
funktioniert super).

Jetzt möchte ich quasi die Zeit zwischen einer steigenden und einer 
fallenden Flanke messen!
also bin ich in meinem Programm hergegangen und habe nach Messung der 
ersten steigenden Flanke das entsprechende Register so gesetzt:

TCCR1B &= ~(1<<ICES1);
damit sollte er ab sofort auf eine fallnde Flanke reagieren.
nach der messung der zweiten Flanke (sollte ja jetzt eine fallende 
sein), habe ich durch folgenden Aufruf das ganze wieder zurück gesetzt:
TCCR1B |= (1<<ICES1);

kann mir da jemand weiterhelfen?

Herzlichen Dank!
#661819
Lesenswert?
• ▲
▼
Das funktioniert natürlich nur dann, wenn die Zeit zwischen zwei Flanken 
ausreichend lang ist, um die Umschaltung vorzunehmen. Die ISR wird ja 
nicht verzögerungsfrei aufgerufen und hat ordentlich Overhead. Wenn die 
fallende Flanke schon kommt, bevor oder während das ICES1 gelöscht wird, 
dann ist das Ereignis futsch.
Gast #661831
Lesenswert?
• ▲
▼
hi!

ja das war mir klar! Denke aber nicht dass das so lange braucht..
hab den fehler grad gefunden - ein blöder schreibfehler denn ich jetzt 
beim 100. mal durchgehen entdeckt habe..
Danke auf jeden Fall
(der erfassbare Bereich für Frequenzen halbiert sich jetzt eben.)

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