/*---------------------------------------------------------------------------*/ static int configure(int type, int c) {switch (type) { case SENSORS_ACTIVE: if (c) { if(!status(SENSORS_ACTIVE)) { timer_set(&debouncetimer, 0); BUTTON_IRQ_EDGE_SELECTD(); BUTTON_SELECT(); BUTTON_MAKE_INPUT(); BUTTON_ENABLE_IRQ(); } } else { BUTTON_DISABLE_IRQ(); } return 1; } return 0; }
/*---------------------------------------------------------------------------*/ static int configure(int type, int value) { switch(type) { case SENSORS_HW_INIT: BUTTON_IRQ_EDGE_SELECTD(); BUTTON_SELECT_IO(); BUTTON_MAKE_INPUT(); return 1; case SENSORS_ACTIVE: if(value) { if(!BUTTON_IRQ_ENABLED()) { timer_set(&debouncetimer, 0); BUTTON_ENABLE_IRQ(); } } else { BUTTON_DISABLE_IRQ(); } return 1; } return 0; }
/*---------------------------------------------------------------------------*/ static void deactivate(void) { BUTTON_DISABLE_IRQ(); sensors_remove_irq(&button_sensor, BUTTON_IRQ_PORT()); }