我在我的项目中使用msp430f2013微控制器..在那我需要计算传入的脉冲信号频率列车....我不知道该怎么做....可以任何人都可以在这里帮助我..示例代码对我来说更加有用....提前感谢捕获传入的信号
Q
捕获传入的信号
1
A
回答
2
您需要阅读微控制器手册,然后弄清楚如何设置一个可以测量两个脉冲沿之间的间隔(例如从一个前沿到下一个)。的频率f,将这个时间间隔,T的倒数,即
f = 1/t
1
有多种方法可以做到这一点,也许最简单的理解是设置一个定时器作为一个简单的计数器。轮询输入引脚,当它改变状态时,保存定时器的计数值,当它再次改变状态时,保存定时器的计数值,从另一个时间减去一个时间,即每秒钟一个频率X ticks的时钟周期数。您的差异是每个输入脉冲的y ticks。 y/x滴答取消,每个脉冲获得秒数。如果你正在测量一个满周期上升沿到下降沿或者下降沿到下降沿,那么它是同一个解决方案,不同的是哪个定时器采样要被减去(例如上一个上升沿和当前上升沿)。有些微控制器能够在输入引脚发生状态改变时(或者至少是相同的边沿,上升或下降)中断,并且您可能更喜欢使用该方法对定时器进行采样,然后减去并得到每个周期的滴答等,以获得每秒钟的周期数(频率)。
使用计时器可能会非常棘手,我总是通过使用计时器来闪烁LED,首先每秒进入一次球场,然后每5或10或30秒一次,然后将其与一秒钟进行比较在手表上或其他参考资料上进行验证,以确认您的准确性,而不是这种或那种方式的十几个百分点。这就建立了对定时器及其除数的理解,从那里开始使用它来测量输入。为了确保我已经将gpio编程为正确的(led演习已经涵盖了一些)我对输入引脚进行采样,并使用输入引脚状态改变led状态,然后通常可以看到led看到闪烁或暗淡的发光看到我能够对gpio引脚进行采样。然后将它们放在一起并在输入改变状态时对定时器进行采样,如果需要中断或其他,则首先轮询。
相关问题
- 1. Golang捕获信号
- 2. posix_memalign是否捕获信号?
- 3. 如何捕获锈信号
- 4. 捕获SIGVTALRM信号,cp
- 5. 在linux中捕获信号
- 6. Android:捕获SIGSEGV信号JNI
- 7. 在星号中捕获反向信号
- 8. 如何获取信号捕获SIGABRT
- 9. Qt:捕获和传递信号的最佳机制
- 10. Python的 - 捕获所有信号
- 11. NAudio如何捕获播放的信号
- 12. C shell,父类捕获的信号仍然进入子进程。
- 13. 如何中断epoll_pwait捕获信号
- 14. GDB:捕获信号并继续调试
- 15. 如何在PowerShell中捕获信号?
- 16. 在Elixir escript中捕获出口信号
- 17. 如何从Q(双)spinbox捕获信号
- 18. 捕获SIGINT(等信号)在Windows
- 19. PyQt多QDilaog类信号捕获
- 20. 干净地在Perl中捕获信号
- 21. 在Qt中捕获音频信号
- 22. VBScript - 捕获结束任务信号
- 23. MousePressEvent捕获信号不必要 - PyQt4
- 24. Elixir:试着捕获退出信号
- 25. 为什么信号不会被捕获?
- 26. 如何捕获语法错误信号
- 27. 退出信号未被PyQt捕获
- 28. RPython中的捕捉信号
- 29. Android:如何从传入的短信中获取电话号码?
- 30. 如何获取Python中传入信号的进程ID?