位置:51电子网 » 技术资料 » 接口电路

怎样显示时间?

发布时间:2012/6/14 19:42:20 访问次数:1740

    在上一期的制作例子中,连接在pn13土的LED按照亮1s、暗1s的XC9536XL-10VQG64C频率闪亮,这是使用了Arduino的—个函数mdlis().它的返回值是从运行程序起始到当前所经过的时间(单位以ms计),它一直记下去,直到溢出,需要50天。
    如果先后取得两次函数值:t1 =millis()和t2=millis().则它们的差值就是两次取值之间经过的时间(ms),那么t2 -f1等于1000ms,就是1s。闪灯就是用这个办法来达到秒时间的,不过这个在短时间计时还可以,如果长时间连续计时,误差会积累得很大,有1/1000的误差,一天就会超过1分钟,所以不能用这个办法。
    这里还有两个方法来解决计时问题:
    1.使用Arduino的TIMER2定时器2中断,相关的函数在2008年已经被开发出来。
    2使用时钟芯片DS1302,在2010年已经开发出对应的类库。
    方法1简单也比较准确,也不需要其他元件。实际试验结果是,日误差在3秒以内,可以接受,缺点是停电后不能再时。方法2虽然只是多了几个元件,但是要在Arduino上顺畅地和DS1302配合(还要引脚能够自由设置)却不简单,要是自己做会比较麻烦。不过201 0年6月Arduino论坛的高手doc_norwey开发出DS1302类库,使这个问题变得比较简单。
    DS1302的编程的重点是使用DS1302类库中的函数。首先去下载DS1302库压缩包DS1302.rar(它是开源的,可以自由下载,下载地址见上一段末尾链接),然后把它解压到编程工具Arduin0 0021文件夹下的libraries文件央中,这样就增加了一个DS1302文件夹,在其中的DS1302.h头文件里面定义了DS1302类。编程时,在sketch头部加上#include <ds1302.h>,然后就可以在程序中通过这个类的一个实例rtc使用相关函数了(就是DS1302类的公有成员函数)。
    在上一期的制作例子中,连接在pn13土的LED按照亮1s、暗1s的XC9536XL-10VQG64C频率闪亮,这是使用了Arduino的—个函数mdlis().它的返回值是从运行程序起始到当前所经过的时间(单位以ms计),它一直记下去,直到溢出,需要50天。
    如果先后取得两次函数值:t1 =millis()和t2=millis().则它们的差值就是两次取值之间经过的时间(ms),那么t2 -f1等于1000ms,就是1s。闪灯就是用这个办法来达到秒时间的,不过这个在短时间计时还可以,如果长时间连续计时,误差会积累得很大,有1/1000的误差,一天就会超过1分钟,所以不能用这个办法。
    这里还有两个方法来解决计时问题:
    1.使用Arduino的TIMER2定时器2中断,相关的函数在2008年已经被开发出来。
    2使用时钟芯片DS1302,在2010年已经开发出对应的类库。
    方法1简单也比较准确,也不需要其他元件。实际试验结果是,日误差在3秒以内,可以接受,缺点是停电后不能再时。方法2虽然只是多了几个元件,但是要在Arduino上顺畅地和DS1302配合(还要引脚能够自由设置)却不简单,要是自己做会比较麻烦。不过201 0年6月Arduino论坛的高手doc_norwey开发出DS1302类库,使这个问题变得比较简单。
    DS1302的编程的重点是使用DS1302类库中的函数。首先去下载DS1302库压缩包DS1302.rar(它是开源的,可以自由下载,下载地址见上一段末尾链接),然后把它解压到编程工具Arduin0 0021文件夹下的libraries文件央中,这样就增加了一个DS1302文件夹,在其中的DS1302.h头文件里面定义了DS1302类。编程时,在sketch头部加上#include <ds1302.h>,然后就可以在程序中通过这个类的一个实例rtc使用相关函数了(就是DS1302类的公有成员函数)。

热门点击

 

推荐技术资料

耳机放大器
    为了在听音乐时不影响家人,我萌生了做一台耳机放大器的想... [详细]
版权所有:51dzw.COM
深圳服务热线:13751165337  13692101218
粤ICP备09112631号-6(miitbeian.gov.cn)
公网安备44030402000607
深圳市碧威特网络技术有限公司
付款方式


 复制成功!