Forum: Mikrocontroller und Digitale Elektronik Interrupt löst nicht aus


von Blogga (Gast)


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???

von Blogga (Gast)


Lesenswert?

Sorry nutze einen Mega128 + codevision...
Gruß der Blogga

von gespannter (Gast)


Lesenswert?

Ist das der gesamte Code? Ich vermisse ein sei()...

von Blogga (Gast)


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

von Blogga (Gast)


Lesenswert?

Ich glaub das TIMSK Register ist für Timer-Interrupts und nciht für 
externe Interrupts. Ich will nur ein externes Interrupt auslösen...

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.