我对微控制器了解不多。在我的项目中,我需要改变正弦波。在这里,我想知道,如果我在端口 A 引脚 2 处输入纯正弦波。那么,我会在端口 B 引脚 2 处获得纯正弦波的移位版本。以下说明会起作用吗?
Inialise port A as input and port B as output
call delay
portb=porta
我们可以使用微控制器中的 DAC 生成正弦波。但是,由于它并不完美,它不会满足所需的条件。
我对微控制器了解不多。在我的项目中,我需要改变正弦波。在这里,我想知道,如果我在端口 A 引脚 2 处输入纯正弦波。那么,我会在端口 B 引脚 2 处获得纯正弦波的移位版本。以下说明会起作用吗?
Inialise port A as input and port B as output
call delay
portb=porta
我们可以使用微控制器中的 DAC 生成正弦波。但是,由于它并不完美,它不会满足所需的条件。
首先,输入需要到 ADC,输出需要来自 DAC(或具有适当输出滤波的 PWM)。从您的问题中不清楚您选择的引脚是否适合于此。
如果您要从 DAC 生成正弦波,为什么要将其应用于输入,然后再次输出?如果您需要两个移相的正弦波,为什么不简单地从两个 DAC 或 PWM 生成计算输出呢?无论哪种方式,您都需要两个模拟输出,但这样您就不需要任何输入。PWM 需要比 DAC 更大的模拟滤波,并且可能支持更低的带宽,但大多数微控制器的 PWM 比 DAC 多。
您不能简单地调用延迟而不是将端口 a 复制到端口 b,这只是延迟后 a 到 b 的副本。您需要从 A 获取样本,然后将其放入 FIFO 缓冲区,然后将 FIFO 的输出应用到 B。FIFO 的长度决定了延迟。
微控制器不是模拟设备,您不能只在任何旧引脚上输入模拟信号并将该信号传输到另一个引脚。大多数引脚都是数字 GPIO,除了代表 0 或 1 的两个状态之外。无论您施加什么电压,它都会被解释为高或低。
相反,您将不得不使用 ADC 输入,以足够高的频率进行采样,通过 FIFO 延迟采样,然后将延迟的采样应用于 DAC。从量化 DAC 输出重建“纯”正弦波需要模拟滤波电路。使用低于采样率一半的滤波器截止,您将恢复原始信号的相当好的表示(可以是任何分量低于采样频率一半的信号 - 它不必是正弦波)。如果您确实使用更复杂的信号,则需要对输入进行模拟滤波,以去除采样率一半以上的分量,以避免混叠。
使用Cypress PSoC可以在一个芯片上完成所有这些工作,因为这些是具有可重新配置模拟元件和微控制器的混合芯片。