/****************************************************************************** * FunctionName : peri_jdq_init * Description : JDQ initialize, mainly initialize pwm mode * Parameters : uint8 gpio_id * Returns : none *******************************************************************************/ void ICACHE_FLASH_ATTR peri_jdq_init(uint8 gpio_id) { // enum JDQ_STATE jdq_state; PRINTF("I am the jdq\n"); //PRINTF("jdq_state: %d\n", jdq_state); PIN_FUNC_SELECT(tisan_get_gpio_name(gpio_id), tisan_get_gpio_general_func(gpio_id)); PIN_PULLUP_EN(tisan_get_gpio_name(gpio_id)); jdq_pin=gpio_id; }
/****************************************************************************** * FunctionName : peri_key_init. * Description : initialize key device. * Parameters : none * Returns : none *******************************************************************************/ void ICACHE_FLASH_ATTR peri_single_key_init(uint8 gpio_id,key_function long_press, key_function short_press) { struct key_param *single_key = (struct key_param *)os_zalloc(sizeof(struct key_param)); uint32 gpio_name=tisan_get_gpio_name(gpio_id); uint8 gpio_func=tisan_get_gpio_general_func(gpio_id); single_key->gpio_id = gpio_id; single_key->key_level = 1; single_key->long_press = long_press; single_key->short_press = short_press; ETS_GPIO_INTR_DISABLE(); peri_vibrate_init_NULL(); key_init(gpio_name, gpio_id, gpio_func); ETS_GPIO_INTR_ATTACH(gpio_intr_handler,single_key); ETS_GPIO_INTR_ENABLE(); }
void ICACHE_FLASH_ATTR vibrate_init(uint8 gpio_id) { uint32 v_gpio_name=tisan_get_gpio_name(gpio_id); uint8 v_gpio_func=tisan_get_gpio_general_func(gpio_id); PIN_FUNC_SELECT(v_gpio_name, v_gpio_func); PIN_PULLUP_EN(v_gpio_name); gpio_output_set(0, 0, 0, GPIO_ID_PIN(gpio_id)); //set as input mode gpio_register_set(GPIO_PIN_ADDR(gpio_id), GPIO_PIN_INT_TYPE_SET(GPIO_PIN_INTR_DISABLE) | GPIO_PIN_PAD_DRIVER_SET(GPIO_PAD_DRIVER_DISABLE) | GPIO_PIN_SOURCE_SET(GPIO_AS_PIN_SOURCE)); //clear interrupt status GPIO_REG_WRITE(GPIO_STATUS_W1TC_ADDRESS, BIT(gpio_id)); //enable interrupt gpio_pin_intr_state_set(GPIO_ID_PIN(gpio_id), GPIO_PIN_INTR_NEGEDGE); peri_alarm_init(ALARM_GPIO_ID); peri_vibrate_tim_start(100); }
void ICACHE_FLASH_ATTR peri_alarm_init(uint8 gpio_id) { PIN_FUNC_SELECT(tisan_get_gpio_name(gpio_id), tisan_get_gpio_general_func(gpio_id)); PIN_PULLUP_EN(tisan_get_gpio_name(gpio_id)); }