怎么实现 同一个按键的 开机和关机
-
我想 对同一个 按键,实现开机和关机的功能。不知道 怎么实现。比如,我PA4,当我按下3秒的时候可以实现其关机,关机后,我再次按下PA4 1秒,又能开机。
望,各位能给指导,再次不吝赐教,谢谢!
-
void poweron_long_press_det(void)
{
uint8_t i=10;
//uint8_t bat_lv1=0;system_set_port_mux(GPIO_PORT_D,GPIO_BIT_4,PORTD4_FUNC_D4); system_set_port_pull(GPIO_PD4,true); gpio_set_dir(GPIO_PORT_D,GPIO_BIT_4,GPIO_DIR_IN); pmu_set_pin_to_CPU(GPIO_PORT_D,1<<GPIO_BIT_4);
while(i)
{
if(charge_state)//电池
return;
if(gpio_portd_read() & 0x10) //key pd4
break;
co_delay_100us(3000);
i--;}
if(i)
{co_printf("=no power on=\r\n"); // no long press
pmu_set_pin_pull(GPIO_PORT_D, (1<<GPIO_BIT_4), true);
pmu_port_wakeup_func_set(GPIO_PD4);
system_power_off(false);
}
else
{
// power on
//system_sleep_disable();
co_printf("=power on=\r\n");
}
}
开机功能,
关机功能
void system_power_off(bool aldo_bypass)
-
你好,感觉你 写的代码,有点看不明白呀,这些代码。
能不能 有点 注释呀?
这些代码,看的不是很明白。
-
-
是不是 直接调用这个 void poweron_long_press_det(void)函数就可以?
上面有几点不清楚的地方我都 使用汉字 进行了注释了,帮忙解答一下
谢谢!
-
此回复已被删除!
-
-
注意看英文注释,不会用软件翻译
-
-
这个函数主要放void user_entry_after_ble_init(void)里面,else进入这个函数了,相当于开机。
-
@鱼的记忆 ***我已经实现了这个功能了。现在我还有个问题 ,就是 当设备正在正常的工作,按住 开关机键,设备会进入关机状态,如果这个时候不松开手,以后设备又会进入开机的状态。
现在问题是:怎么避免这个情况呢?***
-
给他设置一个标志位,就可以解决这个问题,
-
感谢鱼的记忆,你给的代码我已用上