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

具体方法

发布时间:2012/6/15 20:13:48 访问次数:1711

    先到网站http://www.ard uino.cc/playground/Main/MsTimer2下载MsTimer2.zip,然后解压XC95144XL-10TQG100C到电脑的Arduino编程平台的libraries文件夹下的MsTimer2文件夹中。解裳的文件有:MsTimer2.h、MsTimer2.cpp和一个文件夹examples。
    在编制程序sketch时,文件头部增加#include<MsTimer2.h>的语句,就可以在程序中使用控制time12中断的函数了(共3个):
    MsTimer2::start();∥开启time(2
    MsTimer2::stop();∥关闭timer2
    MsTimer2::set(unsigned long ms,vO矧㈤());//申断响应设置
    以上函数都是针对MCU内部功能而非外部元器件,所以使用双冒号表示它是MsTimer2类的函数。中断响应的第1个参数ms是中断间隔毫秒数,第2个参数(+0()是需要在中断时执行的功能函数。
    这样使用timer2定时器中断比起直接编程容易多了,因为2次中断之间的时间很长,所以中断函数可以处理较多的任务,我们把判断时、分、秒、启动测温和读数都安排在这里进行。
    为了使用DS18820测温,Arduino的扩展类库中有一个专门针对它开发的OneWire类,里面包含了操控DS18820所必要的各种功能函数。

               
    之所以能够在单线总线上识别每个DS18820,是因为每个DS18820都具有一个包括器件识别码(1字节)、序列号(6字节)和CRG校验码(1字节)共8字节长的ROM,其中的序列号就是它唯一的身份证,它就代表了具体每个DS18820的地址。开始时MCU在数据线上发出低复位脉冲,然后恢复总线为高,随后DS18820发出响应脉>中,MCU发现有响应脉j中后再搜索,按位逐个取得器件的库列号,也就是器件地址,再对各个器件发出转换命令进行测温,由每个DS18820测温并把结果保存在自己的RAM中,经过转换时间后(随分辨率不同,94~750ms),由MCU按地址读出每个DS18820的测温结果。
    为实现上述功能,在OneWire类中的函数主要以ds作为程序中的实例,见表2。
    还有一个MCU计算CRC校验值的函数,OneWire.:crc8( byteaddr,7),用它计算搜索到的器件CRC校验值,在程序中判断是否与器件的ROM最高位的已有的CRC值相等,如不相等则有问题。
    利用以上函数就可以实现多点测温,对于位读写的具体脉冲宽度就不必考虑,函数内部已经调整好了,直接调用就行了。

    先到网站http://www.ard uino.cc/playground/Main/MsTimer2下载MsTimer2.zip,然后解压XC95144XL-10TQG100C到电脑的Arduino编程平台的libraries文件夹下的MsTimer2文件夹中。解裳的文件有:MsTimer2.h、MsTimer2.cpp和一个文件夹examples。
    在编制程序sketch时,文件头部增加#include<MsTimer2.h>的语句,就可以在程序中使用控制time12中断的函数了(共3个):
    MsTimer2::start();∥开启time(2
    MsTimer2::stop();∥关闭timer2
    MsTimer2::set(unsigned long ms,vO矧㈤());//申断响应设置
    以上函数都是针对MCU内部功能而非外部元器件,所以使用双冒号表示它是MsTimer2类的函数。中断响应的第1个参数ms是中断间隔毫秒数,第2个参数(+0()是需要在中断时执行的功能函数。
    这样使用timer2定时器中断比起直接编程容易多了,因为2次中断之间的时间很长,所以中断函数可以处理较多的任务,我们把判断时、分、秒、启动测温和读数都安排在这里进行。
    为了使用DS18820测温,Arduino的扩展类库中有一个专门针对它开发的OneWire类,里面包含了操控DS18820所必要的各种功能函数。

               
    之所以能够在单线总线上识别每个DS18820,是因为每个DS18820都具有一个包括器件识别码(1字节)、序列号(6字节)和CRG校验码(1字节)共8字节长的ROM,其中的序列号就是它唯一的身份证,它就代表了具体每个DS18820的地址。开始时MCU在数据线上发出低复位脉冲,然后恢复总线为高,随后DS18820发出响应脉>中,MCU发现有响应脉j中后再搜索,按位逐个取得器件的库列号,也就是器件地址,再对各个器件发出转换命令进行测温,由每个DS18820测温并把结果保存在自己的RAM中,经过转换时间后(随分辨率不同,94~750ms),由MCU按地址读出每个DS18820的测温结果。
    为实现上述功能,在OneWire类中的函数主要以ds作为程序中的实例,见表2。
    还有一个MCU计算CRC校验值的函数,OneWire.:crc8( byteaddr,7),用它计算搜索到的器件CRC校验值,在程序中判断是否与器件的ROM最高位的已有的CRC值相等,如不相等则有问题。
    利用以上函数就可以实现多点测温,对于位读写的具体脉冲宽度就不必考虑,函数内部已经调整好了,直接调用就行了。

相关技术资料
6-15具体方法
6-14程序中对按键处理方法

热门点击

 

推荐技术资料

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


 复制成功!