V3和V2虽然都支持arduino,但是显然V3使用的A20处理器比A10的性能更好更强劲,那么A20比A10到底快了多少呢?我们将通过一个求圆周率的小程序(作者:arduino论坛的Steve Curd)来比较他们的运算能力。
先,通过TTL232模块把V3和电脑连接起来 然后再pcduino V3自带的arduino IDE中写入下列代码: //
// Pi_2
//
// Steve Curd
// December 2012
//
// This program approximates pi utilizing the Newton's approximation. It quickly
// converges on the first 5-6 digits of precision, but converges verrrry slowly
// after that. For example, it takes over a million iterations to get to 7-8
// significant digits.
//
// I wrote this to evaluate the performance difference between the 8-bit Arduino Mega,
// and the 32-bit Arduino Due.
//
#include <core.h> // for pcDuino v3
#include "Serial.h"
#define ITERATIONS 100000L // number of iterations
#define FLASH 1000 // blink LED every 1000 iterations
void setup() {
pinMode(13, OUTPUT); // set the LED up to blink every 1000 iterations
Serial.begin(57600);
}
void loop() {
unsigned long start, time;
unsigned long niter=ITERATIONS;
int LEDcounter = 0;
boolean alternate = false;
unsigned long i, count=0;
float x = 1.0;
float temp, pi=1.0;
Serial.print("Beginning ");
Serial.print(niter);
Serial.println(" iterations...");
Serial.println();
start = millis();
for ( i = 2; i < niter; i++) {
x *= -1.0;
pi += x / (2.0f*(float)i-1.0f);
if (LEDcounter++ > FLASH) {
LEDcounter = 0;
if (alternate) {
digitalWrite(13, HIGH);
alternate = false;
} else {
digitalWrite(13, LOW);
alternate = true;
}
temp = 40000000.0 * pi;
}
}
time = millis() - start;
pi = pi * 4.0;
Serial.print("# of trials = ");
Serial.println(niter);
Serial.print("Estimate of pi = ");
Serial.println(pi, 10);
Serial.print("Time: "); Serial.print(time); Serial.println(" ms");
delay(10000);
}
在电脑上打开串口工具,选择对应的COM口还有正确的波特率。我们可以看到V3返回的数据。
|