完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
UCOSII 移植到F0, 因为功耗的原因,系统主频采用8M 内部晶振,无倍频, 先弄了2个灯交替闪烁,发现 启动系统后15秒左右 灯才开始闪,原以为是主频的问题,更换为48M ,发现还是要延迟3秒才能交替工作,统计任务也关闭掉(未使用统计任务),调试中发现进入闪灯任务的OSdelay(100)函数后 可能进行了任务切换,空闲任务的OSIdleCtr 再跳变,约15秒后才能进行正常的闪灯,实在找不到什么原因,大侠们有遇到这个情况吗?
void Start_Task(void* pdata) { OS_CPU_SR cpu_sr; OSDelay_init(); //时钟节拍初始化,函数调用原子delay.c文件 OS_ENTER_CRItiCAL(); OSTaskCreate(LCD_Task, (void *)0, (OS_STK *)&LCD_TASK_STK[LCD_TASK_STK_SIZE - 1], LCD_TASK_PRIO ); OS_EXIT_CRITICAL(); OSTaskSuspend(OS_PRIO_SELF); // OSTaskDel(OS_PRIO_SELF); } void LCD_Task(void* pdata) { while(1) { BACKLIGHT_OFF; OSTimeDly(100); 程序执行到这里后观察空闲任务的计数变量OSIdleCtr,发现快速跳变,一直到15秒后恢复执行下面的代码,之后就正常循环执行while内代码 BACKLIGHT_ON; OSTimeDly(100); } } int main(void) { OS_CPU_SR cpu_sr; Blight_Init(); OSInit(); OS_ENTER_CRITICAL(); OSTaskCreate(Start_Task, (void *)0, (OS_STK *)&START_TASK_STK[START_TASK_STK_SIZE - 1], START_TASK_PRIO ); OS_EXIT_CRITICAL(); OSStart(); return 0; } |
|
相关推荐
2个回答
|
|
|
|
|
|
查查系统工作频率,看看节拍时钟的配置
|
|
|
|
只有小组成员才能发言,加入小组>>
689 浏览 0 评论
1102 浏览 1 评论
2469 浏览 5 评论
2803 浏览 9 评论
移植了freeRTOS到STMf103之后显示没有定义的原因?
2642 浏览 6 评论
使用eim外接fpga可是端口一点反应都没有有没有大哥指点一下啊
650浏览 9评论
648浏览 7评论
请教大神怎样去解决iMX6Q在linux3.0.35内核上做AP失败的问题呢
777浏览 6评论
622浏览 5评论
664浏览 5评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-20 09:16 , Processed in 0.898971 second(s), Total 53, Slave 43 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号