完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
使用探索者F4 资料盘(A盘)里面的列子-FreeRTOS实验2-1 FreeRTOS移植实验,修改LED引脚为PC1后,下载到开发板运行,在时间片是1ms的情况下(#define configtiCK_RATE_HZ (1000)),按理说delay_xms(500);是延迟500ms,结果开发板上面
的LED是5秒改变一次状态。抱着怀疑的态度,在SysTick_Handler中断里面加入控制其他LED引脚翻转的代码,用示波器看发现 SysTick_Handler这个函数是10ms中断一次,难道#define configTICK_RATE_HZ (1000)这里不是让时间片为1ms吗?请各位大侠 分析一下。谢谢!下面附上关键代码. 时间片中断代码 void SysTick_Handler(void) { LED1=0; if(xTaskGetSchedulerState()!=taskSCHEDULER_NOT_STARTED)//系统已经运行 { xPortSysTickHandler(); } LED1=1; } //LED0任务函数 =PC1 void led0_task(void *pvParameters) { while(1) { LED0=~LED0; delay_xms(500); } } 是延时500ms |
|
相关推荐
8个回答
|
|
configTICK_RATE_HZ (1000)确实为1ms
|
|
|
|
但我这里用示波器监测出来为10ms,LED灯5秒转换一次状态也说明是10ms,真是奇葩啊!
|
|
|
|
这个时间应该是设成configTICK_RATE_HZ (100)了吧
|
|
|
|
已经确认configTICK_RATE_HZ (1000)
|
|
|
|
看一下配置的时钟和主频的数值是多少
|
|
|
|
时钟频率不对
|
|
|
|
你如何证明你的systick中断是10MS一次,仿真过了吗?另外你用delay_xms(500);是直接调用 delay_us(),是不会引发任务调度的。
|
|
|
|
|
|
|
|
只有小组成员才能发言,加入小组>>
800 浏览 0 评论
1156 浏览 1 评论
2531 浏览 5 评论
2863 浏览 9 评论
移植了freeRTOS到STMf103之后显示没有定义的原因?
2714 浏览 6 评论
keil5中manage run-time environment怎么是灰色,不可以操作吗?
1090浏览 3评论
195浏览 2评论
461浏览 2评论
374浏览 2评论
M0518 PWM的电压输出只有2V左右,没有3.3V是怎么回事?
456浏览 1评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-24 23:56 , Processed in 1.348997 second(s), Total 94, Slave 75 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号