【发布时间】:2015-06-17 05:13:58
【问题描述】:
我必须通过轮询 5 个不同的引脚来读取高达 20KHz 的 5 个不同频率(方波)。 我只使用一个定时器中断,每 1 毫秒。 引脚的轮询将在 ISR 中完成。
目前我想到的算法是: 1.计数HIGH 2.计数LOW数 3.检查HIGH+LOW之和是否=时间段。 这个算法看起来很慢,不实用。
是否有任何过滤器函数可以用来检查引脚上的频率,这样我所要做的就是调用该函数? 任何其他算法,用于频率检测都会很好。
我的代码中仅限于 1 个中断(定时器中断)
【问题讨论】:
-
仅供参考:如果有帮助,我会使用 KEIL uvision
-
在任何情况下,轮询都是一种可怕的方式。设备应至少有 1 个带输入捕获的计时器,这几乎非常适合此功能。
-
1.您正在测量什么样的信号(频率范围,噪声)? 2. 你有哪些 CPU 和 IO 能力? 3.为什么只有1KHz的定时器?如果您的信号低于 100Hz,那没关系,但如果您的芯片可以处理,为什么不使用 50KHz 或更高的频率进行更精确的测量
标签: algorithm microcontroller cortex-m3 lpc nxp-microcontroller