This is how I set my interrupts. ~~~~~~ struct eiclineconfig eiclineconf;
ioport_set_pin_mode(PIN_PA16, MUX_PA16C_EIC_EXTINT1 | IOPORT_MODE_PULLUP);
ioport_disable_pin(PIN_PA16);
/* Setup Motion interrupt PIN as EIC*/
eic_line_conf.eic_mode = EIC_MODE_EDGE_TRIGGERED;
eic_line_conf.eic_edge = EIC_EDGE_FALLING_EDGE;
eic_line_conf.eic_level = EIC_LEVEL_LOW_LEVEL;
eic_line_conf.eic_filter = EIC_FILTER_DISABLED;
eic_line_conf.eic_async = EIC_ASYNCH_MODE;
eic_enable(EIC);
eic_line_set_config(EIC, EXT_INT1,
&eic_line_conf);
eic_line_set_callback(EIC, EXT_INT1, cb,
EIC_1_IRQn, 1);
eic_line_enable(EIC, EXT_INT1);
sysclk_disable_peripheral_clock(EIC);
~~~~~~
~~~~~~
static void cb(){
SemaphoreGiveFromISR(semid);
}
void task(){
for(;;){
if(SemaphoreTake(semid){
//toggle led
}
}} ~~~~~~ I also did a separate test where my external interrupts has a priority 1 and they constantly come in while the ast stops coming.