dragonFANG 发表于 2015-10-31 15:42:57

各位大师麻烦来看看这个MSP430F149怎么用定时器捕获来测脉宽

我需要用定时器捕获来测量一个波形的脉宽,现在是可以捕获了,也能进行串口发送到电脑上了。但是串口发出的数值感觉不太对,怎么老是发01或02.不管脉宽那边我怎么调。顺便我还想知道这个发回来的值也就是TAR里存的数值是什么内容?

wuzhpo720 发表于 2015-10-31 19:02:50

有好几处不妥,最直接的错误就是TXBUF0 = time ; 一个是8位的,一个是16位的/数据溢出没有处理吧, TAR是当前定时器的值,如果定时器不停止,TAR的一直要累加的..

wuzhpo720 发表于 2015-10-31 19:03:42

TAR应该改成 TACCR1

dragonFANG 发表于 2015-11-1 21:52:52

wuzhpo720 发表于 2015-10-31 19:02
有好几处不妥,最直接的错误就是TXBUF0 = time ; 一个是8位的,一个是16位的/数据溢出没有处理吧, TAR是当 ...

对于8位跟16位的问题确实是存在的,但是你说的要把TAR也就是定时器停止的我觉得不能停止吧,我需要在捕获到上升沿之后的保存此时的值到start里面去,然后在继续让定时器走,到了捕获到下降沿时保存此时的值到end里面去。这样end-start才是这段时间的时间差。

dragonFANG 发表于 2015-11-1 21:58:55

wuzhpo720 发表于 2015-10-31 19:03
TAR应该改成 TACCR1

我刚刚把TAR换成TACCR1了,得到的结果不对,time的值也就是end-start的值一直都是0.不知道这是怎么回事?

wuzhpo720 发表于 2015-11-2 17:45:04

dragonFANG 发表于 2015-11-1 21:58
我刚刚把TAR换成TACCR1了,得到的结果不对,time的值也就是end-start的值一直都是0.不知道这是怎么回事? ...

你这个,上升沿触发得到STart,下降沿得到End,Timer值就应该在下降沿到来后,计算,发射.你写的这个 好像是进触发中断,就计算和发射time值.另外串口发最好不要在中断里发.

wuzhpo720 发表于 2015-11-2 17:46:48

应该在找找脉宽测量的方法...
页: [1]
查看完整版本: 各位大师麻烦来看看这个MSP430F149怎么用定时器捕获来测脉宽