Bei den Arduinos sind meines Wissens AVR Controller verbaut.
Einige, vor allem die neueren Typen unterstützen Pin Change Interrupts.
Das bedeutet ein Interrupt wird ausgelöst, sobald sich ein Pegel an einem Pin der Gruppe ändert.
Welcher das nun war müsstest Du in der Interruptroutine selber rausfinden.
Ich fürche auch fast, das das ein ATMEGA auch nicht mehr schafft.
Im Extremfall hast Du ja 7000 x 6 = 42000 Interrupts pro Sekunde.
Auch wenn der Controller mit 20MHz läuft hast Du gerade mal 476 Maschinenzyklen ( Takte ) pro Interrupt.
Das geht mit Assembler sicher noch, mit Bascom wird das wohl nichts mehr.
Zusätzlich entstehen ja noch weitere Interrupts duch die Servoroutinen.
Wenn dein Programm für den Interrupt fertig ist, kannst Du per Simulator erproben, wieviele Zyklen der Controller für die Abarbeitung der Interruptroutine braucht.
Ob das mit den Servos noch geht oder nicht lässt sich vermutlich nur in der Praxis erproben.
Du könntest ja zum Beispiel einen Port auf 1 setzen, sobald der Controller im Interrupt ist, verlässt der Controller den Interrupt kannst Du diesen Port wieder auf 0 setzen.
Wenn Du dann ein Oszilloskop auf diesen Pin hängst siehst Du, ob der Controller noch Zyklen frei hat.
Lesezeichen