hi, ich möchte auf einem xmega-board zwei interrupt auf einem port auslösen. ein rechtecksignal wird auf pin0 und pin1 angelegt. bei einer HIGH-flanke soll interrupt0 ausgelöst werden und alle pins des port_c auf HIGH setzten. bei einer LOW-flanke soll interrupt1 ausgelöst werden und alle pins des port_c auf LOW setzen. leider wird scheinbar nur ein interrupt ausgelöst, denn port_c bleibt durchgehend auf HIGH. Auf die fallende flanke am eingang wird scheinbar nicht reagiert. hier die wichtigsten befehle aus meinem code: //steigende Flanke ISR(PORTF_INT0_vect) { PORTC.OUTSET = 0xff; //Alle Pin des PortC werden HIGH } //fallende Flanke ISR(PORTF_INT1_vect) { PORTC.OUTSET = 0x00; //Alle Pin des PortC werden LOW } int main (void) { PORTF.DIR = 0x00; //PORTF Eingang PORTC.DIR = 0xFF; //PORTC Ausgang sei(); PMIC.CTRL = PMIC_MEDLVLEN_bm; // Pullup einschalten | auf steigende Flanke reagieren PORTF.PIN0CTRL = PORT_OPC_PULLUP_gc | 1; // Pullup einschalten | auf fallende Flanke reagieren PORTF.PIN1CTRL = PORT_OPC_PULLUP_gc | 2; // PIN0 des PortF als Quelle für Interrupt0 PORTF.INT0MASK = 0x01; // PIN3 des PortF als Quelle für Interrupt1 PORTF.INT1MASK = 0x02; PORTF_INTCTRL = PORT_INT0LVL_MED_gc | PORT_INT1LVL_MED_gc; return 0; } ich sitz da schon ne ganze weile dran aber kann den fehler nicht beseitigen. wäre sehr nett, wenn da jemand einen blick drauf werfen könnte. danke
hat sich erledigt, hab den fehler in der interrupt1-routine gefunden. danke trotzdem, falls sich jemand trotzdem die mühe gemacht hat :)
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.