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???
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
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.