2011-02-19 52 views
1

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

回答

2

您需要阅读微控制器手册,然后弄清楚如何设置一个可以测量两个脉冲沿之间的间隔(例如从一个前沿到下一个)。的频率f,将这个时间间隔,T的倒数,即

f = 1/t 
1

有多种方法可以做到这一点,也许最简单的理解是设置一个定时器作为一个简单的计数器。轮询输入引脚,当它改变状态时,保存定时器的计数值,当它再次改变状态时,保存定时器的计数值,从另一个时间减去一个时间,即每秒钟一个频率X ticks的时钟周期数。您的差异是每个输入脉冲的y ticks。 y/x滴答取消,每个脉冲获得秒数。如果你正在测量一个满周期上升沿到下降沿或者下降沿到下降沿,那么它是同一个解决方案,不同的是哪个定时器采样要被减去(例如上一个上升沿和当前上升沿)。有些微控制器能够在输入引脚发生状态改变时(或者至少是相同的边沿,上升或下降)中断,并且您可能更喜欢使用该方法对定时器进行采样,然后减去并得到每个周期的滴答等,以获得每秒钟的周期数(频率)。

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