完善资料让更多小伙伴认识你,还能领取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的控制权呢? |
|
|
|
|
|
|
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
1468 浏览 0 评论
4493 浏览 0 评论
图腾柱PFC无法上升至400V,且电感电流为正弦波形,但是幅值极小
9631 浏览 0 评论
飞凌嵌入式ElfBoard-Vim编辑器之静态链接和动态链接
2934 浏览 0 评论
使用 LinkBoy 将程序导出为 C 语言代码并烧录至 Arduino ESP32 开发板
2347 浏览 1 评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-10 23:21 , Processed in 0.885196 second(s), Total 76, Slave 59 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
708