double dA[10];
double dAM[10];
double dAD[10];
uint32_t iA[10];
uint32_t iAM[10];
uint32_t iAD[10];
int ii;
uint32_t tt;
void setup() {
int ii;
Serial.begin(115200);
elapsedMillis foo;
double dd = 0;
for (ii = 0; ii < 10; ii++) {
foo = 0;
while ( foo < 5 ) {
dd++;
}
dA[ii] = dd;
iA[ii] = dd;
}
while (!Serial && millis() < 4000 );
Serial.println("\n" __FILE__ " " __DATE__ " " __TIME__);
for (ii = 0; ii < 10; ii++) {
test();
}
}
void loop() {
Serial.println( "DONE!" );
while (1); delay(10);
}
void test() {
int ii;
for (ii = 0; ii < 10; ii++) {
dAD[ii] = dA[ii];
iAD[ii] = iA[ii];
}
tt = ARM_DWT_CYCCNT;
for (ii = 0; ii < 10; ii++) {
dAM[ii] = dA[ii] * dA[ii];
}
tt = ARM_DWT_CYCCNT - tt;
Serial.printf( "10X dbl Mult Cycles %lu\n", tt );
tt = ARM_DWT_CYCCNT;
for (ii = 0; ii < 10; ii++) {
dAD[ii] = dAM[ii] / dA[ii];
}
tt = ARM_DWT_CYCCNT - tt;
Serial.printf( "10X dbl Div Cycles %lu\n", tt );
tt = ARM_DWT_CYCCNT;
for (ii = 0; ii < 10; ii++) {
iAM[ii] = iA[ii] * iA[ii];
}
tt = ARM_DWT_CYCCNT - tt;
Serial.printf( "10X int Mult Cycles %lu\n", tt );
tt = ARM_DWT_CYCCNT;
for (ii = 0; ii < 10; ii++) {
iAD[ii] = iAM[ii] / iA[ii];
}
tt = ARM_DWT_CYCCNT - tt;
Serial.printf( "10X int Div Cycles %lu\n", tt );
Serial.println();
delay(100);
}