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
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);
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 ?
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
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.