完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
线程入口函数里写的是500ms刷新一次显示程序,但是从显示屏上看到的是2000ms才刷新一次,请问是什么问题?
void Display_time_entry(void *parameter) { while (1) { now = time(RT_NULL); // rt_kprintf("%.*s ", 25, ctime(&now)); strcpy(buf,ctime(&now)) ; ssd1306_SetCursor(0, 50); ssd1306_ShowNumber(0, 0, buf[11]-48, Font_7x10, White); ssd1306_ShowNumber(1, 0, buf[12]-48, Font_7x10, White); ssd1306_SetCursor(14, 50); ssd1306_WriteChar(':', Font_7x10, White); ssd1306_SetCursor(0, 50); ssd1306_ShowNumber(3, 0, buf[14]-48, Font_7x10, White); ssd1306_ShowNumber(4, 0, buf[15]-48, Font_7x10, White); ssd1306_SetCursor(35, 50); ssd1306_WriteChar(':', Font_7x10, White); ssd1306_SetCursor(0, 50); ssd1306_ShowNumber(6, 0, buf[17]-48, Font_7x10, White); ssd1306_ShowNumber(7, 0, buf[18]-48, Font_7x10, White); rt_thread_delay(500); } } int Display_Time_Thread(void) { rt_thread_t Display_Time= RT_NULL; Display_Time = rt_thread_create("Display_Time", Display_Time_entry, RT_NULL, 512, 10, 20); if (Display_Time != RT_NULL) { rt_thread_startup(Display_Time); } return RT_EOK; } |
|
相关推荐
3个回答
|
|
可能是系统时间配置问题,另外提醒一下,延时500ms最好调用rt_thread_mdelay
|
|
|
|
rt_thread_delay的单位是tick,你的一个tick是1ms吗?
系统中还存在比display线程优先级高的线程,高优先级的线程有没有及时的让出cpu的控制权呢? |
|
|
|
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
1126 浏览 0 评论
【英飞凌PSoC 6 RTT开发板试用】串口测试标准输入输出重定向
1073 浏览 0 评论
3465 浏览 0 评论
1686 浏览 0 评论
【英飞凌PSoC 6 RTT开发板试用】以搭积木方式实现简单的互联型家庭网关
1437 浏览 0 评论
51490 浏览 21 评论
【参与有奖】激扬代码,千元现金!RT-Thread主题征文大赛
56645 浏览 88 评论
15723 浏览 51 评论
野火 ISO STM32资料合集(程序、原理图、项目初高级篇)
17915 浏览 46 评论
271511 浏览 72 评论
49060 浏览 30 评论
175373 浏览 48 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-3-29 03:25 , Processed in 0.457661 second(s), Total 68, Slave 52 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 深圳华秋电子有限公司
电子发烧友 (电路图) 粤公网安备 44030402000349 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号