A. ich kenn mich mit arduino nicht aus...
- Interrupt 1: A-Spur des Encoders, zählt eine Variable "Encoderpulse" hoch, wenn eine sinkende oder fallende Flanke detektiert wird
- Interrupt 2: B-Spur des Encoders: zählt die gleiche Variable "Encoderpulse" hoch, wenn eine sinkende oder fallende Flanke detektiert wird
(Drehrichtung muss ich nicht detektieren, die ist immer gleich)
- Interrupt 3: Sensor 1 steigende Flanke: Nullen der Variable Encoderpulse
- Interrupt 4: Sensor 1 sinkende Flanke: Schreiben der Anzahl Encoderpulse in eine Variable "Anzahl_Pulse_1"
- Interrupt 5: Sensor 2 steigende Flanke: Nullen der Variable Encoderpulse
- Interrupt 6: Sensor 3 sinkende Flanke: Schreiben der Anzahl Encoderpulse in eine Variable "Anzahl_Pulse_2"
- (Interrupt 7: Z-Spur des Encoders: Nullen einer Mitlaufenden Variabeln?)
Würdet ihr das auch so aufsetzen oder ganz anders? ..
B. Mit ARMs kenne ich mich nicht aus.
C. Mit Interrupts habe ich ein bisschen Erfahrung.
Wenn Du nen Atmel vor Dir hast dann hat der eine bestimmte Reihenfolge in der Interrupts priorisiert werden, siehe Datenblatt unter Interrupts. Sprich: wenn Interrupts zufällig "gleichzeitig" eintreffen, dann gehts der Priorität nach. Ansonsten geht es je nach Reihenfolge des Eintreffens.
Wie schon vorher geschrieben wurde: wenn eine Interrupt-Service-Routine (ISR) läuft sind Interrupts verboten ES SEI DENN dass der Programmierer explizit Interrupts erlaubt. Letzteres gibt dann die Möglichkeit zu "nested" Interrupts = ein Interrupt kann eine andere ISR unterbrechen . . . mit allerlei möglichen Problemchen.
Du schreibst von zwei Encodern und drei Sensoren; das stellt sich für mich die Frage ob die Sensoren 1 bis 3 mit den Motoren/Encodern verbunden sind? Hier wäre eine ausführliche Beschreibung von Aufbau und geplanter Aufgabe von Nutzen.
Vordergründig noch ne Anmerkung um Interrupts einzusparen. Interrupt 4 ist unnötig wenn Du für Sensor 1 jede Flanke nimmst und in der ISR eine Fallunterscheidung machst: Signal hoch <=> letzte Flanke war steigend, Signal low <=> letzte Flanke war fallend.
Lesezeichen