Forum: Mikrocontroller und Digitale Elektronik externe Interrupts Mega128


von Thomas (Gast)


Lesenswert?

Hallo,

leider habe ich hier ein Problem mit einem externen Interrupt eines 
Mega128.

Ersteres Problem ist was für Register ich setzten muss damit überhaupt 
was passiert wenn ich auf eine fallende Flanke an INT0 (PD0) triggern 
will.

Ich mache bisher:

  EICRA |= (1<<PD0);
  EIMSK |= (1<<INT0);

Gelegentlich kommt es auch zu einem Interrupt aber scheinbar nicht jedes 
mal. Global habe ich interrupts aktiviert, externe Pull-Up Widerstände 
sind vorhanden.

Das zweite Problem ist eher ein kosmetisches. Ich verwende im Moment 
SIGNAL(SIG_INTERRUPT0) weil ich nicht herausfinden konnte welche die 
entsprechende ISR(???) anweisung dafür ist.

Vielen Dank
Thomas

von Thomas (Gast)


Lesenswert?

OK Problem 2 ist gelöst ;-)

INT0_vect

von wt (Gast)


Lesenswert?

#include <mega128.h>

// External Interrupt 0 service routine
interrupt [EXT_INT0] void ext_int0_isr(void)
{
// Place your code here

}

// Declare your global variables here

void main(void)
{

// External Interrupt(s) initialization
// INT0: On
// INT0 Mode: Falling Edge
// INT1: Off
// INT2: Off
// INT3: Off
// INT4: Off
// INT5: Off
// INT6: Off
// INT7: Off
EICRA=0x02;
EICRB=0x00;
EIMSK=0x01;
EIFR=0x01;

// Timer(s)/Counter(s) Interrupt(s) initialization
TIMSK=0x00;
ETIMSK=0x00;

// Global enable interrupts
#asm("sei")

while (1)
      {
      // Place your code here

      };
}

von Thomas (Gast)


Lesenswert?

Danke Dir!

Leider habe ich jetzt das Problem dass das Programm gelegentlich in den 
Interrupt springt (wenn eine Flanke kommt, also in Ordnung), manchmal 
führt der Controller aber stattdessen einen Reset aus! Kann das ein 
Softwareproblem sein oder meint ihr es liegt an der Hardware?

von Thomas (Gast)


Lesenswert?

Das Problem tritt auch auf wenn ich den Teil auskommentiere. Ich beginne 
daher ein neuen Thread.

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.