Hallo zusammen,
ich habe ein Lichtschranke, die am Int1 Eingang eines Mega16 hängt.
Solange nichts die Lichtschranke durchfährt, liegt eine 0 am Eingang an. Ist was dazwischen, gibts ne 1.
Ich hab den Interrupt so eingestellt, dass er bei einer L==>H Flanke auslösen soll. Also sobald etwas durch die Schranke rauscht. Hier die Initialisierung:
On Int1 Lichtschranke
Mcucr.2 = 1
Mcucr.3 = 1
Enable Interrupts
Enable Int1
Doch... Der Interrupt löst nur sehr unregelmässig aus... Eigentlich fast immer nur jedes zweite Mal, wenn etwas durch die Schranke geht. (Das 1 liegt an, aber es gibt keinen Interrupt)...
Ändere ich die Auslösecharakteristik des Interrupts auf "Change", also dass er triggern soll, sobald die Flanke wechselt, dann löst er jedes mal korrekt aus, einfach zwei mal, was ich vermeiden möchte... Die Hardware scheint mir in Ordnung, nur: wieso löst er nicht immer aus.. ?
Dasselbe Phänomen des "nicht immer auslösens" hab ich, wenn ich ihm sage, er soll von H zu L triggern... Funktioniert auch nicht immer... Komishce Sache.. Sobald er auf einen Flankenwechsel triggern soll, triggert er erfolgreich auf beide Flanken, und zwar immer.
Hab ich was vergessen?
Herzlichen Gruss
Mario
Lesezeichen