Forum: Mikrocontroller und Digitale Elektronik Ext Interrupt AtMega128


von Andreas (Gast)


Lesenswert?

Hallo Leute ich habe folgendes Problem....

Ich versuche über einen ext. Interrupt die Zeit zwischen mehreren
Flanken zu messen...(ich weiss es gibt da eine capture funktion..ich
will es aber selbst machen) jedenfalls habe ich den Ext Int 2 über das
Register EICRA ISC0 auf fallende Flanke eingestellt. Danch wird der
Interrupt über das Register EIMSK bit INT2 freigeschaltet. Frage :
Warum bekomme ich dauernd einen interrupt wenn der Pegel auf Low liegt.
Ich habe schon im Datenblatt nachgeschaut und gelesen dass der INT Pin
als Output eigestellt werden muss... habe ich auch gemacht passiert
nichts.

von johnny.m (Gast)


Lesenswert?

>...INT Pin als Output eigestellt werden muss...

Wo steht die Weisheit denn?

Und wenn Du den INT2 benutzt musst Du auch die ISC2...Bits einstellen
und nicht die ISC0...

von Andreas (Gast)


Lesenswert?

When an INT7 – INT0 bit is written to one and the I-bit in the Status
Register (SREG) is
set (one), the corresponding external pin interrupt is enabled. The
Interrupt Sense Control
bits in the External Interrupt Control Registers – EICRA and EICRB –
defines
whether the external interrupt is activated on rising or falling edge
or level sensed.
------>Activity on any of these pins will trigger an interrupt req-uest
even if the pin is enabled as an output. <-----This provides a way of
generating a software interrupt.

Auszug aus dem Datenblatt.

Natürlich habe ich ISC2 "0" gesetzt und ISC2 "1" gelöscht

von johnny.m (Gast)


Lesenswert?

>...even if the pin is enabled as an output.
Weißt Du, was 'even' heißt? Abgesehen davon hast Du oben geschrieben,
dass Du die ISC0x-Bits gesetzt hast. Die gehören aber nun mal zum
Externen Interrupt 0 und nicht zum INT2! Wenn die ISC2x-Bits 0 sind,
hast Du einen Level-Interrupt.

von johnny.m (Gast)


Lesenswert?

Ach ja, wenn der Pin als Output mit High-Pegel programmiert ist und Du
ziehst ihn extern niederohmig auf Masse, gibts nen satten
Kurzschluss...

von johnny.m (Gast)


Lesenswert?

Hey, vom doppelt posten wirds auch net besser...

von Andreas (Gast)


Lesenswert?

ups.. sorry für das neuladen

von Andreas (Gast)


Lesenswert?

ehm trotzdem geht nichts ... hab den
PD2 als Input, ISC20=1 und ISC21=0 und INT2 =1 d.h. Interrupt bei
fallender Flanke.... Mein Signal ist halt dauerhaft "0" bis die
ersten Rechtecke kommen(Was ich mit einen knopfdruck starte) trotzdem
kommt immer ein Interrupt

von johnny.m (Gast)


Lesenswert?

Pullup eingeschaltet?

von Andreas (Gast)


Lesenswert?

ja und geht trotzdem nicht kommt immer ein int

von Andreas (Gast)


Lesenswert?

hab jetzt mein signal invertiert damit es aktiv Hi ist.

jetzt kommt kein Int mehr ??!

von Johannes (Gast)


Lesenswert?

Hi,

Ich habe im Moment auch Probleme mit dem INT2 auf PORTD. Falls du deinen 
UART1 aktiviert hast zeigt der Pin INT2 ebenfalls an, ob ein UART1 
Receive Complete ist. Das könnte ebenfalls zu Problemen führen..

Gruß Johannes

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.