/* gpio interrupt handler */
LOCAL void gpio_interrupt_cb(void){
/*
// 不可靠的代码
_xt_isr_mask(1<<ETS_GPIO_INUM); //disable interrupt
printf(“gpio_interrupt_cb \n”);
GPIO_REG_WRITE(GPIO_STATUS_W1TC_ADDRESS,TRUE); //clear interrupt mask
_xt_isr_unmask(1<<ETS_GPIO_INUM); //Enable the GPIO interrupt
*/
uint32 gpio_status;
gpio_status = GPIO_REG_READ(GPIO_STATUS_ADDRESS );
GPIO_REG_WRITE(GPIO_STATUS_W1TC_ADDRESS,gpio_status);
printf(“gpio_interrupt_cb \n”);
}
void gpio_input_set(void){
GPIO_ConfigTypeDef gpio_in_cfg;
gpio_in_cfg.GPIO_IntrType = GPIO_PIN_INTR_NEGEDGE; // 下降沿 GPIO_PIN_INTR_LOLEVEL
gpio_in_cfg.GPIO_Mode = GPIO_Mode_Input;
gpio_in_cfg.GPIO_Pullup = GPIO_PullUp_EN; // GPIO_PullUp_EN
gpio_in_cfg.GPIO_Pin = GPIO_Pin_4;
gpio_config(&gpio_in_cfg);
GPIO_REG_WRITE(GPIO