5个职位/0个新职位
最后一篇文章
roc0106型
离线
最后一次见到:8个月6天前
已加入:2016-08-31 01:55
DA14681-01型休眠唤醒问题

对话框:

你好!

我根据“kbscn\u演示”案例添加一个休眠唤醒功能!
在工程没有执行任何定时器任务时是可以正常休眠和唤醒的!可是在执行定时器任务后休眠就无法正常唤醒!
不知道还有什么设置没有设置到,请指教!
谢谢!!!

#定义用户\u计时器\u NOTIF(1<<3)

静态常量\u kbscn \u pin \u setup kbscn \u row[]={
AD\ KBSCN\引脚\设置(HW\ GPIO\端口\ 4,HW\ GPIO\引脚\ 1),
//AD\ KBSCN\引脚\设置(HW\ GPIO\端口\ 4,HW\ GPIO\引脚\ 1),
//AD\ KBSCN\引脚\设置(HW\ GPIO\端口\ 4,HW\ GPIO\引脚\ 2),
//AD\ KBSCN\引脚\设置(HW\ GPIO\端口\ 4,HW\ GPIO\引脚\ 3),
};

静态常量\u kbscn \u pin \u setup kbscn \u col[]={
AD\ KBSCN\引脚\设置(HW\ GPIO\端口\ 3,HW\ GPIO\引脚\ 6),
AD\ KBSCN\引脚\设置(HW\ GPIO\端口\ 4,HW\ GPIO\引脚\ 0),
//AD\ KBSCN\引脚\设置(HW\ GPIO\端口\ 4,HW\ GPIO\引脚\ 6),
//AD\ KBSCN\引脚\设置(HW\ GPIO\端口\ 4,HW\ GPIO\引脚\ 7),
};

静态常量char kbscn\u矩阵[]={
'*', '#',
//'1'、'2'、'3'、'A',
//'4'、'5'、'6'、'B',
//'7'、'8'、'9'、'C',
//“*”、“0”、“#”、“D”,
};

静态void kbscn\u cb(AD\u kbscn\u EVENT,char c);
/*
static const ad \u kbscn \u config kbscn \u config=ad \u kbscn \u config WITH \u INACTIVE \u TIME(kbscn \u行、kbscn \u列、kbscn \u矩阵,
时钟分区16、150、10、10、127,
kbscn(cb);
*/
静态常量ad\u kbscn\u config kbscn\u config=ad\u kbscn\u config(kbscn\u行,kbscn\u列,kbscn\u矩阵,
时钟分区16,150,10,10,
kbscn(cb);

特权数据操作系统任务应用程序任务;

/*
*当cancel\u sleep为true时,假适配器总是阻止平台进入睡眠状态。
*这允许检查键盘扫描仪适配器的电源管理方面是否正常
*在睡眠启动后被取消时有正确的行为。
*/
特权数据bool cancel\u sleep=false;

静态bool prepare \u for \u sleep \u cb(无效)
{
回来!取消睡眠;
}

静态常量适配器\u call \u backs \u t pm \u callbacks={
.ad\u prepare\u for \u sleep=准备睡眠,
};

/*
*密钥大小必须是2的幂,才能获得最佳性能
*/
#定义键\u FIFO \u大小32
#if键FIFO大小&(键FIFO大小-1)
#错误“KEY\u FIFO\u SIZE必须是2的幂”
#结束

特权数据静态字符密钥fifo[密钥fifo大小];
特权数据静态大小密钥fifo;
特权数据静态大小密钥fifo;

静态void kbscn\u cb(AD\u kbscn\u EVENT,char c)
{
如果(事件!=AD\ KBSCN\事件(按下){
返回;
}

key\u fifo[key\u fifo\u t]=c;
键_fifo_t++;
key\u fifo\u t%=密钥大小;

操作系统任务通知来自ISR(应用程序任务、用户计时器通知、操作系统通知设置位);
}

void kbscn\u task\u init(void)
{
布尔-雷特;
硬件gpio\配置\引脚(硬件gpio\端口\ 4,硬件gpio\引脚\ 1,硬件gpio\模式\输出,硬件gpio\功能\ gpio,false)//
app_task=OS_GET_CURRENT_task();

pm\u寄存器\u适配器(&pm\u回调);
ret=ad\u kbscn\u init(&kbscn\u config);
断言警告(ret);
}

无效kbscn任务(uint32\t notif)
{
if(notif&用户\u计时器\u notif){
OS_ENTER_CRITICAL_SECTION();
if(key\u fifo\u h==键\u fifo\t){
OS_LEAVE_CRITICAL_SECTION();
}其他{
OS_LEAVE_CRITICAL_SECTION();

字符c=键fifo[键fifo\U h];
键_fifo_h++;
key\u fifo\u h%=键\u fifo\u大小;

printf(“%c”,c);
fflush(标准输出);
如果(c=='*'){
printf(“%c\r\n”,c);
printf(“%d\n”,pm\u get\u sleep\u mode());
if(pm\u get\u sleep\u mode()==pm\u mode\u active){
printf(“恢复睡眠\n”);
pm_resume_sleep();
printf(“%d\n”,pm\u get\u sleep\u mode());
}其他{
printf(“保持活动状态\n”);
pmèu留èu活着();
printf(“%d\n”,pm\u get\u sleep\u mode());
}
}else if(c=='#'){
printf(“%c\r\n”,c);
//取消睡眠=!取消睡眠;
//if(取消睡眠){
//printf(“取消睡眠启用\n”);
//}其他{
//printf(“取消睡眠禁用\n”);
// }
}
}
}
}

设备:
胞苷
离线
最后一次见到:8个月1周前
工作人员
已加入:2017-12-14 02:48
您好,

您好,

我看您在论坛上提问了挺多68倍的美国石油学会接口阅读、使用的问题;方便的话留下联系方式,以便提高沟通效率

roc0106型
离线
最后一次见到:8个月6天前
已加入:2016-08-31 01:55
你好

你好

最近一直在用681做开发 遇到点问题,感谢你们的解答

我的邮箱是renpeng0106@163.com

胞苷
离线
最后一次见到:8个月1周前
工作人员
已加入:2017-12-14 02:48
好的,已经与您联系,请注意查看邮箱

好的,已经与您联系,请注意查看邮箱

兰雪峰1644
离线
最后一次见到:2个月2周前
已加入:2020-03-03 06:28
你好,我在使用1468倍的过程中遇到点问题

你好,我在使用1468倍的过程中遇到点问题,请问可以请教一下您么?我的QQ:250318049用QQ邮箱沟通亦可