gpt4 book ai didi

c - 基于麦克风输入的 PWM 信号生成

转载 作者:行者123 更新时间:2023-11-30 17:11:08 29 4
gpt4 key购买 nike

我正在使用 MPC 7555 Controller 。它有一个 16 位 Σ-Δ ADC。称为麦克风输入的信号被馈送到该 ADC 引脚。根据该电压,产生与ADC信号采样频率相同的PWM信号。

For e.g.
0.1 V = 2 percent
0.2 V = 4 percent
0.3 V = 6 percent....and so on

So, i thought the following logic -
5V - 0xFFFF in digital
0.1V - 1310
0.2V - 2620 and so on

因此,将数字值除以 655 将给出精确的占空比值

1310/655 = 2
2620/655 = 4........

但是数字引脚也可以显示 0.1 V 的值 1309,除以 655 会得到 1 而不是 2。

无论如何,我可以避免这种情况,或者有更好的解决方案,请分享。

最佳答案

任务是以与 ADC 转换速率相同的速率输出 PWM。

假设 ADC 转换时间为 T(您可以通过读取自由运行定时器计数器来确定该时间)。假设ADC转换值为V,那么PWM输出“高”电平的时间H一定为

H = T * V / 0xFFFF

每次 ADC 转换可用时,您(取消任何待处理的单触发定时器中断)将 PWM 输出设置为 1,并在时间 H 触发单触发定时器。当它中断时,您将 PWM 输出设置为 0(如果有反逻辑,则设置为 0)。

如果输入为 0x00000xFFFF,您可以采用另一种策略 - 将输出设置为 0 或 1,但不部署一次性计时器。

关于c - 基于麦克风输入的 PWM 信号生成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32530021/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com