AVR PCINT am Mega48

OP #494207
Lesenswert?

Hallo,

ich versuche die PCINT Eingänge zu nutzen. Leider klappt das nicht so 
ganz... Ich benutze den Atmel Mega48 und BASCOM Demoversion 1.11.8.3

Mein Problem:
Ich verwende den PCINT21 (also PD5). Dazu habe ich der Einsprungadresse 
vom PCINT2 (also PORTD) mit dem Befehl 1 festgelegt. Mit 2 habe ich den 
Pin PCINT21 (PD5) aktiviert und mit 3 den Interrupt PCINT2 aktiviert.
Im Interrupt soll bei aufsteigender Flanke von Pind.5 der Stand 
inkrementiert werden. Leider wird das nur ausgeführt wenn sich auch was 
an den Int0 und Int1 eingängen tut. Die sind anderweitig verwendet und 
haben mit der Zählfunktion nix zu tun.

1 On Pcint2 Zaehlen
2 Pcmsk2 = &B00100000
3 Pcicr.2 = 1


4 Zaehlen
5 if pind.5 = 1 then
6  incr Stand
7  Timer1=0
8  enable Timer1
9 end if

Kann mir das einer Erklären?

Gruß und Danke
Florian
OP #494267
Lesenswert?

NEE leider nicht. das Register Pcicr ist für die PCINT eingänge 
zuständig und .2 kennzeichnet den PCINT2



Ja logo da steht auch noch mehr Code drum rum
der Enable interrupt habe ich natürlich auch

Wie gesagt er springt auch nin den Interrupt, aber nur wenn sich auch 
was am INT0 (PD1) tut. der ist aber durch das PCMSK register eigendlich 
ausgeschlossen und erzeugt auch nicht den Interrupt... Er muß nur da 
sein?!?!
#494275
Lesenswert?

Oder anders rum.

Hast du das gleiche Phänomen auch dann, wenn du
nur das oben gepostete (+ Enable Interrupt natürlich)
programmierst?

Bei unerklärlichen Phänomenen ist ein Abspecken auf
eine Minimalverison oft eine gute Idee. So vermeidet
man dass man an der falschen Stelle sucht.
OP #494638
Lesenswert?

Ich habe mal nur den oben genannten Code versucht. durch immer mehr vom
Programm dazunehmen konnte ich also tatsächlich den Int0 als
Fehlerquelle bestimmen. Sobald ich den Interrupt mit Enable Int0
aktiviere, kann ein anderer Prozessor den Zählerstand abfragen. Solange
ich den Bus nicht anshließe zählt der µC brav über den PCINT21. Sobald
der Bus das erste mal abruft läuft die Zählung nur noch wenn der Bus
aktiv ist. Vielleicht kann sich wer mal den Code anschauen und mir
sagen, wiso das so sein kann.
Angehängte Dateien:

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren