【发布时间】:2014-03-17 22:34:45
【问题描述】:
我有一个 Arduino,它在每个采样周期 T(在此示例中,T = 10ms 大约)从传感器读取值。每次阅读后,我都想对传感器值进行大量计算。在设计算法之前,我想对我的有效计算预算有一个真实的感觉。这是代码大纲:
void loop() {
//read sensor measurements into variables
//do computations
delay(SAMPLE_PERIOD);
}
我想做的是插入某种测试,该测试可以真实地评估在下一个循环开始之前的时间段内我可以承受多少次乘法、加法和负载。我的第一个想法是插入如下内容:
for (i = 0; i < N; i++) {
//load operation
//multiply operation
//add operation
//store operation
//or some mix of the above
}
我会增加 N 以查看每个采样周期可以运行多少次操作。我会使用计数器/计时器来查看这是否比 T 花费的时间更长。
你怎么看?
作为参考,微控制器板是 Teensy 3.1:https://www.pjrc.com/teensy/teensy31.html#specs
【问题讨论】:
-
在嵌入式系统上进行基准测试的正确、准确方法是使用示波器。将 I/O 引脚设置为高电平,运行算法,将 I/O 引脚设置为低电平。用你的范围测量,完成。
-
@Lundin 所说的 - 它更容易。
-
我看不出使用示波器反复查看设置为高/低的引脚会有多大帮助。我已经知道时钟速度是多少,我想进一步了解架构可以做什么(例如每个周期有多少负载/muls/adds)。
标签: c embedded arduino hardware