-
-
Interrupt-Vektoren beim ATmega-168/ PCINT-Eingänge
Hallo
Ich habe einen ATmega-168, und will 5 Steuerkanäle einlesen, über die PCINT Eingänge 13-9. Jetzt finde ich nicht heraus welches die einzelnen Vektoren sind für die Kanäle, und mir schwant irgendwie nicht viel gutes... .
Gruss Nils
-
Erfahrener Benutzer
Robotik Visionär
Wenn ich das Datenblatt richtig interpretiere dann heisst das PCINT1_vect
Dann im Register PCICR das Bit PCIE1 setzen und allgemein den Interrupt enablen.
Das heisst du hast nur einen Vector für alle 5 Kanäle und musst bei auslösen der ISR selbst abfragen welcher Kanal das ist.
-
Wie geht das mit dem Kanal auslesen nach dem ISR genau? Einfach überprüfen welche Kanal geändert hat?
Greez Nils
-
-
Erfahrener Benutzer
Robotik Visionär
Ja, würde ich so machen, es könnten auch mehrere Kanäle gleichzeitig aktiv sein.
-
Wen man nun über if abfragt welcher Kanal genau angesprochen wurde, wird da die ISR routine nicht ein wenig lange?
Ein zweites Problem: Ich habe ja nicht 5 Timer zur verfügung, erst dacht ich mir das eben über einzel Interrupts zu lösen, und immer die gleichen Timer zu verwenden (andere Interrupts werden ignoriert, und nacher abgearbeitet). wie sieht das jetzt aus? Wird auf einen Interrupt an einem Pin immer noch generell der Interrupt unterbrochen, und später abgearbeitet?
Gruss Nils
-
Erfahrener Benutzer
Robotik Visionär
Die Abfrage darf man nicht in der ISR machen, das ganze Port in eine Variable schieben und dann in der Main-Schleife abarbeiten. Interrupts werden nicht unterbrochen sondern abgearbeitet, der nächste wartet wenn man ihn nicht manuell löscht.
-
Danke!
Noch eine letzte Frage:
Wie kann ich die Variablen aus einer Funktion auch im Main verwenden, oder an eine andere Funktion weitergeben (die Resultate)
Gruss
-
Erfahrener Benutzer
Robotik Visionär
Wenn du die Variable ausserhalb einer Funktion definierst ist sie allgemein verwendbar, sonst als global definieren. Ich setzte solche definitionen gleich an den Anfang eines Programms nach den include und define.
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- Anhänge hochladen: Nein
- Beiträge bearbeiten: Nein
-
Foren-Regeln
Lesezeichen