Forum: Mikrocontroller und Digitale Elektronik AVR//C// Interrupt über ext.Taste ?


von __Son´s B. (bersison)


Lesenswert?

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...
}

von Holger P. (Gast)


Lesenswert?

Bei welch einem Controller?

von __Son´s B. (bersison)


Lesenswert?

Holger P. schrieb:
> Bei welch einem Controller?

ATmega16

von Jens P. (Gast)


Lesenswert?

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.

von __Son´s B. (bersison)


Lesenswert?

hilft mir hier leider nicht weiter!
Deine Angabe stehen bereits.

von Timmo H. (masterfx)


Lesenswert?

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)

von __Son´s B. (bersison)


Lesenswert?

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?

von Timmo H. (masterfx)


Lesenswert?

Einmal ganz vorne beim Pinout und weiter in der Mitte im Kapitel 
Interrupts (dort sind alle Interrupt-Quellen beschrieben).

von Malte S. (maltest)


Lesenswert?

Das ist eigentlich gar nicht schade, da in den allermeisten Fällen die 
Kombination Taster und Interrupt eine höchst unschöne ist. 
Entprellung

von Timmo H. (masterfx)


Lesenswert?

Dennoch ist es manchmal unumgänglich, z.B. wenn man den controller aus 
einem sleep mode wieder aufwecken will

von Malte S. (maltest)


Lesenswert?

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...

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.