Guten Abend zusammen, mein Problem wäre folgendes: In meinem Programm wird per Pin Change Interrupt eine ISR aufgerufen. In dieser ISR muß ich warten, bis der entsprechende Pin, welcher -auch- die ISR steuert, wieder die Flanke ändert. Nun nimmt dies der AVR -laut AvrStudio4- natürlich zum Anlaß, nach verlassen der ISR sofort diese wieder aufzurufen. Gibt es irgendeine Möglichkeit, das zu unterbinden? Das löschen des dazugehörigen Interruptflags in PCIFR nach Auftreten des Interrupts bzw entsprechendem Bit im PCMSK-Register innerhalb der ISR bringt nichts. Außerhalb kein Problem. Auf Int0...2 kann der Pin aufgrund der gegebenen Hardware nicht gelegt werden. Es bleibt augrund der relativ hohen Frequenz des Taktes am Interrupt-Pin (20 MHz AVR:1 MHz Takt am PCINT) kaum Zeit für die Ausführung von Kommandos. Vielen Dank & Viele Grüsse
Wenn ich Dich richtig verstanden habe, willst Du also per Interrupt auf die Änderung an einem Pin reagieren - und zwar derart, dass Du auf eine erneute Änderung des entsprechenden Pins wartest. Diese löst den Interrupt jedoch erneut auf, was Dein Problwm ist. Warum verwendest Du nicht einfach ein Bit, welches djen aktuellen Status speichert ?
Weil der Rücksprung aus der ISR so viele Zyklen verbraucht, das der Status wieder hinfällig ist. Alles schon probiert.
Will sagen, das ich -sehr zeitnah- auf diesen Pin Change Interrupt mit einer Aktion reagieren muß. Bit setzen, aus der ISR rauspringen, bit prüfen, Aktion ausführen etcpp dauert zu lange.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.