Forum: Mikrocontroller und Digitale Elektronik Warum geht meiner INT0 nicht ??


von Dominic Thomé (Gast)


Lesenswert?

Hallo,

kann mir einer sagen, warum ich mit meinem AVR-GCC keinen INTO
generiert bekomme ?

MCUCR = _BV(ISC01)|_BV(ISC00); // Ansteigende Flanke
enable_external_int ((1<<INT0) );


Interrupt-Hnadler schaut so aus :
SIGNAL  (SIG_INTERRUPT0) { // Drehzahlmesser
      rpm++;
//    lcd_puts_P(".-#");
}
Sollte doch eigentlich so sein, daß wenn das SIgnal auf INT0-Pin von 0
auf 1 wechselt, meine Routine angesprungen werden soll, oder sehe ich
das falsch ?

Danke Dominic

von Thomas K (Gast)


Lesenswert?

steht in deinem Programm irgendwo sei() ?

von Dominic Thomé (Gast)


Lesenswert?

Hallo Thomas,
ei, natürlich habe ich die Interrupts enabled, habe es bloss vergessen
oben zu erwähnen......
Ist in der main, gleich nach init(); wo der gesamte Initkram wie auch
die Interrupts gemacht werden.....

Dominic

von Dieter B (Gast)


Lesenswert?

Hallo

Hast du den INT0 Pin auch auf Eingang geschaltet ?

MFG
Dieter

von Dominic Thomé (Gast)


Lesenswert?

Hallo Dieter,
hatte beides ausprobiert, Ausgang wie Eingang.
Laut Datenblatt des M16 soll es ja, sofern man nicht vorhat einen
Softwareinterrupt zu generieren egal sein, ob dieser Pin als Eingang
ode als Ausgang fungiert.

Dominic

von Dominic Thomé (Gast)


Lesenswert?

Ach nochwas,

als Taktgenerator für den INT0, habe ich zur Zeit einen weiteren M16
auf dem STK500, welcher zyklisch von 0-255 Zählt und dies auf Port C
ausgibt, von dort 2 Strippen auf die andere Platine an den
INT-Eingang...

Dominic

von Thomas K (Gast)


Lesenswert?

ich schätz mal das
enable_external_int ((1<<INT0) );
sollte dafür sein aber probier trotzdem mal das INT0 Bit im GICR
Register manuell zu setzen.

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.