Topic

FAQ
Login Register
How to Use GPIO Interrupt? (TLSR8253)
Sep 06, 2023 08:26

/

A

/A


#define In_Pb6                          GPIO_PB6
#define PB6_FUNC                        AS_GPIO
#define PB6_INPUT_ENABLE                1
#define PULL_WAKEUP_SRC_PB6             1     // PM_PIN_PULLUP_1M
void user_init_peripheral(intretention_flag)

{

gpio_set_interrupt(GPIO_PB6 ,pol_falling);

}

voidgpio_irq(void)
{
    if((reg_irq_src & FLD_IRQ_GPIO_EN)==FLD_IRQ_GPIO_EN)
    {
        reg_irq_src |= FLD_IRQ_GPIO_EN;
        mini_printf("Interrupt!! GPIO ");

        if( 0== gpio_read(In_Pb6) )
        {
            mini_printf("PB6!! \n");
        }
        else
        {
            mini_printf("Other \n");
        }
    }
}

_attribute_ram_code_void irq_handler(void)
{   
    gpio_irq();
}


I set it up to use GPIO Interrupt as above.
However, interrupts are not occurring properly in irq_handler. Is there a problem with the code above?

1 replies
TL_Soyo Sep 06, 2023 10:12
0
/A

Hi,

  Please download driver SDK(http://wiki.telink-semi.cn/wiki/chip-series/TLSR825x-Series/) to start .