-
-
Erfahrener Benutzer
Fleißiges Mitglied
Interrupt geht vergessen?
Hallo Zusammen!
Ich habe ein kleines Projekt, es geht um einen Motortreiber, der 2 Motoren steuert mit einem Atmega88.
Für die Positionierung benütze ich Hallsensoren, die an den Motoren angebracht sind.
Ein Hall implus kommt ca. alle 6ms (von jedem Motor), und zwei zähler zähen die Impulse von der ISR aus mit.
Nun ist die Positioniergenauigkeit sehr ungenau, nach einigen 180Grad bewegungen hält der Motor nicht mehr dort an wo er gestartet ist.
Das kann eigentlich nur passieren wenn er einen oder mehrere Hallsignale verpasst.
Die Hallsignale sehen sehr gut aus, die Flanken sind stark. Der Atmega ist konfiguriert auf die Fallende Flanke zu achten.
Der Atmega88 läuft auf 20.00 MHZ
nun die Frage:
gibt es im Atmega88 einen Interrupt speicher? oder gehen die Interrupts verloren für die es keine Zeit gibt?
Kann ich den verschiedenen Interrupts ein Gewicht oder eine Dringlichkeit zuweisen? Ich benutze int0, int1 und alle 3 HW timer, die intern auch ISR aufrufen, wobei die internen Timer nicht sooo wichtig sind.
Vielen Dank für eure Hilfe!!
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- Anhänge hochladen: Nein
- Beiträge bearbeiten: Nein
-
Foren-Regeln
Lesezeichen