我的董事会上有个模数转换器。我在信号发生器上产生正弦波。我把这个发生器输出给一个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引脚的价值。这个价值对创造波浪不是很重要吗?
发布于 2014-12-03 22:18:33
我将尝试根据我从你的帖子中了解到的内容,向你提供一些提示。
为了产生数字信号,模数转换器应该对在一定频率下产生的模拟信号进行采样。在您的情况下,您需要两个信息来跟踪您的曲线:
要跟踪的数据(样本),它代表信号的幅度,一直保持采样时间(在每个采样时刻)。
您需要知道ADC采样信号的时间周期,然后将每个数据与其对应的时间瞬间相关联。从ADC采样信号T= 1/f的频率可以推断出周期。
ADC将每个采样数据存储在寄存器中,并产生一个中断以通知处理器新的数据。您的中断服务例程(如果您正在进行中断)必须能够在数据被下一个示例替换之前提取该数据。作为建议,您可以在应用程序中创建一个缓冲区,在其中您的中断例程可以在其中存储数据。然后,应用程序可以从缓冲区中提取数据,并在系统有显示输出的情况下使用它绘制曲线,或者将其发送到桌面应用程序来完成这项工作。
你不需要坚持在你的帖子中的方程式,它是类似的。相反,您可以将数字化曲线看作f(t) = Data(t)。
当您使用linux时,如果您不想处理中断,您可以继续使用/sysfs接口读取数据。请注意,根据应用程序的要求,打开一个文件来读取每个示例的数据可能会很慢。
https://stackoverflow.com/questions/27271586
复制相似问题