-
-
Erfahrener Benutzer
Roboter Genie
Sowas ähnliches hatte ich auch mal:
Ich hatte verwendete den Timer OverflowIRQ in C und es konnte passieren, dass ein Wert geladen wurde, der eine sehr kurze Zeit bis zum nächsten IRQ zur Folge hatte. Dadurch reichte diese Zeit nicht aus, die ISR abzuarbeiten, bevor der nächste IRQ anlag. Dadurch wurden die folgenden Befehle im Schneckentempo abgearbeitet. In meinem Fall hat es 5s gedauert, bis die Stelle im Code erreicht war, an der eine längere Zeitkonstante für den Timer geladen wurde.
Ein sehr hinterhältiger Fehler!
Es lag letztendlich daran, dass in C relativ viele Takte verloren gehen, wenn eine Subroutine aufgerufen wird. In Assembler war ich gewohnt, dass das nur wenige Takte sind.
Vielleicht ist es bei Dir ja ähnlich.
Gruß
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- Anhänge hochladen: Nein
- Beiträge bearbeiten: Nein
-
Foren-Regeln
Lesezeichen