Infrarotnavigation...Problems Continued
Moin Leute!
Ich bins mal wieder. Die Hardware läuft ja nun einigermaßen, da kommen dann halt die Probleme mit der Software.
Ich habe also versucht die LED-Pulse zu erkennen. Mit der Methode der "Pulslängen-Modulation" klappt das schon ganz gut, nun habe ich mal versucht, die "Pausenlängen-Modulation" hinzubekommen. Leider sind dort viele Pulse, die nicht zugeordnet werden können.
Momentan hätt ich mal nur eine Frage: Wie würdet ihr ein Signal auf fallende Flanken untersuchen?
Mein Ansatz ist, jeweils den letzten Messwert mit dem aktuellen Messwert zu vergleichen. Ist der neue Messwert um 100mV kleiner als der alte, wird dies als fallende Flanke interpretiert. Für mich der logischte Ansatz, aber vielleicht hat ja jemand noch eine Idee?
Mein Problem ist u.a., dass die gemessenen Pausenzeiten (bzw. die Zeit fallendeFlanke-fallendeFlanke) nicht den am Oszi dargestellten entsprechen... :-k
als kleines Beispiel der Teil der Flankenerkennung:
Code:
while( !bFallingEdgeDetected )
{
//TODO: TimeOut...
nCurrConvResult = DoADConversion(true, AdcChannel);
if( ((nLastConvResult1 - FALLING_EDGE_TOL) >= nCurrConvResult)
{
bFallingEdgeDetected = true;
}
else
{
//shift last result
nLastConvResult1 = nCurrConvResult;
}
}
Ich danke mal wieder für die (hoffentlich) zahlreichen Impulse.
Grüße
Moe