Hallo,
beschäftige mich gerade mit Interrupt´s, leider komme ich nicht weiter;
_Aufgabe_
Taste PA7 steigende Flanke löst ISR aus
_Frage_
Wie/wo kann ich defenieren, dass PA7 auslöst?
__C, Grundgerüst__
ISR(INT0_vect)
{
tu was...
}
int16_t main(void)
{
DDRA=0b00000000;
MCUCR=(1<<ISC00)|(1<<ISC01);
GICR=(1<<INT0);
sei();
tu was...
}
Gast
#3116918
Bei welch einem Controller?
Holger P. schrieb: > Bei welch einem Controller? ATmega16
Gast
#3116922
diverse Interrupt enable flags, prioritätsflags usw setzen. Bei den Pics z.B. gibts noch Gruppen wie "Peripheral Interrupt Enable" usw. Dann gibbet sicherlich noch n Flag für Steigende/Fallende Flanke oder einfach bei jeder Änderung. Datenblatt lesen hilft hier ungemein.
hilft mir hier leider nicht weiter! Deine Angabe stehen bereits.
Der Atmega16 hat nur INT0-INT2 aber kein PCINT wie die neueren mir Controller. Von daher musst du den Taster schon PB2, PD2 oder PD3 benutzen für den Taster (zumindest wenn du den Interrupt verwenden willst)
Timmo H. schrieb: > Der Atmega16 hat nur INT0-INT2 aber kein PCINT wie die neueren mir > Controller. > Von daher musst du den Taster schon PB2, PD2 oder PD3 benutzen für den > Taster (zumindest wenn du den Interrupt verwenden willst) Oh schade, ich dachte das ich jeden Eingang darauf einrichten kann. Ich habe die Info noch nicht gefunden. Wo genau im Datenblatt steht das mit diesen 3 Eingängen?
Einmal ganz vorne beim Pinout und weiter in der Mitte im Kapitel Interrupts (dort sind alle Interrupt-Quellen beschrieben).
Das ist eigentlich gar nicht schade, da in den allermeisten Fällen die Kombination Taster und Interrupt eine höchst unschöne ist. Entprellung
Dennoch ist es manchmal unumgänglich, z.B. wenn man den controller aus einem sleep mode wieder aufwecken will
Klar aber das ist in den wenigsten Fällen der Grund, einen Interrupt nehmen zu wollen. Erst recht in Kombination mit Unklarheit über die zur Verfügung stehenden Interrupt-Quellen...
Antwort schreiben
Bitte melde dich an, um einen Beitrag zu schreiben.