ISR:
Timer 3: alle 10ms
Messerdrehzahl: max 200 Impulse/s, Regelung in ISR von Timer 3 alle 0.25s
2x Fahrmotoren je max 166 Impulse/s, Regelung in ISR von Timer 3 alle 0.125s, Regelung beider Fahrmotoren gleichzeitig aber zeitlich versetzt zu Messerdrehzahl
1 UART über ISR bei 9200Baud
1x Kontrolle vom Vorderrad, ca 2 Impulse/s

I2C und zweiter UART werden gepollt.

Ich hatte die Zeiten im Simulator gemessen, bzw Anzahl der Takte verglichen. Die Regelungen und 90% aller Funktionen sind unter 1ms erledigt. Die Positionsberechnung liegt bei 2.7ms.
Bis auf 2 mathematischen Operationen sind alle in Fixkommaarithmetik.
Wirklich lange (bis 1-3s) dauert die A-Stern Berechnung, da wird der Roboter gestoppt.

Timer 3 regelt alle zeitkritischen Funktionen, dort werden Flags gesetzt wann die Messerdrehzahl, die Fahrmotoren, Daten über Bluetooth raus, oder wann die Odometrie berechnet wird, praktisch der Taktgeber fürs gesamte Programm.
Standard Zeiteinheit dafür ist 0.25s, dh 1x in 0.25s werden alle regelmäßigen Funktionen abgearbeitet. Ausgenommen Fahrmotoren mit 0.125s und Positionsberechnung mit 1s. Aber auch die haben ihr freies Zeitfenster im 0.25s Abschnitt.

Da ist noch einiges an freier Rechenleistung übrig.



Debugger ist leider keiner vorhanden, bisher kam ich immer mit Anzeigen im LCD und setzen der LEDs als Ablaufkontrolle aus.

LG!