①若使定时/计数器循环计数,在一次定时或计数结束之
后,应给计数寄存器TCNT0或TCNT1H、TCNT1L、TCNT2重新赋值。
②采用查询方式,要用软件将TIFR溢出标志寄存器清0, 比如对定时/计数器0的TIFR清0,可以设置语句“TIFR=0X01;”。而采用中断方式,则不需要这样,因为执行中断服务程序后,TIFR可以自动清0。
㈡ 定时时间常数的计算 1.计算公式
①8位定时/计数器,定时时间常数的计算公式: t=(256-TCNT初值)×N×TI/O 式中:
t:定时时间,单位:微秒us TCNT初值:计数器的初值 N:分频比例数
TI/O:系统时钟周期,单位:微秒us。如果系统时钟频率为4Mz,则其周期TI/O为0.25us;如果系统时钟频率为8Mz,则其周期TI/O为0.125us。
②16位定时/计数器,定时时间常数的计算公式: t=(65536-TCNT初值)×N×TI/O 式中:
t:定时时间,单位:微秒us TCNT初值:计数器的初值 N:分频比例数
TI/O:系统时钟周期,单位:微秒us。如果系统时钟频率为4Mz,则其周期TI/O为0.25us;如果系统时钟频率为8Mz,则其周期TI/O为0.125us。
由上面两公式计算得到的TCNT初值,是一个十进制数,必须转换成十六进制数才能赋值给单片机的计数器。下面介绍一种简便的转换制式方法:
第一步:如图2—13所示,点击桌面左下角的
按钮,在弹出的开
始菜单中依次选中[程序]、[附件]和[计算器],打开电脑自带的计算器,如图2—14:
图2—13
图2—14
第二步:如图2—15所示,单击选中
主菜单,在弹出的下拉菜单中单击
菜单项,弹出科学型计算器窗口,如图2—16:
图2—15
图2—16
第三步:将光标移动到算器窗口变为图2—17所示:
前的小圆圈中,单击选中十进制项,这是计
图2—17
第四步:将前面计算所得的TCNT初值,十进制数(如2008)键入到科学计算器中,如图2—18:
图2—18
第五步:将光标移动到前的小圆圈中点击选中十六进制项,这是计
算器所显示的数就是我们所需要的十六进制数(如7D8),如图2—19:
图2—19