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