Forum: Compiler & IDEs Interrupt PCINT7


von Coco|#C (Gast)


Lesenswert?

Ich arbeite mich in die Interrupt programmierung ein!
Verwende den Atmega640 Proz. Den Grund, dass ich diesen grossen Proz 
ausgewählt habe ist, weil ich ein Projekt mit diesem Proz in meiner 
Firma habe!

Ich verwende das AVR STUDIO 4.

Problem:
PCINT0 funktioniert mit dem gleichen CODE wie unten einwandfrei, jedoch 
der PCINT 7 funktioniert nicht.

Er gibt mir diese Fehlermeldung:
../Atmega640ansteuerung.c:34: warning: 'PCINT7_vect' appears to be a 
misspelled signal handler

Weiss jemand, ob ich hier was faltsch initialisiert habe?
Oder was ist das Problem?

CODE------------------------------------------------------------

#include <avr/io.h>
#include <util/delay.h>
#include "Atmega640ansteuerung.h"
#include <avr/interrupt.h>

int main (void)
{
  init();
  LED_EIN();
}

void init(void)
{
  DDRB   &=  ~(1<<PB7);
  DDRH   |=   (1<<LED_PIN);
  PCICR  |=   (1<<PCIE0);
  PCMSK0   |=   (1<<PCINT7);
  sei();
}

ISR(PCINT7_vect)       /* veraltet: SIGNAL(SIG_INTERRUPT0) */
{
    LED_AUS();
}


// PS:LED_AUS und LED_EIN sind im Header definiert.

: Verschoben durch Moderator
von MWS (Gast)


Lesenswert?

Coco|#C schrieb:
> mit diesem Proz

Weniger doofe Abkürzungen benutzen, dafür Datenblatt lesen.
Es gibt keinen PCINT7 Interruptvektor.

Hast Du das System der PCInts verstanden ?
Wozu wird der wohl gehören: ?

> PCMSK0   |=   (1<<PCINT7);

von Coco|#C (Gast)


Lesenswert?

Wie kann ich denn den PCINT7 verwenden?

von MWS (Gast)


Lesenswert?

Coco|#C schrieb:
> Wie kann ich denn den PCINT7 verwenden?

Hast Du Dir das Datenblatt durchgelesen ?

Coco|#C schrieb:
> PCMSK0   |=   (1<<PCINT7);

Warum wird wohl das PCINT7-Bit im Pin Change Mask Register 0 gesetzt ?
Warum ist es das Mask Register 0, wozu wird das wohl gehören ?

von VAR (Gast)


Lesenswert?

den gibt es schlicht nicht!

Jeder Vektor ist für 8 Inputs zuständig.

PCINT0_vect versorgt die PCINT0..PCINT7.
PCINT1_vect versorgt die PCINT8..PCINT15.
PCINT2_vect versorgt die PCINT16..PCINT23.

-> Datenblatt lesen -> External Interrupts

von Coco|#C (Gast)


Lesenswert?

Iss ein Snikers! Get some Nuts!
Und JA ich habe Verstanden, Sir!
Ciao.

von Coco|#C (Gast)


Lesenswert?

At VAR!
Danke für den Tip!
Sehr freundlich!
lg Coco|#C

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.