Interrupt löst nicht aus

Gast #941352
Lesenswert?

Hi, habe eine kleines Interrupt Problem. Ich möchte zwei Interrupts 
innnerhalb eines Programmes nutzten. Hier ist ein auszug aus meinem 
Programm

////////////Interrupt////////////////
interrupt [EXT_INT0] void ext_int0_isr(void)
{
        if(PIND.1==0)
          Takt_T[counter_T]='O';
        if(PIND.1==1)
          Takt_T[counter_T]='I';

        index_T++;
        counter_T++;
}

interrupt [EXT_INT2] void ext_int2_isr(void)
{
      if(PIND.3==0)
        Takt_S[counter_S]='O';
      if(PIND.3==1)
        Takt_S[counter_S]='1';

      index_S++;
      counter_S++;
}

//////////////MAIN///////////////////////
//Interuppt init, int0 und int2 auf rising edge
EICRA=0x33;
EICRB=0x00;
EIMSK=0x05;
EIFR=0x05;

//
while(1)
//warte bis index_S bzw. index_T bei 100 angelangt ist


Nun tritt hierbei das Problem auf, dass kein Interrupt ausgelöst wird. 
Wenn ich aber ein Interrupt auskommentiere funtkioniert das Progamm.
Die Variablen habe ich auch als volatile deklariert und "sei" ist auch 
drin.
Habe ich irgendein fehler bei der initialisierung gemacht, oder ist es 
technisch nichit möglich beide Itnerrupts einzubinden???
Gast #941453
Lesenswert?

Hi, also sei() ist drin und das eigentliche Hauptprogramm ist wesentlich 
länger. Habe nur das Prinzipielle vorgehen gepostet.
Und wie gesagt wenn ich ein Interrupt rausnehme dann gehts, nur wenn 
beide drin sind dann gehts komischerweise nicht

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren