Example #1
0
void Gpio::enableInterrupt(xXx::IGpio_Callback_t callback, void *user) {
    // Configuration for button use
    // pio_handler_set_pin(_pin, (PIO_PULLUP | PIO_DEBOUNCE | PIO_IT_RISE_EDGE), interruptFunction);
    pio_handler_set_pin(_pin, PIO_IT_FALL_EDGE, interruptFunction);

    _callback[_pin] = callback;
    _user[_pin]     = user;

    pio_enable_pin_interrupt(_pin);
}
Example #2
0
void ads7843_set_handler(void (*p_handler) (uint32_t, uint32_t))
{
	/* Initialize interrupts */
	pio_handler_set_pin(BOARD_ADS7843_IRQ_GPIO,
			BOARD_ADS7843_IRQ_FLAGS,
			(void (*)(uint32_t, uint32_t)) p_handler
			);

	/* Enable the interrupt */
	pio_enable_pin_interrupt(BOARD_ADS7843_IRQ_GPIO);
}
Example #3
0
/*
*	@fn		nm_bsp_register_isr
*	@brief	Register interrupt service routine
*	@param[IN]	pfIsr
*				Pointer to ISR handler
*/
void nm_bsp_register_isr(tpfNmBspIsr pfIsr)
{
    gpfIsr = pfIsr;

    /* Configure PGIO pin for interrupt from SPI slave, used when slave has data to send. */
    sysclk_enable_peripheral_clock(CONF_WINC_SPI_INT_PIO_ID);
    pio_configure_pin(CONF_WINC_SPI_INT_PIN, PIO_TYPE_PIO_INPUT);
    pio_pull_up(CONF_WINC_SPI_INT_PIO, CONF_WINC_SPI_INT_MASK, PIO_PULLUP);
//	pio_set_debounce_filter(CONF_WINC_SPI_INT_PIO, CONF_WINC_SPI_INT_MASK, 10);
    pio_handler_set_pin(CONF_WINC_SPI_INT_PIN, PIO_IT_LOW_LEVEL, chip_isr);
    pio_enable_interrupt(CONF_WINC_SPI_INT_PIO, CONF_WINC_SPI_INT_MASK);
    pio_handler_set_priority(CONF_WINC_SPI_INT_PIO, (IRQn_Type)CONF_WINC_SPI_INT_PIO_ID,
                             CONF_WINC_SPI_INT_PRIORITY);
}
Example #4
0
void Gpio::enableInterrupt(IGpio_Callback_t callback, void *user) {
    int groupIndex = groupId2groupIndex(pio_get_pin_group_id(_pin));

    if (groupIndex < 0) {
        return;
    }

    _callback[groupIndex][_pin] = callback;
    _user[groupIndex][_pin]     = user;

    // Todo:
    // pio_handler_set_pin(_pin, (PIO_PULLUP | PIO_DEBOUNCE | PIO_IT_RISE_EDGE), staticISR);
    pio_handler_set_pin(_pin, PIO_IT_FALL_EDGE, staticISR);
    pio_enable_pin_interrupt(_pin);
}