Hallo zusammen, beschäftige mich gerade mit dem Pin Change Interuppt beim ATtiny26. Bei diesem AVR-Typ gibt ja quasi zwei Gruppen - den PCINT0 mit den Anschlüssen PB 7,6,5,4 ; PA 7,6,3 und den PCINT1 mit den Anschlüssen PB 3,2,1,0. Das blöde dabei finde ich, das man hier kein Auswahlregister hat um einen einzelnen Pin dafür nutzen zu können, da ja selbst wenn ein Anschluß aus der selben Gruppe ein Ausgang ist und dieser seinen Zustand verändert eine PCINTx ausgelöst wird, obwohl man eingentlich an einem andern Anschluß dieser Gruppe der als Eingang geschaltet ist den dortigen Pegelwechsel auswerten möchte. Gut bei einem als Ausgang geschalteten Pin der selben Gruppe wäre es natürlich möglich den PCINTx vor dem Schalten zu sperren und danach wieder freizugeben oder bei zwei Eingängen in der PCINTx-Service Routine zu prüfen welcher Eingang die PCINTx verursacht hat bzw. ob der gewünschte Eingang dies verursachte. Aber das sind mir dann evtl. zu viele ungewollte Hauptprogrammunterbrechungen. Deshalb finde ich den PCINTx beim ATtiny26 für die Praxis wenig tauglich oder wie seht Ihr das ? Bernd_Stein
Hi >Deshalb finde ich den PCINTx beim ATtiny26 für die Praxis wenig tauglich >oder wie seht Ihr das ? Wozu mögen wohl die PCMSKn-Register gut sein? MfG Spess
Spess53 schrieb: > Hi > > Wozu mögen wohl die PCMSKn-Register gut sein? > > MfG Spess > Wo finde ich denn das Pin Change Mask Register beim ATtiny26 ? Bernd_Stein
Hallo, das entsprechende Bit mit 2 Codezeilen in der Interruptroutine abzufragen sollte doch kein Problem sein ? Gruß, Michael
Hi
>Wo finde ich denn das Pin Change Mask Register beim ATtiny26 ?
Ups. Dann scheint das (fast) der einzige zu sein, der die nicht hat. Bei
den Nachfolgern ATTiny261/461/861 sind diese Register vorhanden.
Von der Seite gesehen, ist der PC-Int beim ATTiny26 natürlich nicht sehr
brauchbar.
MfG Spess
Bernd Stein schrieb: > Deshalb finde ich den PCINTx beim ATtiny26 für die Praxis wenig tauglich Das scheint Atmel auch (ziemlich spät) aufgefallen zu sein und hat mit dem ATiny261 nachgebessert. Peter
Peter Dannegger schrieb: > Das scheint Atmel auch (ziemlich spät) aufgefallen zu sein und hat mit > dem ATiny261 nachgebessert. Das ist richtig, aber wie Michael schon schrieb, eine kleine Abfrage zu Beginn der Interrupt-Routine sollte da keine große Hürde darstellen. Ansonsten einfach umsteigen auf einen der Nachfolgertypen. Mit dem alten ATtiny26 würde ich eher keine neue Entwicklung mehr starten...
Aufpassen muß man beim 261, daß die Maskenbits etwas wirr angeordet sind und einige schon beim Reset enabled sind, um zum 26 kompatibel zu sein. Peter
Peter Dannegger schrieb: > Aufpassen muß man beim 261, daß die Maskenbits etwas wirr angeordet sind > und einige schon beim Reset enabled sind, um zum 26 kompatibel zu sein. Oh, wusste ich nicht. Beim aktuellen Typ (ATtiny261A bzw. ATtiny461A, ATtiny861A) sind sie klar durchnummeriert. Zuerst Port A, von 0 bis 7, dann Port B von 8 bis 15. Was die Default-Werte betrifft, hast du Recht, die sind auch mir ein Rätsel. Da man die aber fast immer sowieso neu setzt, sollte das kein Thema sein.
Besser gesagt, die Zuordnung der PCIE0/1 Bits ist etwas wirr. Peter
Beitrag #6169413 wurde von einem Moderator gelöscht.
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.