你好,
我在中创建了两个回调用户\回调\配置.h
static const struct arch\u main\u loop\u callbacks user\u app\u main\u loop\u callbacks={.app\u on\u init=user\u app\u init,//默认情况下,系统唤醒时重新加载并恢复看门狗计时器。//用户必须考虑看门狗计时器的处理(保持它运行,//冻结它,重新加载它,恢复它,等等),当调用table\u powered()上的app\u时,可能会影响主循环。app \u on \u ble \u powered=user \u ble \u task,//默认情况下,系统唤醒时重新加载并恢复看门狗计时器。//当调用\ system\ powered()上的app\时,用户必须考虑看门狗计时器的处理(保持它运行,//冻结它,重新加载它,恢复它,等等),并且可能会影响主循环。app\u on\u system\u powered=user\u sys\u task、.app\u before\u sleep=NULL、.app\u validate\u sleep=NULL、.app\u going\u to\u sleep=NULL、.app\u resume\u from\u sleep=NULL、};
我定义了user_ble_task和user_sys_task,如下所示
arch_main_loop_callback_ret_t user_sys_task(){//sprintf((char*)flg_buff,“%d\n”,c);//uart_send(UART2,(uint8_t*)flg_buff,strlen(flg_buff),uart_OP_BLOCKING);SetWord16(0x50003002256);return KEEP_POWERED;//KEEP_POWERED,GOTO_SLEEP}
在这里,函数返回KEEP\ u POWERED并使GPIO高。
ARCH_MAIN_LOOP_CALLBACK_RET_T USER_BLE_TASK(){// sprintf((char *)flg_buff,“%d \ n”,b);// UART_SEND(UART2,(UINT8_T *)FLG_BUFF,STRLEN(FLG_BUFF),UART_OP_BLOCKING);wdg_reload(watchdog_default_period);setword16(0x50003004,256);返回goto_sleep;}
在user\u ble\u task中,函数返回GOTO\u SLEEP并使相同的GPIO变低。200ms的wdg重载使这两个函数都按顺序调用。
是时候了18微秒和低时间1微秒。(如何实现所有周期的相同延迟)
我理解这些环回是异步执行,如何执行这些环回中的任何硬件计时器/appEasytimer()回调。
随附的时间间隔逻辑分析仪屏幕截图。项目使用了无睡眠模式的ble-u-barebone。分享给我任何样本代码。
我按照引用引用作为参考。
http://lpccs-docs.dialog-seminiondiond.com/tutorial_sdk6/sdk_architectur ...
布罗尔,
巴拉吉


嗨,对话,
我让user_sys_task到空值并在用户任务中创建了一个app\u easy\u timer(),如下所示,
在回调中,我使用了一个标志并切换了1秒
定时器和延迟配置,
当试图在keil中调试时,我可以观察到led的切换1秒钟,但当我通过ble连接到应用程序时BLE扫描仪延迟减少到一半,即0.5秒打开,0.5秒关闭,在我断开连接后,应用程序\u easy\u计时器也不会重置。当我再次尝试连接时,调试器在app\u easy\u timer\u cancel()中点击assert\u warning(0)
通过我的应用程序调试LED_APP_TIMER ID.我查过零了吗在keil看窗口. 我想知道何时取消我的应用程序\u easy\u timer(),以避免此暂停。
如果有任何错误,请更正我的代码。
需要知道为什么计时器的id是零,是否有任何可能的比赛条件存在。
提前致谢
布罗尔,
巴拉吉。
嗨巴拉吉,
感谢您在线的帖子和您的后续评论。我读了你的描述,但要成为主持人,我无法理解你想要完成的事情。那么,请你能描述更清楚你的要求是什么?
>>>如何在这些环回中执行任何硬件计时器/table appEasytimer()回调。
以上声明是您的要求吗?
在下面的评论中,我看到您正在使用app\u easy\u tuimer()。你能检查一下你的代码中是否调用了app\u easy\u timer\u cancel()?
请提供适当的步骤,以便我可以复制这个问题。
谢谢,下午好