我正在做一个需要使用微控制器的项目,因此,我决定使用 Beaglebone Black。我还是 Beaglebone 世界的新手,我面临一些问题,希望你们能帮助我。
在我的项目中,我将不得不连续读取所有 7 个模拟读取引脚并相应地进行一些处理。我的问题是,最快的编程语言是什么(我必须在很短的时间内读取尽可能多的样本!)以及如何将采样率从 KHz 提高到 MHz?
我尝试了以下代码:
Javascript代码:
var b = require('bonescript');//this variable is to refer to my beaglebone
time = new Date();
b.analogRead("P9_39");
console.log(new Date() - time);
此代码将仅执行一次模拟读取,并将打印出执行读取所需的时间。令人惊讶的是,结果是 111 毫秒!!这意味着如果我没记错的话,我的采样率为 10。
另一种方法是使用 pyhton:
import Adafruit_BBIO.ADC as ADC
import time
ADC.setup()
millis = int(round(time.time() * 1000))
ADC.read_raw("P9_39")
millis = millis = int(round(time.time() * 1000)) - millis
print millis
这段代码花费的时间更少(4ms),但如果我想从 7 个模拟输入引脚中读取,我将只能从每个引脚读取大约 35 个样本。
使用终端:
echo cape-bone-iio > /sys/devices/bone_capemgr.*/slots
time cat /sys/devices/ocp.3/helper.15/AIN0
############OR############
time cat /sys/devices/ocp.3/44e0d000.tscadc/tiadc/iio\:device0/in_voltage0_raw
这花了 50 毫秒。
我希望我的采样率以 MHz 为单位。我该怎么做?我知道 Beaglebone Black 能够做到这一点,但我找不到明确的方法来做到这一点。任何帮助表示赞赏。提前致谢。