Code:
SIGNAL(SIG_INPUT_CAPTURE1)
{//wird bei steigender Flanke des Signals ausgelöst um die Dauer der Pause zu berechnen
...
TCCR1B |= (1 << ICNC1) | (1 << CS12); //Störunterdrückung ein; fallende Flanke; Taktteiler: 256
Was denn nun, steigende Flanke oder fallende?
Ich habe zwar den Code noch nicht so detailliert analysiert, um dir sagen zu können, was du da genau per Input Capture misst, aber die "Pause" ist es sicher nicht.
Code:
if((wert>875) && (wert<925))
{
...
}
if((wert>775) && (wert<825))
{
...
}
else
{//keine Übereinstimmung der Pausendauer -> An aktueller Position Fehlermarke (-1) setzen
Das passt auch nicht, denn wenn wert zwischen 875 und 925 liegt, landest du nicht nur im ersten if, sondern zusätzlich auch im else-Zweig.
Lesezeichen