0

我的板上有一个 adc 模块。我在信号发生器上创建一个正弦波。我将此发生器的输出提供给 adc 引脚。最后我定期读取此引脚的值。我尝试在我的软件上创建一个正弦波。

x = t,
y = Asin(wt),
A : amptitute value of the generator, 
w : 2πf, f : I set its value on my software.(difference time between two read operation)
t : time

而且我不使用 adc 引脚的值。这个值对创造波不重要吗?

4

1 回答 1

1

我将尝试根据我从您的帖子中了解到的内容为您提供一些提示。

ADC 应该对以定义频率生成的模拟信号进行采样,以产生数字信号。在您的情况下,您需要两个信息来跟踪您的曲线:

  1. 数据:

要跟踪的数据(样本),它表示整个采样时间(在每个采样时刻)的信号幅度。

  1. 时间:

您需要知道 ADC 对信号进行采样的时间段,然后将每个数据与其相应的时刻相关联。周期可以从 ADC 采样信号 T = 1/f 的频率推导出来。

ADC 将每个采样数据存储在一个寄存器中,并会生成一个中断以通知处理器有新的数据。您的中断服务程序(如果您正在处理中断)必须能够在将其替换为下一个样本之前提​​取该数据。作为建议,您可以在应用程序中创建一个缓冲区,您的中断例程可以在其中存储数据。然后,如果您的系统有显示输出,您的应用程序可以从缓冲区中提取数据并使用它来绘制曲线,或者将其发送到将完成这项工作的桌面应用程序。

您无需坚持帖子中的方程式;它用于模拟。相反,您可以将数字化曲线视为 f(t) = Data(t)。

当您使用 linux 时,如果您不想处理中断,您可以继续使用 /sysfs 接口读取数据。请注意,根据您的应用程序要求,打开文件以读取每个样本的数据可能会很慢。

于 2014-12-03T22:18:33.883 回答