对话:
你好!
我根据“kbscn_demo”案例添加一个休眠唤醒功能!
在工程销有的行行任何定时代是时候是可以的。可在当行时的!可在当行时代因子任务后休眠就无法正确常唤醒!
不到有没有什么设置没有设置到,请指教!
谢谢!!!
#define user_timer_notif(1 << 3)
static const ad_kbscn_pin_setup kbscn_row [] = {
ad_kbscn_pin_setup(hw_gpio_port_4,hw_gpio_pin_1),
// ad_kbscn_pin_setup(hw_gpio_port_4,hw_gpio_pin_1),
// ad_kbscn_pin_setup(hw_gpio_port_4,hw_gpio_pin_2),
// ad_kbscn_pin_setup(hw_gpio_port_4,hw_gpio_pin_3),
};
static const ad_kbscn_pin_setup kbscn_col [] = {
ad_kbscn_pin_setup(hw_gpio_port_3,hw_gpio_pin_6),
ad_kbscn_pin_setup(hw_gpio_port_4,hw_gpio_pin_0),
// ad_kbscn_pin_setup(hw_gpio_port_4,hw_gpio_pin_6),
// ad_kbscn_pin_setup(hw_gpio_port_4,hw_gpio_pin_7),
};
静态const char kbscn_matrix [] = {
'*','#',
//'1','2','3','a',
//'4','5','6','b',
//'7','8','9','c',
//'*','0','#','d',
};
静态void kbscn_cb(ad_kbscn_event事件,char c);
/ *
static const ad_kbscn_config kbscn_config = ad_kbscn_config_with_inactive_time(kbscn_row,kbscn_col,kbscn_matrix,
ad_kbscn_clock_div_16,150,10,10,127,
kbscn_cb);
* /
static const ad_kbscn_config kbscn_config = ad_kbscn_config(kbscn_row,kbscn_col,kbscn_matrix,
ad_kbscn_clock_div_16,150,10,10,
kbscn_cb);
privileged_data os_task app_task;
/ *
*当CANCEL_SLEEP是真正的假装时,始终防止平台睡眠。
*这允许检查键盘扫描仪适配器的电源管理方面
*在睡眠启动时具有正确的行为,后来取消。
* /
privileged_data bool cancel_sleep = false;
静态BOOL PROADING_FOR_SLEEP_CB(void)
{
返回!cancel_sleep;
}
static const adapter_call_backs_t pm_callbacks = {
.ad_prepare_for_sleep = prepaser_for_sleep_cb,
};
/ *
* key_fifo_size必须是2的功率,以获得最佳性能
* /
#define key_fifo_size 32.
#if key_fifo_size&(key_fifo_size - 1)
#错误“key_fifo_size必须是2”的电源
#万一
privileged_data static char key_fifo [key_fifo_size];
privileged_data static size_t key_fifo_h;
privileged_data静态size_t key_fifo_t;
静态void kbscn_cb(ad_kbscn_event事件,char c)
{
if(事件!= ad_kbscn_event_pressed){
返回;
}
key_fifo [key_fifo_t] = c;
key_fifo_t ++;
key_fifo_t%= key_fifo_size;
OS_TASK_NOTIFY_FROM_ISR(APP_TASK,USER_TIMER_NOTIF,OS_NOTIFY_SET_BITS);
}
void kbscn_task_init(void)
{
BOOL RET;
hw_gpio_configure_pin(hw_gpio_port_4,hw_gpio_pin_1,hw_gpio_mode_output,hw_gpio_func_gpio,false); //
app_task = os_get_current_task();
pm_register_adapter(&pm_callbacks);
ret = ad_kbscn_init(&kbscn_config);
Assert_Warning(RET);
}
void kbscn_task(uint32_t notif)
{
if(notef&user_timer_notif){
os_enter_critical_section();
if(key_fifo_h == key_fifo_t){
os_leave_critical_section();
} 别的{
os_leave_critical_section();
char c = key_fifo [key_fifo_h];
key_fifo_h ++;
key_fifo_h%= key_fifo_size;
printf(“%c”,c);
fflush(stdout);
if(c =='*'){
printf(“%c \ r \ n”,c);
printf(“%d \ n”,pm_get_sleep_mode());
if(pm_get_sleep_mode()== pm_mode_active){
printf(“恢复睡眠\ n”);
pm_resume_sleep();
printf(“%d \ n”,pm_get_sleep_mode());
} 别的{
Printf(“保持活力\ n”);
pm_stay_alive();
printf(“%d \ n”,pm_get_sleep_mode());
}
}如果(c =='#'){
printf(“%c \ r \ n”,c);
// cancel_sleep =!cancel_sleep;
// if(cancel_sleep){
// printf(“取消睡眠\ n”);
// } 别的 {
// printf(“取消休眠禁用\ n”);
//}
}
}
}
}
您好,
我看您在论坛上游更多68x的api接口接口,使使的问题;方便的话话下方,以便提高通效率
你好
最近一定在用681次开发遇到点,感谢你们的解答
我的谎是Renpeng0106@163.com.
好的,已经已经与您,请请注意查看
你好,我在使用1468x的演艺中间遇到点,请问可请教一下您?我的QQ:250318049,用QQ邮箱溜通亦可