捕获输入信号

时间:2011-02-19 06:45:09

标签: msp430

我在我的项目中使用msp430f2013微控制器..因为我需要计算脉冲信号频率的传入列车....我不知道该怎么做....任何人都可以帮助我这个..示例代码对我来说更有用....提前感谢

2 个答案:

答案 0 :(得分:2)

您需要阅读微控制器的手册,然后找出如何设置一个定时器,它可以测量两个脉冲边沿之间的间隔(例如从一个前沿到下一个)。频率f将是该时间间隔t的倒数,即

f = 1 / t

答案 1 :(得分:1)

有多种方法可以做到这一点,也许最简单的理解是将计时器设置为一个简单的计数器。轮询输入引脚,当它改变状态时保存计时器上的计数,当它再次改变状态时保存计时器的计数,从另一个中减去一次,即每秒一些频率X刻度的时钟节拍数。你的差异是每个输入脉冲的y刻度。 y / x刻度线取消,每个脉冲得到秒数。如果您正在测量一个完整周期的上升沿到上升沿或下降沿到下降沿,则它是相同的解决方案,差异是哪个定时器采样减去(例如,上一个上升沿和当前上升沿)。

某些微控制器能够在输入引脚状态发生变化时(或至少相同的边沿,上升或下降)中断,您可能更喜欢使用该方法对定时器进行采样,减去并获取时钟每个周期等,以获得每秒周期(频率)。

使用计时器可能很棘手,我总是首先使用计时器使LED闪烁,首先每秒一次进入球场,然后每5或10或30秒一次,并将其与秒针进行比较在手表或其他参考资料上,以确认您是准确的,而不是这样或那样的十几个百分点。这确定了对计时器及其除数的理解,从那里你可以开始使用它来测量输入。为了确保我的gpio编程正确(led练习已经覆盖了一些)我采样输入引脚并用输入引脚状态改变LED状态,然后经常可以看到LED看到闪烁或暗淡的光晕到看到我能够对gpio引脚进行采样。然后将它们全部放在一起并在输入改变状态时对定时器进行采样,首先轮询然后如果需要中断或其他。