论文首页哲学论文经济论文法学论文教育论文文学论文历史论文理学论文工学论文医学论文管理论文艺术论文 |
(1)当停止定时器时,定时器计数寄存器还有剩余值,必须计算这部分的时间。方法是先停止定时器,再读TIM的值,然后读TCR的值,通过运算获取PSC的值。再按公式(1)计算定时器在最后一次所开销的时间。定时器最后一次开销时间为:
T=[(TDDR 1)×(PRD-TIM) TDDR-PSC]/20M (1)
式中,20M为本文采用的晶振频率。
(2)进入定时器中断服务子程序,程序执行本身要花费一定的时间;而进入中断服务子程序时,定时器就自动停止,那么所计算的时间自然就少了。TMS320F206每个指令周期的执行时间是50ns,通过计算中断服务子程序的指令周期数和进入中断的次数可以计算出这部分的时间。
把这三部分时间加起来就得到准确的定时器时间,有了准确的时间,物理量的测量自然就准,精度就高。结果表明,通过这样准确计时,使得频率和相位的测量精度在万分之二以内。如果测量的是一个标准的50Hz频率,那么测量结果的范围在50~50.001Hz。
4 DSP程序实现
splk #0412h,64h
out 64h,0fff8h ;停止DSP定时器
in 65h,tim ;读tim寄存器的数值
in 67h,tcr ;计算tcr中psc的值
lacl 67h
and #03c0h ;与03c0h获得psc的值
sacl 67h ;左移10位
lacc 67h,10
sach 67h
lacl #9
sub 67h
sacl 67h ;存psc中剩下的值(即使用了的)
lacl #07cfh
sub 65h
sacl 68h ;存prd-tim的值
lt 68h
mpy #10 ;TDDR+1
pac