Habe jetzt folgende Laufzeitmessung durchgeführt:
Zähler in der Hauptschleife, alle 0.25s am LCD anzeigen.
1.) normal das Programm mit LCD, nur mit Timer Interrupt.
danach mehr und mehr Code dazugenommen bis:
2.) Programm mit LCD, allen Interrupts und allen regelmäßigen Tasks, TWI das ins leere und damit Timeout geht, als Simulation der 3 Odometrie Zähler haben ich einen zweiten Timer mit 1khz gestartet und in dessen ISR 4 Werte hochgezählt.
Bei 1 gab es max 3580 Durchläufe in 0.25s, bei 2 gab es min 3410 Durchläufe.
Damit komme ich nach obiger Rechnung auf 5% Auslastung durch Interrupts und regelmäßgigen Tasks.
Somit bleibt ja jede Menge Rechenleistung übrig
Eines war schön zu sehen: Habe den Fifo Buffer des USART so programmiert dass er erst Werte aufnimmt wenn der gewünschte Startcode vom GPS NMEA Code zB: "$GPGGA" kommt. Auswertung startet im Hauptprogramm wenn Übertragung komplett ist. Da nur 1x pro Sekunde die Daten übertragen werden konnte man schön sehen das kurz die Durchläufe von 3580 auf 3560 einbrachen. Bei abgestecktem GPS blieb der Wert schön gleichmäßig bei 3579/3580.
LG!
Lesezeichen