Forum: Mikrocontroller und Digitale Elektronik ATtiny26 Pin Change Interuppt ( PCINTx ) in der Praxis wenig brauchbar oder ?


von Bernd S. (Firma: Anscheinend Corner-Cases ;-)) (bernd_stein)


Lesenswert?

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

von Spess53 (Gast)


Lesenswert?

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

von Bernd S. (Firma: Anscheinend Corner-Cases ;-)) (bernd_stein)


Lesenswert?

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

von Karlheinz (Gast)


Lesenswert?

Spess53 schrieb:
> Wozu mögen wohl die PCMSKn-Register gut sein?

Wo sind die beim ATtiny26 ?

von Michael A. (micha54)


Lesenswert?

Hallo,

das entsprechende Bit mit 2 Codezeilen in der Interruptroutine 
abzufragen sollte doch kein Problem sein ?

Gruß,
Michael

von Spess53 (Gast)


Lesenswert?

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

von Peter D. (peda)


Lesenswert?

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

von Markus W. (Firma: guloshop.de) (m-w)


Lesenswert?

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...

von Peter D. (peda)


Lesenswert?

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

von Markus W. (Firma: guloshop.de) (m-w)


Lesenswert?

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.

von Peter D. (peda)


Lesenswert?

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
Noch kein Account? Hier anmelden.