完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
#define DEBUG 1
#include "CH57x_common.h" #include "HAL.h" #include "CH57xBLE_LIB.h" static tmosTaskID MyTaskID = INVALID_TASK_ID; __attribute__((section(".highcode"))) void Main_Circulation() { while(1){ TMOS_SystemProcess( ); } } tmosEvents MyTask_ProcessEvent(tmosTaskID task_id, tmosEvents events) { PRINT("MyTask_ProcessEvent invoked n"); return 0; } int main() { bStatus_t s; SetSysClock( CLK_SOURCE_PLL_60MHz ); GPIOA_SetBits( GPIO_Pin_9 ); GPIOA_ModeCfg( GPIO_Pin_8, GPIO_ModeIN_PU ); GPIOA_ModeCfg( GPIO_Pin_9, GPIO_ModeOut_PP_5mA ); UART1_DefInit(); PRINT( "Start @ChipID=%02Xn", R8_CHIP_ID ); HAL_Init(); MyTaskID = TMOS_ProcessEventRegister(MyTask_ProcessEvent); // s = tmos_set_event(MyTaskID, 0U); s = tmos_start_task(MyTaskID, 0U, 1U); PRINT("s=%xn", s); Main_Circulation(); } 这是我参考蓝牙部分的代码 写的 TMOS 最小的例子, 这里面有几个问题 1. 如果我用 s = tmos_set_event(MyTaskID, 0U); 则 tmos_set_event 返回是 3, 按头文件的说法应该是不成功,这里不知道为什么, 用 tmos_start_task 返回是 0 2. 串口中没有打印 Start @ChipID=73 s=0 MyTask_ProcessEvent invoked 串口仅打印 Start @ChipID=73 s=0 这和预期不符, 说明对应的处理函数没有被调度到 我这样写代码是正确的吗? 如果不正确应该怎么写? |
|
相关推荐
2个回答
|
|
写错了。
第一步是要注册任务ID 这样返回的是任务ID,每个ID下可以设16个子任务,2字节的变量,每个位可以建立一个独立的子任务,定义见下图 任务ID和任务标号分配后,就可以启动任务了,下面是立即启动任务,还有延时启动的,具体看LIB.H里面,代码跟踪下,函数有注释。 任务触发后就可以到指定的函数里面运行了,如下 |
|
|
|
|
|
|
|
只有小组成员才能发言,加入小组>>
474 浏览 1 评论
CH579M+RT-Thread,RTC从Sleep模式唤醒失败是什么原因?
2873 浏览 2 评论
2361 浏览 1 评论
817浏览 2评论
CH569通过HSPI实现USB3.0和FPGA高速双向通讯
640浏览 1评论
498浏览 1评论
CH32F103C8T6使用当前官网上的CDC例程会出现设备描述符请求失败
364浏览 1评论
639浏览 1评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-25 12:13 , Processed in 1.135354 second(s), Total 81, Slave 64 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号