打印
[51单片机]

数码管ds1302时钟的多任务的调度问题,求解大神啊

[复制链接]
1952|8
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
eyhxh|  楼主 | 2013-8-17 18:45 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
如题 我正在写一个ds1302 的时钟程序,用数码管显示的,  使用的是每2ms更改一下数码的位选数据,但后面的问题,从ds1302中读取时间(我的代码)测试需要0.7ms。这个时间虽然不长,但和数码管任务同一时间(2ms时间片)片处理的话就明显影响了数码管的显示了。 于是我就把ds1302放到100ms时间片中。   数码管的显示基本正常。。
但问题仍然没有解决……
1、在读取ds1302时间的一瞬间可以看到数码管有闪动……
2、每100ms读取一次时候,就意味着显示的时间要比芯片中时间至少慢100ms了

所以请教大神这个到底该怎么处理啊?   ps:虽然网上的ds1302时钟程序很多,但这种思路写的程序很少,所以我也找不到实例。……痛苦求救

相关帖子

沙发
crazy2012| | 2013-8-17 19:09 | 只看该作者
数码管要想不闪,刷新频率应该在20ms/50Hz以内。具体分配给每一位的时间为20ms/N(假设你有N位数码管)。

假如6位数码管。那么主程序需要20/6=3.3ms  执行一遍。如果只是刷数码管和读写DS1302,扫描按键的话,时间片还是够的。


不知道你现在用了几位数码管。

实在不行就用锁存器芯片,不要再动态刷新了。

其他的办法我也没有什么好的办法。楼下请指点。

使用特权

评论回复
板凳
ningling_21| | 2013-8-17 19:29 | 只看该作者
数码管扫描可以在中断中完成...

使用特权

评论回复
地板
eyhxh|  楼主 | 2013-8-18 15:47 | 只看该作者
crazy2012 发表于 2013-8-17 19:09
数码管要想不闪,刷新频率应该在20ms/50Hz以内。具体分配给每一位的时间为20ms/N(假设你有N位数码管)。

假 ...

用的8位的,测试全在学习板,所以硬件也没法改的,不过我本身只是为了学习,更多的是想知到这2个东西的处理办法。还有就是单片机在多任务时的程序设计方法(不知道有没有专门讲这方面的书籍?)

使用特权

评论回复
5
greadber| | 2013-8-18 16:22 | 只看该作者
LZ每2ms更改一下数码位选数据,这个操作0.3ms可以完成吧,那么你可以在后面的0.4~1.0MS时间读DS1302数据,那么单片机还有1MS空闲!

使用特权

评论回复
6
ZG11211| | 2013-8-18 20:37 | 只看该作者
实时扫描肯定会有问题,试试锁存显示

使用特权

评论回复
7
coody| | 2013-8-19 10:22 | 只看该作者
在定时中断中扫描显示

使用特权

评论回复
评论
outstanding 2013-8-25 11:46 回复TA
+1 
评分
参与人数 1威望 +1 收起 理由
eyhxh + 1 用这种方法不错,我以后就这样写了.
8
eyhxh|  楼主 | 2013-9-15 17:14 | 只看该作者
ningling_21 发表于 2013-8-17 19:29
数码管扫描可以在中断中完成...

请问有没有一本书主要讲单片机在实际工程中的应用的书籍。 貌似很多书讲这个数码管显示也不会用这种方法

使用特权

评论回复
9
ningling_21| | 2013-9-15 17:43 | 只看该作者
eyhxh 发表于 2013-9-15 17:14
请问有没有一本书主要讲单片机在实际工程中的应用的书籍。 貌似很多书讲这个数码管显示也不会用这种方法 ...

不用找书了,这都是实际应用中使用的方法....

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

3

主题

20

帖子

1

粉丝