完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
任务如下:
static void Task_abc(void *pdata) { pdata = pdata; while (1) { led(); OSTimeDlyHMSM(0, 0, 0, 1); } } u8 led(void) { 控制数码管1; 计数并判断小于25时亮,25-50灭并重新计数。实现数码管亮500ms,灭500ms。 delay_ms(1); 控制数码管2; delay_ms(1); 控制数码管3; delay_ms(1); ........ 共延时19ms; return 0; } #define OS_TICKS_PER_SEC 1000u 任务优先级最高。 问题是: led函数使用OSTimeDlyHMSM(0, 0, 0, 1)延时,正常亮灭各500ms。 使用delay_ms(1)延时时,计数250左右,才能实现亮灭各500ms。 为什么呢? 间隔20ms动态点亮数码管时,盯着数码管看不到闪烁,看旁边时,眼角能看到数码管闪烁。 想用delay_us减小这个时间,但是使用这两个函数时,为什么实际时间和理论对不上呢? 这两个延时不进行任务调度。跟这个有关系吗? |
|
相关推荐
2个回答
|
|
|
|
|
|
你用我们例程,测试下
|
|
|
|
只有小组成员才能发言,加入小组>>
771 浏览 0 评论
1146 浏览 1 评论
2527 浏览 5 评论
2858 浏览 9 评论
移植了freeRTOS到STMf103之后显示没有定义的原因?
2709 浏览 6 评论
keil5中manage run-time environment怎么是灰色,不可以操作吗?
1054浏览 3评论
189浏览 2评论
453浏览 2评论
364浏览 2评论
M0518 PWM的电压输出只有2V左右,没有3.3V是怎么回事?
449浏览 1评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-18 12:21 , Processed in 1.452694 second(s), Total 82, Slave 62 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号