Forum: Mikrocontroller und Digitale Elektronik Atmega1284p und Interrupt am PD6 bzw. PCINT30


von Thomas Schmidt (Gast)


Lesenswert?

Hallo alle zusammen,

die mC-Welt macht mir wahnsinnig viel Spaß und ich will sie schneller 
näher kennenlernen.

Nun meine Frage, ich habe jetzt eine Platine gebaut und einen Taster am 
PD6 (PCINT30) angebracht. Allerdings schaffe ich es nicht den Interrupt 
richtig zu konfigurieren. Geht es überhaupt am PCINT30 einen Interrupt 
durch den Taster auszulösen?

Habe zum Testen den Taster an PCINT0 angeschlossen und der Interrupt 
wird ausgelöst! Wo ist dann das Problem? Ist PCINT30 nicht 
interruptfähig?

Hier der Auszug:


#include <avr/interrupt.h>
#include <util/delay.h>

int main(void) {
   void PCINT0_Init(void); //Prototyp
   void PCINT30_Init(void); //Prototyp
   PCINT0_Init();
   PCINT30_Init();
}


while(1){
_delay_ms(100);
}


ISR(PCINT30_vect) // !!! DIERSER VECTOR WIRD VON AVR NICHT ERKANNT??????
{
PORTA | = (1<<PINA5); // LED AN
}


ISR(PCINT0_vect) // !!! DIERSER VECTOR WIRD VON AVR ABER ERKANNT
{
PORTA | = (1<<PINA6); // LED AN
}


void PCINT30_Init(void)    // Initialisierung PCINT30 PIN
{
   DDRD &= ~(1 << PIND6);    // D7 als Eingang
   PORTD |= (1 << PORTD6);    // Eingang mit pull-up enable
   PCICR |= (1 << PCIE3);
   PCMSK3 |= (1 << PCINT30);
   sei();
}


void PCINT0_Init(void)     // Initialisierung PCINT0 PIN
{
   DDRA &= ~(1 << PA6);    // D7 als Eingang
   PORTA |= (1 << PA6);    // Eingang mit pull-up enable
   PCICR |= (1 << PCIE0);
   PCMSK0 |= (1 << PCINT0);
   sei();
}

von Spess53 (Gast)


Lesenswert?

Hi

>ISR(PCINT30_vect) // !!! DIERSER VECTOR WIRD VON AVR NICHT ERKANNT??????

Lt. Datenblatt sollte der PCINT3_vect heißen.

MfG Spess

von avr (Gast)


Lesenswert?

Im Datenblatt unter Interrupts steht genau welche Interrupts es gibt. 
Bei PCINT werden immer 8 zusammengefasst.

von Thomas Schmidt (Gast)


Lesenswert?

Probelm gelöst!!! Ihr habt Recht!!! Sehe es jetzt auch!

Vielen Dank! Jetzt ist die Welt wieder gut :)
Klasse! Ich freue mich jetzt wie ein Kind :)

von Thomas Schmidt (Gast)


Lesenswert?

Nochmal herzlichen Dank, habe mir schon Finger rund gegoogelt gehabt...

von Spess53 (Gast)


Lesenswert?

Hi

>Nochmal herzlichen Dank, habe mir schon Finger rund gegoogelt gehabt...

Manchmal reicht es, das Datenblatt zu lesen.

MfG Spess

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.