im Rahmen des Sticki Logger Projekts bin ich im Moment meine "PWM Mess Funktion" am optimieren. Dabei ist mir aufgefallen, dass noch immer ein starkes Rauschen in den Messergebnissen ist. Das bringt den CCPM Demixer leider etwas durcheinander. Also muss es beseitigt werden
Im Anhang findet ihr ein Chart das eine einfache Bewegung des Hecks zeigt. Wisst ihr wie das Rauschen zu stande kommen könnte und wieso es z.B. beim Heck Kanal plötzlich aufhört? Der Messbereich ist mit der Funktion 1600 Digits groß. (+800/-800 im Chart)
Das ist die (simple) Funktion um die PWM vom Empfänger zu messen: Die Funktion wird per Timer Interrupt mit 60 Hz aufgerufen.
Code: Alles auswählen
inline static uint16_t pwmIn(volatile uint8_t *port, uint8_t pin)
{
unsigned short counter;
counter = 0;
while (! (*port & (1 << pin)) ) // wait on PIN == LOW
{
if (0 == ++counter) return (0); // overflow --> return 0
}
counter=0;
//Dauer zählen
while (*port & (1 << pin)) // wait on PIN == HIGH
{
if (0 == ++counter) return (0); // overflow --> return 0
}
//return the result
return (counter);
}