Benchmark Sute based on Arduino speed benchmark, adapted and modified for ARM Cortex-M7 ST Nucleo-144 STM32F767 and STM32F746 MCU's by Jovan Ivković 2017. https://hackaday.io/JovanE (Work based on Original Arduino Speed Test Benchmark Program by Dan Watson modified by Chester Lowrey)

Dependencies:   STM32F4_RNG mbed

Committer:
JovanEps
Date:
Mon Feb 20 02:59:17 2017 +0000
Revision:
0:82d68abdb697
Child:
1:646b34df5819
MCU Bench RC1

Who changed what in which revision?

UserRevisionLine numberNew contents of line
JovanEps 0:82d68abdb697 1 //********************************************************
JovanEps 0:82d68abdb697 2 //** Benchamrk Sute based on Arduino bench. ******
JovanEps 0:82d68abdb697 3 //** for ARM Cortex-M7 ST Nucleo-144 Stm32F746 ******
JovanEps 0:82d68abdb697 4 //** Stm32F767 MCU's by ******
JovanEps 0:82d68abdb697 5 //** Jovan Ivkovic 2016. ******
JovanEps 0:82d68abdb697 6 //** JovanEps (jovan.eps@gmail.com). ******
JovanEps 0:82d68abdb697 7 //********************************************************
JovanEps 0:82d68abdb697 8 #include "mbed.h"
JovanEps 0:82d68abdb697 9 #include "STM32F4_RNG.h"
JovanEps 0:82d68abdb697 10 //DigitalOut myled(LED1);
JovanEps 0:82d68abdb697 11 PwmOut PD13(PA_5);
JovanEps 0:82d68abdb697 12 //AnalogIn analog_value(A0);
JovanEps 0:82d68abdb697 13 AnalogIn analog_value(PA_3);
JovanEps 0:82d68abdb697 14 AnalogOut DACout(PA_4);
JovanEps 0:82d68abdb697 15 Serial pc(USBTX, USBRX);
JovanEps 0:82d68abdb697 16 DigitalOut PD7(PF_13); //introduce D7 pin-out *-Clear port it ping faster :)
JovanEps 0:82d68abdb697 17 DigitalIn PD8(PF_12);
JovanEps 0:82d68abdb697 18 DigitalInOut PD5(PE_11);
JovanEps 0:82d68abdb697 19 Timer timer; //Timer
JovanEps 0:82d68abdb697 20
JovanEps 0:82d68abdb697 21 #include <math.h>
JovanEps 0:82d68abdb697 22 #define delay wait_ms
JovanEps 0:82d68abdb697 23 #define delayMicroseconds wait_us
JovanEps 0:82d68abdb697 24 #define millis() timer.read_ms()
JovanEps 0:82d68abdb697 25 #define digitalWrite DigitalOut
JovanEps 0:82d68abdb697 26 #define HIGH 1
JovanEps 0:82d68abdb697 27 #define LOW 0
JovanEps 0:82d68abdb697 28
JovanEps 0:82d68abdb697 29 // Arduino Speed Test Benchmarking Program
JovanEps 0:82d68abdb697 30 // Original Program Credit: Arduino.cc
JovanEps 0:82d68abdb697 31 // Modified By: Dan Watson
JovanEps 0:82d68abdb697 32 // synchannel.blogspot.com
JovanEps 0:82d68abdb697 33 // 1-29-2015
JovanEps 0:82d68abdb697 34
JovanEps 0:82d68abdb697 35 // Modified By: Chester Lowrey
JovanEps 0:82d68abdb697 36 // easybotics.com hilo90mhz.com
JovanEps 0:82d68abdb697 37 // 2016-12-1
JovanEps 0:82d68abdb697 38
JovanEps 0:82d68abdb697 39 // This sketch is the speed test portion of the Arduino Show Info program
JovanEps 0:82d68abdb697 40 // http://playground.arduino.cc/Main/ShowInfo
JovanEps 0:82d68abdb697 41
JovanEps 0:82d68abdb697 42 // Certain tests may not compile/run for all boards. Comment them out as necessary:
JovanEps 0:82d68abdb697 43 // * analogReference()
JovanEps 0:82d68abdb697 44 // * dtostrf()
JovanEps 0:82d68abdb697 45 // * bitSet()
JovanEps 0:82d68abdb697 46 // * y |= (1<<x)
JovanEps 0:82d68abdb697 47
JovanEps 0:82d68abdb697 48 // For the Arduino Zero, "Serial." needs to be "SerialUSB.". A find and replace is the easiest way
JovanEps 0:82d68abdb697 49 // to fix this. The program may also run in forked IDEs (such as Mpide for the chipKIT boards).
JovanEps 0:82d68abdb697 50
JovanEps 0:82d68abdb697 51 // All configuration options listed below for reference
JovanEps 0:82d68abdb697 52
JovanEps 0:82d68abdb697 53 // PIN_1 is used for digitalRead
JovanEps 0:82d68abdb697 54 // PIN_2 is used for digitalWrite / pinMode / analogWrite (PWM)
JovanEps 0:82d68abdb697 55 // Analog read is hardcoded to 0/1
JovanEps 0:82d68abdb697 56
JovanEps 0:82d68abdb697 57 #define noTitle // define to remove titles - easier to paste results into comparison spreadsheet
JovanEps 0:82d68abdb697 58 //#define noAnalog // define to remove analog read/write for ICs without this function
JovanEps 0:82d68abdb697 59 #define noAnalogRef // define to remove analogRef test that some cores do not support
JovanEps 0:82d68abdb697 60 //#define noDtostrfTest // define to remove the dtostrf test that some cores do not support
JovanEps 0:82d68abdb697 61 //#define noBvTest // define to remove bv test that some cores do not support
JovanEps 0:82d68abdb697 62 //#define USBserialWait // define to force the main sketch to wait for USB to Serial connection - needed on some native serial boards
JovanEps 0:82d68abdb697 63 //#define noLtoaTest // define to remove Itoa test that some cores do not support
JovanEps 0:82d68abdb697 64
JovanEps 0:82d68abdb697 65 // Uncomment only one of the below configurations for your specifc board, or make a new one
JovanEps 0:82d68abdb697 66
JovanEps 0:82d68abdb697 67 /*
JovanEps 0:82d68abdb697 68 // Arduino ATMEGA328
JovanEps 0:82d68abdb697 69 #define PIN_1 3
JovanEps 0:82d68abdb697 70 #define PIN_2 4
JovanEps 0:82d68abdb697 71 */
JovanEps 0:82d68abdb697 72
JovanEps 0:82d68abdb697 73 /*
JovanEps 0:82d68abdb697 74 // Arduino Leonardo
JovanEps 0:82d68abdb697 75 #define PIN_1 2
JovanEps 0:82d68abdb697 76 #define PIN_2 3
JovanEps 0:82d68abdb697 77 #define noBvTest
JovanEps 0:82d68abdb697 78 #define USBserialWait
JovanEps 0:82d68abdb697 79 */
JovanEps 0:82d68abdb697 80
JovanEps 0:82d68abdb697 81
JovanEps 0:82d68abdb697 82 // Nucleo STM32F103RB - not tested yet
JovanEps 0:82d68abdb697 83 #define PIN_1 12
JovanEps 0:82d68abdb697 84 #define PIN_2 13
JovanEps 0:82d68abdb697 85 #define noAnalog
JovanEps 0:82d68abdb697 86 #define noBvTest
JovanEps 0:82d68abdb697 87 #define noLtoaTest
JovanEps 0:82d68abdb697 88
JovanEps 0:82d68abdb697 89 /*
JovanEps 0:82d68abdb697 90 // Arduino Due
JovanEps 0:82d68abdb697 91 #define PIN_1 2
JovanEps 0:82d68abdb697 92 #define PIN_2 3
JovanEps 0:82d68abdb697 93 #define noDtostrfTest
JovanEps 0:82d68abdb697 94 #define noBvTest
JovanEps 0:82d68abdb697 95 #define USBserialWait
JovanEps 0:82d68abdb697 96 */
JovanEps 0:82d68abdb697 97
JovanEps 0:82d68abdb697 98 /*
JovanEps 0:82d68abdb697 99 // Arduino Zero Pins
JovanEps 0:82d68abdb697 100 #define PIN_1 2
JovanEps 0:82d68abdb697 101 #define PIN_2 3
JovanEps 0:82d68abdb697 102 #define noBvTest
JovanEps 0:82d68abdb697 103 #define noDtostrfTest
JovanEps 0:82d68abdb697 104 #define USBserialWait
JovanEps 0:82d68abdb697 105 */
JovanEps 0:82d68abdb697 106
JovanEps 0:82d68abdb697 107 /*
JovanEps 0:82d68abdb697 108 // ESP8266 Pins
JovanEps 0:82d68abdb697 109 #define PIN_1 4
JovanEps 0:82d68abdb697 110 #define PIN_2 5
JovanEps 0:82d68abdb697 111 #define PIN_3 12
JovanEps 0:82d68abdb697 112 */
JovanEps 0:82d68abdb697 113
JovanEps 0:82d68abdb697 114 /*
JovanEps 0:82d68abdb697 115 // ESP32 Pins
JovanEps 0:82d68abdb697 116 #define PIN_1 25
JovanEps 0:82d68abdb697 117 #define PIN_2 26
JovanEps 0:82d68abdb697 118 #define PIN_3 27
JovanEps 0:82d68abdb697 119 #define noAnalog
JovanEps 0:82d68abdb697 120 */
JovanEps 0:82d68abdb697 121
JovanEps 0:82d68abdb697 122 /*
JovanEps 0:82d68abdb697 123 // NRF52/51 Pins
JovanEps 0:82d68abdb697 124 #define PIN_1 17
JovanEps 0:82d68abdb697 125 #define PIN_2 18
JovanEps 0:82d68abdb697 126 #define PIN_3 19
JovanEps 0:82d68abdb697 127 #define noDtostrfTest
JovanEps 0:82d68abdb697 128 #define noBvTest
JovanEps 0:82d68abdb697 129 */
JovanEps 0:82d68abdb697 130
JovanEps 0:82d68abdb697 131 void setup()
JovanEps 0:82d68abdb697 132 {
JovanEps 0:82d68abdb697 133 //Serial.begin(9600);
JovanEps 0:82d68abdb697 134 pc.baud(9600);
JovanEps 0:82d68abdb697 135
JovanEps 0:82d68abdb697 136 /*
JovanEps 0:82d68abdb697 137 #ifdef USBserialWait
JovanEps 0:82d68abdb697 138 while (!Serial) {
JovanEps 0:82d68abdb697 139 ; // wait for serial port to connect. Needed for native USB
JovanEps 0:82d68abdb697 140 }
JovanEps 0:82d68abdb697 141 #endif
JovanEps 0:82d68abdb697 142
JovanEps 0:82d68abdb697 143
JovanEps 0:82d68abdb697 144 pinMode(PIN_1, OUTPUT);
JovanEps 0:82d68abdb697 145 pinMode(PIN_2, INPUT);
JovanEps 0:82d68abdb697 146
JovanEps 0:82d68abdb697 147 pc.printfln("Speed Test will begin momentarily.");
JovanEps 0:82d68abdb697 148 pc.printfln("");
JovanEps 0:82d68abdb697 149
JovanEps 0:82d68abdb697 150 wait_ms(1000);
JovanEps 0:82d68abdb697 151
JovanEps 0:82d68abdb697 152 speedTest();
JovanEps 0:82d68abdb697 153 */
JovanEps 0:82d68abdb697 154 }
JovanEps 0:82d68abdb697 155
JovanEps 0:82d68abdb697 156 void speedTest(void)
JovanEps 0:82d68abdb697 157 {
JovanEps 0:82d68abdb697 158 register int i,j;
JovanEps 0:82d68abdb697 159 volatile unsigned char c1,c2;
JovanEps 0:82d68abdb697 160 volatile int v;
JovanEps 0:82d68abdb697 161 volatile long l1,l2;
JovanEps 0:82d68abdb697 162 volatile float f1,f2;
JovanEps 0:82d68abdb697 163 int p,q;
JovanEps 0:82d68abdb697 164 long int r;
JovanEps 0:82d68abdb697 165 unsigned long m,n;
JovanEps 0:82d68abdb697 166 float d, overhead;
JovanEps 0:82d68abdb697 167 char buffer[30];
JovanEps 0:82d68abdb697 168 int digitalRead;
JovanEps 0:82d68abdb697 169 float meas; //Analog readings
JovanEps 0:82d68abdb697 170 #define F_CPU 216000000
JovanEps 0:82d68abdb697 171 #define DEC 10
JovanEps 0:82d68abdb697 172
JovanEps 0:82d68abdb697 173
JovanEps 0:82d68abdb697 174 //#ifndef noTitle
JovanEps 0:82d68abdb697 175 pc.printf("\n\r");
JovanEps 0:82d68abdb697 176 pc.printf("Speed test \n\r");
JovanEps 0:82d68abdb697 177 pc.printf("---------- \n\r");
JovanEps 0:82d68abdb697 178 pc.printf("F_CPU = ");
JovanEps 0:82d68abdb697 179 //#endif
JovanEps 0:82d68abdb697 180 pc.printf("%d",F_CPU/1000000);
JovanEps 0:82d68abdb697 181 pc.printf(" MHz \n\r");
JovanEps 0:82d68abdb697 182 //#ifndef noTitle
JovanEps 0:82d68abdb697 183 pc.printf("1/F_CPU = ");
JovanEps 0:82d68abdb697 184 //#endif
JovanEps 0:82d68abdb697 185 pc.printf("%.4f",(1000000.0/(float)F_CPU));
JovanEps 0:82d68abdb697 186 pc.printf("us \n\r");
JovanEps 0:82d68abdb697 187
JovanEps 0:82d68abdb697 188
JovanEps 0:82d68abdb697 189 wait(0.5); // Allow the Serial text to be transmitted
JovanEps 0:82d68abdb697 190 //#ifndef noTitle
JovanEps 0:82d68abdb697 191 pc.printf("\n\r Start benchmarks");
JovanEps 0:82d68abdb697 192 pc.printf("\n\r ------------------------------");
JovanEps 0:82d68abdb697 193 wait_ms(70); // Allow the Serial text to be transmitted
JovanEps 0:82d68abdb697 194 pc.printf("\n\r\n\r NOP : ");
JovanEps 0:82d68abdb697 195 //#endif
JovanEps 0:82d68abdb697 196 //*************************
JovanEps 0:82d68abdb697 197 // Start timer
JovanEps 0:82d68abdb697 198 //*************************
JovanEps 0:82d68abdb697 199 timer.start();
JovanEps 0:82d68abdb697 200 //*************************
JovanEps 0:82d68abdb697 201 // wait_ms(70); // Allow the Serial text to be transmitted
JovanEps 0:82d68abdb697 202 m = timer.read_ms();
JovanEps 0:82d68abdb697 203 for (i=0; i<100; i++) {
JovanEps 0:82d68abdb697 204 for (j=0; j<10000; j++) {
JovanEps 0:82d68abdb697 205 asm volatile ("nop");
JovanEps 0:82d68abdb697 206 asm volatile ("nop");
JovanEps 0:82d68abdb697 207 asm volatile ("nop");
JovanEps 0:82d68abdb697 208 asm volatile ("nop");
JovanEps 0:82d68abdb697 209 asm volatile ("nop");
JovanEps 0:82d68abdb697 210 asm volatile ("nop");
JovanEps 0:82d68abdb697 211 asm volatile ("nop");
JovanEps 0:82d68abdb697 212 asm volatile ("nop");
JovanEps 0:82d68abdb697 213 asm volatile ("nop");
JovanEps 0:82d68abdb697 214 asm volatile ("nop");
JovanEps 0:82d68abdb697 215 asm volatile ("nop");
JovanEps 0:82d68abdb697 216 asm volatile ("nop");
JovanEps 0:82d68abdb697 217 asm volatile ("nop");
JovanEps 0:82d68abdb697 218 asm volatile ("nop");
JovanEps 0:82d68abdb697 219 asm volatile ("nop");
JovanEps 0:82d68abdb697 220 asm volatile ("nop");
JovanEps 0:82d68abdb697 221 asm volatile ("nop");
JovanEps 0:82d68abdb697 222 asm volatile ("nop");
JovanEps 0:82d68abdb697 223 asm volatile ("nop");
JovanEps 0:82d68abdb697 224 asm volatile ("nop");
JovanEps 0:82d68abdb697 225 }
JovanEps 0:82d68abdb697 226 }
JovanEps 0:82d68abdb697 227 n = timer.read_ms();
JovanEps 0:82d68abdb697 228 d = ((float)n - (float)m) / ((float)i * (float)j);
JovanEps 0:82d68abdb697 229 d *= 1000.0; // in micro seconds
JovanEps 0:82d68abdb697 230 // Calculate overhead with 'nop' instruction per loop in microseconds
JovanEps 0:82d68abdb697 231 overhead = d - (20.0 * (1000000.0/(float)F_CPU));
JovanEps 0:82d68abdb697 232 d -= overhead;
JovanEps 0:82d68abdb697 233 d /= 20.0; // per instruction
JovanEps 0:82d68abdb697 234 pc.printf("%.3f us \n\r",d);
JovanEps 0:82d68abdb697 235 pc.printf("\n\r------------------------");
JovanEps 0:82d68abdb697 236
JovanEps 0:82d68abdb697 237 //#ifndef noTitle
JovanEps 0:82d68abdb697 238 pc.printf("\n\r digitalRead : ");
JovanEps 0:82d68abdb697 239 //#endif
JovanEps 0:82d68abdb697 240 wait_ms(70); // Allow the Serial text to be transmitted
JovanEps 0:82d68abdb697 241 m = timer.read_ms();
JovanEps 0:82d68abdb697 242 for (i=0; i<2; i++) {
JovanEps 0:82d68abdb697 243 for (j=0; j<10000; j++) {
JovanEps 0:82d68abdb697 244
JovanEps 0:82d68abdb697 245 digitalRead = PD8;
JovanEps 0:82d68abdb697 246 digitalRead = PD8;
JovanEps 0:82d68abdb697 247
JovanEps 0:82d68abdb697 248 digitalRead = PD8;
JovanEps 0:82d68abdb697 249 digitalRead = PD8;
JovanEps 0:82d68abdb697 250
JovanEps 0:82d68abdb697 251 digitalRead = PD8;
JovanEps 0:82d68abdb697 252 digitalRead = PD8;
JovanEps 0:82d68abdb697 253
JovanEps 0:82d68abdb697 254 digitalRead = PD8;
JovanEps 0:82d68abdb697 255 digitalRead = PD8;
JovanEps 0:82d68abdb697 256
JovanEps 0:82d68abdb697 257 digitalRead = PD8;
JovanEps 0:82d68abdb697 258 digitalRead = PD8;
JovanEps 0:82d68abdb697 259
JovanEps 0:82d68abdb697 260 digitalRead = PD8;
JovanEps 0:82d68abdb697 261 digitalRead = PD8;
JovanEps 0:82d68abdb697 262
JovanEps 0:82d68abdb697 263 digitalRead = PD8;
JovanEps 0:82d68abdb697 264 digitalRead = PD8;
JovanEps 0:82d68abdb697 265
JovanEps 0:82d68abdb697 266 digitalRead = PD8;
JovanEps 0:82d68abdb697 267 digitalRead = PD8;
JovanEps 0:82d68abdb697 268
JovanEps 0:82d68abdb697 269 digitalRead = PD8;
JovanEps 0:82d68abdb697 270 digitalRead = PD8;
JovanEps 0:82d68abdb697 271
JovanEps 0:82d68abdb697 272 digitalRead = PD8;
JovanEps 0:82d68abdb697 273 digitalRead = PD8;
JovanEps 0:82d68abdb697 274
JovanEps 0:82d68abdb697 275 digitalRead = PD8;
JovanEps 0:82d68abdb697 276 digitalRead = PD8;
JovanEps 0:82d68abdb697 277 }
JovanEps 0:82d68abdb697 278 }
JovanEps 0:82d68abdb697 279 n = timer.read_ms();
JovanEps 0:82d68abdb697 280 d = ((float)n - (float)m) / ((float)i * (float)j);
JovanEps 0:82d68abdb697 281 d *= 1000.0;
JovanEps 0:82d68abdb697 282 d -= overhead;
JovanEps 0:82d68abdb697 283 d /= 20.0;
JovanEps 0:82d68abdb697 284 pc.printf("%.3f us \n\r",d);
JovanEps 0:82d68abdb697 285 pc.printf("\n\r");
JovanEps 0:82d68abdb697 286
JovanEps 0:82d68abdb697 287
JovanEps 0:82d68abdb697 288 //#ifndef noTitle
JovanEps 0:82d68abdb697 289 pc.printf("\n\r digitalWrite : ");
JovanEps 0:82d68abdb697 290 //#endif
JovanEps 0:82d68abdb697 291 wait_ms(70); // Allow the Serial text to be transmitted
JovanEps 0:82d68abdb697 292 m = timer.read_ms();
JovanEps 0:82d68abdb697 293 for (i=0; i<2; i++) {
JovanEps 0:82d68abdb697 294 for (j=0; j<10000; j++) {
JovanEps 0:82d68abdb697 295 PD7 = HIGH;
JovanEps 0:82d68abdb697 296 PD7 = LOW;
JovanEps 0:82d68abdb697 297
JovanEps 0:82d68abdb697 298 PD7 = HIGH;
JovanEps 0:82d68abdb697 299 PD7 = LOW;
JovanEps 0:82d68abdb697 300
JovanEps 0:82d68abdb697 301 PD7 = HIGH;
JovanEps 0:82d68abdb697 302 PD7 = LOW;
JovanEps 0:82d68abdb697 303
JovanEps 0:82d68abdb697 304 PD7 = HIGH;
JovanEps 0:82d68abdb697 305 PD7 = LOW;
JovanEps 0:82d68abdb697 306
JovanEps 0:82d68abdb697 307 PD7 = HIGH;
JovanEps 0:82d68abdb697 308 PD7 = LOW;
JovanEps 0:82d68abdb697 309
JovanEps 0:82d68abdb697 310 PD7 = HIGH;
JovanEps 0:82d68abdb697 311 PD7 = LOW;
JovanEps 0:82d68abdb697 312
JovanEps 0:82d68abdb697 313 PD7 = HIGH;
JovanEps 0:82d68abdb697 314 PD7 = LOW;
JovanEps 0:82d68abdb697 315
JovanEps 0:82d68abdb697 316 PD7 = HIGH;
JovanEps 0:82d68abdb697 317 PD7 = LOW;
JovanEps 0:82d68abdb697 318
JovanEps 0:82d68abdb697 319 PD7 = HIGH;
JovanEps 0:82d68abdb697 320 PD7 = LOW;
JovanEps 0:82d68abdb697 321
JovanEps 0:82d68abdb697 322 PD7 = HIGH;
JovanEps 0:82d68abdb697 323 PD7 = LOW;
JovanEps 0:82d68abdb697 324 }
JovanEps 0:82d68abdb697 325 }
JovanEps 0:82d68abdb697 326 n = timer.read_ms();
JovanEps 0:82d68abdb697 327 d = ((float)n - (float)m) / ((float)i * (float)j);
JovanEps 0:82d68abdb697 328 d *= 1000.0;
JovanEps 0:82d68abdb697 329 d -= overhead;
JovanEps 0:82d68abdb697 330 d /= 20.0;
JovanEps 0:82d68abdb697 331 pc.printf("%.3f us \n\r",d);
JovanEps 0:82d68abdb697 332 pc.printf("\n\r");
JovanEps 0:82d68abdb697 333
JovanEps 0:82d68abdb697 334
JovanEps 0:82d68abdb697 335 //#ifndef noTitle
JovanEps 0:82d68abdb697 336 pc.printf("\n\r pinMode : ");
JovanEps 0:82d68abdb697 337 //#endif
JovanEps 0:82d68abdb697 338 wait_ms(70); // Allow the Serial text to be transmitted
JovanEps 0:82d68abdb697 339 m = timer.read_ms();
JovanEps 0:82d68abdb697 340 for (i=0; i<2; i++) {
JovanEps 0:82d68abdb697 341 for (j=0; j<10000; j++) {
JovanEps 0:82d68abdb697 342
JovanEps 0:82d68abdb697 343 digitalRead = PD5.read();
JovanEps 0:82d68abdb697 344 PD5.write(digitalRead);
JovanEps 0:82d68abdb697 345
JovanEps 0:82d68abdb697 346 digitalRead = PD5.read();
JovanEps 0:82d68abdb697 347 PD5.write(digitalRead);
JovanEps 0:82d68abdb697 348
JovanEps 0:82d68abdb697 349 digitalRead = PD5.read();
JovanEps 0:82d68abdb697 350 PD5.write(digitalRead);
JovanEps 0:82d68abdb697 351
JovanEps 0:82d68abdb697 352 digitalRead = PD5.read();
JovanEps 0:82d68abdb697 353 PD5.write(digitalRead);
JovanEps 0:82d68abdb697 354
JovanEps 0:82d68abdb697 355 digitalRead = PD5.read();
JovanEps 0:82d68abdb697 356 PD5.write(digitalRead);
JovanEps 0:82d68abdb697 357
JovanEps 0:82d68abdb697 358 digitalRead = PD5.read();
JovanEps 0:82d68abdb697 359 PD5.write(digitalRead);
JovanEps 0:82d68abdb697 360
JovanEps 0:82d68abdb697 361 digitalRead = PD5.read();
JovanEps 0:82d68abdb697 362 PD5.write(digitalRead);
JovanEps 0:82d68abdb697 363
JovanEps 0:82d68abdb697 364 digitalRead = PD5.read();
JovanEps 0:82d68abdb697 365 PD5.write(digitalRead);
JovanEps 0:82d68abdb697 366
JovanEps 0:82d68abdb697 367 digitalRead = PD5.read();
JovanEps 0:82d68abdb697 368 PD5.write(digitalRead);
JovanEps 0:82d68abdb697 369
JovanEps 0:82d68abdb697 370 digitalRead = PD5.read();
JovanEps 0:82d68abdb697 371 PD5.write(digitalRead);
JovanEps 0:82d68abdb697 372
JovanEps 0:82d68abdb697 373 digitalRead = PD5.read();
JovanEps 0:82d68abdb697 374 PD5.write(digitalRead);
JovanEps 0:82d68abdb697 375 }
JovanEps 0:82d68abdb697 376 }
JovanEps 0:82d68abdb697 377 n = timer.read_ms();
JovanEps 0:82d68abdb697 378 d = ((float)n - (float)m) / ((float)i * (float)j);
JovanEps 0:82d68abdb697 379 d *= 1000.0;
JovanEps 0:82d68abdb697 380 d -= overhead;
JovanEps 0:82d68abdb697 381 d /= 20.0;
JovanEps 0:82d68abdb697 382 pc.printf("%.3f us \n\r",d);
JovanEps 0:82d68abdb697 383 pc.printf("\n\r");
JovanEps 0:82d68abdb697 384
JovanEps 0:82d68abdb697 385
JovanEps 0:82d68abdb697 386
JovanEps 0:82d68abdb697 387 //#ifndef noTitle
JovanEps 0:82d68abdb697 388 pc.printf("\n\r multiply byte : ");
JovanEps 0:82d68abdb697 389 //#endif
JovanEps 0:82d68abdb697 390 c1 = 2;
JovanEps 0:82d68abdb697 391 c2 = 3;
JovanEps 0:82d68abdb697 392 wait_ms(70); // Allow the Serial text to be transmitted
JovanEps 0:82d68abdb697 393 m = timer.read_ms();
JovanEps 0:82d68abdb697 394 for (i=0; i<20; i++) {
JovanEps 0:82d68abdb697 395 for (j=0; j<10000; j++) {
JovanEps 0:82d68abdb697 396 c1 *= c2;
JovanEps 0:82d68abdb697 397 c1 *= c2;
JovanEps 0:82d68abdb697 398 c1 *= c2;
JovanEps 0:82d68abdb697 399 c1 *= c2;
JovanEps 0:82d68abdb697 400 c1 *= c2;
JovanEps 0:82d68abdb697 401 c1 *= c2;
JovanEps 0:82d68abdb697 402 c1 *= c2;
JovanEps 0:82d68abdb697 403 c1 *= c2;
JovanEps 0:82d68abdb697 404 c1 *= c2;
JovanEps 0:82d68abdb697 405 c1 *= c2;
JovanEps 0:82d68abdb697 406 c1 *= c2;
JovanEps 0:82d68abdb697 407 c1 *= c2;
JovanEps 0:82d68abdb697 408 c1 *= c2;
JovanEps 0:82d68abdb697 409 c1 *= c2;
JovanEps 0:82d68abdb697 410 c1 *= c2;
JovanEps 0:82d68abdb697 411 c1 *= c2;
JovanEps 0:82d68abdb697 412 c1 *= c2;
JovanEps 0:82d68abdb697 413 c1 *= c2;
JovanEps 0:82d68abdb697 414 c1 *= c2;
JovanEps 0:82d68abdb697 415 c1 *= c2;
JovanEps 0:82d68abdb697 416 }
JovanEps 0:82d68abdb697 417 }
JovanEps 0:82d68abdb697 418 n = timer.read_ms();
JovanEps 0:82d68abdb697 419 d = ((float)n - (float)m) / ((float)i * (float)j);
JovanEps 0:82d68abdb697 420 d *= 1000.0;
JovanEps 0:82d68abdb697 421 d -= overhead;
JovanEps 0:82d68abdb697 422 d /= 20.0;
JovanEps 0:82d68abdb697 423 pc.printf("%.3f us \n\r",d);
JovanEps 0:82d68abdb697 424 pc.printf("\n\r");
JovanEps 0:82d68abdb697 425
JovanEps 0:82d68abdb697 426
JovanEps 0:82d68abdb697 427 //#ifndef noTitle
JovanEps 0:82d68abdb697 428 pc.printf("\n\r divide byte : ");
JovanEps 0:82d68abdb697 429 //#endif
JovanEps 0:82d68abdb697 430 c1 = 253;
JovanEps 0:82d68abdb697 431 c2 = 3;
JovanEps 0:82d68abdb697 432 wait_ms(70); // Allow the Serial text to be transmitted
JovanEps 0:82d68abdb697 433 m = timer.read_ms();
JovanEps 0:82d68abdb697 434 for (i=0; i<2; i++) {
JovanEps 0:82d68abdb697 435 for (j=0; j<10000; j++) {
JovanEps 0:82d68abdb697 436 c1 /= c2;
JovanEps 0:82d68abdb697 437 c1 /= c2;
JovanEps 0:82d68abdb697 438 c1 /= c2;
JovanEps 0:82d68abdb697 439 c1 /= c2;
JovanEps 0:82d68abdb697 440 c1 /= c2;
JovanEps 0:82d68abdb697 441 c1 /= c2;
JovanEps 0:82d68abdb697 442 c1 /= c2;
JovanEps 0:82d68abdb697 443 c1 /= c2;
JovanEps 0:82d68abdb697 444 c1 /= c2;
JovanEps 0:82d68abdb697 445 c1 /= c2;
JovanEps 0:82d68abdb697 446 c1 /= c2;
JovanEps 0:82d68abdb697 447 c1 /= c2;
JovanEps 0:82d68abdb697 448 c1 /= c2;
JovanEps 0:82d68abdb697 449 c1 /= c2;
JovanEps 0:82d68abdb697 450 c1 /= c2;
JovanEps 0:82d68abdb697 451 c1 /= c2;
JovanEps 0:82d68abdb697 452 c1 /= c2;
JovanEps 0:82d68abdb697 453 c1 /= c2;
JovanEps 0:82d68abdb697 454 c1 /= c2;
JovanEps 0:82d68abdb697 455 c1 /= c2;
JovanEps 0:82d68abdb697 456 }
JovanEps 0:82d68abdb697 457 }
JovanEps 0:82d68abdb697 458 n = timer.read_ms();
JovanEps 0:82d68abdb697 459 d = ((float)n - (float)m) / ((float)i * (float)j);
JovanEps 0:82d68abdb697 460 d *= 1000.0;
JovanEps 0:82d68abdb697 461 d -= overhead;
JovanEps 0:82d68abdb697 462 d /= 20.0;
JovanEps 0:82d68abdb697 463 pc.printf("%.3f us \n\r",d);
JovanEps 0:82d68abdb697 464 pc.printf("\n\r");
JovanEps 0:82d68abdb697 465
JovanEps 0:82d68abdb697 466
JovanEps 0:82d68abdb697 467 //#ifndef noTitle
JovanEps 0:82d68abdb697 468 pc.printf("\n\r add byte : ");
JovanEps 0:82d68abdb697 469 //#endif
JovanEps 0:82d68abdb697 470 c1 = 1;
JovanEps 0:82d68abdb697 471 c2 = 2;
JovanEps 0:82d68abdb697 472 wait_ms(70); // Allow the Serial text to be transmitted
JovanEps 0:82d68abdb697 473 m = timer.read_ms();
JovanEps 0:82d68abdb697 474 for (i=0; i<20; i++) {
JovanEps 0:82d68abdb697 475 for (j=0; j<10000; j++) {
JovanEps 0:82d68abdb697 476 c1 += c2;
JovanEps 0:82d68abdb697 477 c1 += c2;
JovanEps 0:82d68abdb697 478 c1 += c2;
JovanEps 0:82d68abdb697 479 c1 += c2;
JovanEps 0:82d68abdb697 480 c1 += c2;
JovanEps 0:82d68abdb697 481 c1 += c2;
JovanEps 0:82d68abdb697 482 c1 += c2;
JovanEps 0:82d68abdb697 483 c1 += c2;
JovanEps 0:82d68abdb697 484 c1 += c2;
JovanEps 0:82d68abdb697 485 c1 += c2;
JovanEps 0:82d68abdb697 486 c1 += c2;
JovanEps 0:82d68abdb697 487 c1 += c2;
JovanEps 0:82d68abdb697 488 c1 += c2;
JovanEps 0:82d68abdb697 489 c1 += c2;
JovanEps 0:82d68abdb697 490 c1 += c2;
JovanEps 0:82d68abdb697 491 c1 += c2;
JovanEps 0:82d68abdb697 492 c1 += c2;
JovanEps 0:82d68abdb697 493 c1 += c2;
JovanEps 0:82d68abdb697 494 c1 += c2;
JovanEps 0:82d68abdb697 495 c1 += c2;
JovanEps 0:82d68abdb697 496 }
JovanEps 0:82d68abdb697 497 }
JovanEps 0:82d68abdb697 498 n = timer.read_ms();
JovanEps 0:82d68abdb697 499 d = ((float)n - (float)m) / ((float)i * (float)j);
JovanEps 0:82d68abdb697 500 d *= 1000.0;
JovanEps 0:82d68abdb697 501 d -= overhead;
JovanEps 0:82d68abdb697 502 d /= 20.0;
JovanEps 0:82d68abdb697 503 pc.printf("%.3f us \n\r",d);
JovanEps 0:82d68abdb697 504 pc.printf("\n\r");
JovanEps 0:82d68abdb697 505
JovanEps 0:82d68abdb697 506
JovanEps 0:82d68abdb697 507 //#ifndef noTitle
JovanEps 0:82d68abdb697 508 pc.printf("\n\r multiply integer : ");
JovanEps 0:82d68abdb697 509 //#endif
JovanEps 0:82d68abdb697 510 volatile int x,y;
JovanEps 0:82d68abdb697 511 x = 2;
JovanEps 0:82d68abdb697 512 y = 3;
JovanEps 0:82d68abdb697 513 wait_ms(70); // Allow the Serial text to be transmitted
JovanEps 0:82d68abdb697 514 m = timer.read_ms();
JovanEps 0:82d68abdb697 515 for (i=0; i<10; i++) {
JovanEps 0:82d68abdb697 516 for (j=0; j<10000; j++) {
JovanEps 0:82d68abdb697 517 x *= y;
JovanEps 0:82d68abdb697 518 x *= y;
JovanEps 0:82d68abdb697 519 x *= y;
JovanEps 0:82d68abdb697 520 x *= y;
JovanEps 0:82d68abdb697 521 x *= y;
JovanEps 0:82d68abdb697 522 x *= y;
JovanEps 0:82d68abdb697 523 x *= y;
JovanEps 0:82d68abdb697 524 x *= y;
JovanEps 0:82d68abdb697 525 x *= y;
JovanEps 0:82d68abdb697 526 x *= y;
JovanEps 0:82d68abdb697 527 x *= y;
JovanEps 0:82d68abdb697 528 x *= y;
JovanEps 0:82d68abdb697 529 x *= y;
JovanEps 0:82d68abdb697 530 x *= y;
JovanEps 0:82d68abdb697 531 x *= y;
JovanEps 0:82d68abdb697 532 x *= y;
JovanEps 0:82d68abdb697 533 x *= y;
JovanEps 0:82d68abdb697 534 x *= y;
JovanEps 0:82d68abdb697 535 x *= y;
JovanEps 0:82d68abdb697 536 x *= y;
JovanEps 0:82d68abdb697 537 }
JovanEps 0:82d68abdb697 538 }
JovanEps 0:82d68abdb697 539 n = timer.read_ms();
JovanEps 0:82d68abdb697 540 d = ((float)n - (float)m) / ((float)i * (float)j);
JovanEps 0:82d68abdb697 541 d *= 1000.0;
JovanEps 0:82d68abdb697 542 d -= overhead;
JovanEps 0:82d68abdb697 543 d /= 20.0;
JovanEps 0:82d68abdb697 544 pc.printf("%.3f us \n\r",d);
JovanEps 0:82d68abdb697 545 pc.printf("\n\r");
JovanEps 0:82d68abdb697 546
JovanEps 0:82d68abdb697 547
JovanEps 0:82d68abdb697 548 //#ifndef noTitle
JovanEps 0:82d68abdb697 549 pc.printf("\n\r divide integer : ");
JovanEps 0:82d68abdb697 550 //#endif
JovanEps 0:82d68abdb697 551 x = 31415;
JovanEps 0:82d68abdb697 552 y = 3;
JovanEps 0:82d68abdb697 553 wait_ms(70); // Allow the Serial text to be transmitted
JovanEps 0:82d68abdb697 554 m = timer.read_ms();
JovanEps 0:82d68abdb697 555 for (i=0; i<1; i++) {
JovanEps 0:82d68abdb697 556 for (j=0; j<10000; j++) {
JovanEps 0:82d68abdb697 557 x /= y;
JovanEps 0:82d68abdb697 558 x /= y;
JovanEps 0:82d68abdb697 559 x /= y;
JovanEps 0:82d68abdb697 560 x /= y;
JovanEps 0:82d68abdb697 561 x /= y;
JovanEps 0:82d68abdb697 562 x /= y;
JovanEps 0:82d68abdb697 563 x /= y;
JovanEps 0:82d68abdb697 564 x /= y;
JovanEps 0:82d68abdb697 565 x /= y;
JovanEps 0:82d68abdb697 566 x /= y;
JovanEps 0:82d68abdb697 567 x /= y;
JovanEps 0:82d68abdb697 568 x /= y;
JovanEps 0:82d68abdb697 569 x /= y;
JovanEps 0:82d68abdb697 570 x /= y;
JovanEps 0:82d68abdb697 571 x /= y;
JovanEps 0:82d68abdb697 572 x /= y;
JovanEps 0:82d68abdb697 573 x /= y;
JovanEps 0:82d68abdb697 574 x /= y;
JovanEps 0:82d68abdb697 575 x /= y;
JovanEps 0:82d68abdb697 576 x /= y;
JovanEps 0:82d68abdb697 577 }
JovanEps 0:82d68abdb697 578 }
JovanEps 0:82d68abdb697 579 n = timer.read_ms();
JovanEps 0:82d68abdb697 580 d = ((float)n - (float)m) / ((float)i * (float)j);
JovanEps 0:82d68abdb697 581 d *= 1000.0;
JovanEps 0:82d68abdb697 582 d -= overhead;
JovanEps 0:82d68abdb697 583 d /= 20.0;
JovanEps 0:82d68abdb697 584 pc.printf("%.3f us \n\r",d);
JovanEps 0:82d68abdb697 585 pc.printf("\n\r");
JovanEps 0:82d68abdb697 586
JovanEps 0:82d68abdb697 587
JovanEps 0:82d68abdb697 588 //#ifndef noTitle
JovanEps 0:82d68abdb697 589 pc.printf("\n\r add integer : ");
JovanEps 0:82d68abdb697 590 //#endif
JovanEps 0:82d68abdb697 591 x = 1;
JovanEps 0:82d68abdb697 592 y = 3;
JovanEps 0:82d68abdb697 593 wait_ms(70); // Allow the Serial text to be transmitted
JovanEps 0:82d68abdb697 594 m = timer.read_ms();
JovanEps 0:82d68abdb697 595 for (i=0; i<10; i++) {
JovanEps 0:82d68abdb697 596 for (j=0; j<10000; j++) {
JovanEps 0:82d68abdb697 597 x += y;
JovanEps 0:82d68abdb697 598 x += y;
JovanEps 0:82d68abdb697 599 x += y;
JovanEps 0:82d68abdb697 600 x += y;
JovanEps 0:82d68abdb697 601 x += y;
JovanEps 0:82d68abdb697 602 x += y;
JovanEps 0:82d68abdb697 603 x += y;
JovanEps 0:82d68abdb697 604 x += y;
JovanEps 0:82d68abdb697 605 x += y;
JovanEps 0:82d68abdb697 606 x += y;
JovanEps 0:82d68abdb697 607 x += y;
JovanEps 0:82d68abdb697 608 x += y;
JovanEps 0:82d68abdb697 609 x += y;
JovanEps 0:82d68abdb697 610 x += y;
JovanEps 0:82d68abdb697 611 x += y;
JovanEps 0:82d68abdb697 612 x += y;
JovanEps 0:82d68abdb697 613 x += y;
JovanEps 0:82d68abdb697 614 x += y;
JovanEps 0:82d68abdb697 615 x += y;
JovanEps 0:82d68abdb697 616 x += y;
JovanEps 0:82d68abdb697 617 }
JovanEps 0:82d68abdb697 618 }
JovanEps 0:82d68abdb697 619 n = timer.read_ms();
JovanEps 0:82d68abdb697 620 d = ((float)n - (float)m) / ((float)i * (float)j);
JovanEps 0:82d68abdb697 621 d *= 1000.0;
JovanEps 0:82d68abdb697 622 d -= overhead;
JovanEps 0:82d68abdb697 623 d /= 20.0;
JovanEps 0:82d68abdb697 624 pc.printf("%.3f us \n\r",d);
JovanEps 0:82d68abdb697 625 pc.printf("\n\r");
JovanEps 0:82d68abdb697 626
JovanEps 0:82d68abdb697 627
JovanEps 0:82d68abdb697 628 //#ifndef noTitle
JovanEps 0:82d68abdb697 629 pc.printf("\n\r multiply long : ");
JovanEps 0:82d68abdb697 630 //#endif
JovanEps 0:82d68abdb697 631 l1 = 2;
JovanEps 0:82d68abdb697 632 l2 = 3;
JovanEps 0:82d68abdb697 633 wait_ms(70); // Allow the Serial text to be transmitted
JovanEps 0:82d68abdb697 634 m = timer.read_ms();
JovanEps 0:82d68abdb697 635 for (i=0; i<2; i++) {
JovanEps 0:82d68abdb697 636 for (j=0; j<10000; j++) {
JovanEps 0:82d68abdb697 637 l1 *= l2;
JovanEps 0:82d68abdb697 638 l1 *= l2;
JovanEps 0:82d68abdb697 639 l1 *= l2;
JovanEps 0:82d68abdb697 640 l1 *= l2;
JovanEps 0:82d68abdb697 641 l1 *= l2;
JovanEps 0:82d68abdb697 642 l1 *= l2;
JovanEps 0:82d68abdb697 643 l1 *= l2;
JovanEps 0:82d68abdb697 644 l1 *= l2;
JovanEps 0:82d68abdb697 645 l1 *= l2;
JovanEps 0:82d68abdb697 646 l1 *= l2;
JovanEps 0:82d68abdb697 647 l1 *= l2;
JovanEps 0:82d68abdb697 648 l1 *= l2;
JovanEps 0:82d68abdb697 649 l1 *= l2;
JovanEps 0:82d68abdb697 650 l1 *= l2;
JovanEps 0:82d68abdb697 651 l1 *= l2;
JovanEps 0:82d68abdb697 652 l1 *= l2;
JovanEps 0:82d68abdb697 653 l1 *= l2;
JovanEps 0:82d68abdb697 654 l1 *= l2;
JovanEps 0:82d68abdb697 655 l1 *= l2;
JovanEps 0:82d68abdb697 656 l1 *= l2;
JovanEps 0:82d68abdb697 657 }
JovanEps 0:82d68abdb697 658 }
JovanEps 0:82d68abdb697 659 n = timer.read_ms();
JovanEps 0:82d68abdb697 660 d = ((float)n - (float)m) / ((float)i * (float)j);
JovanEps 0:82d68abdb697 661 d *= 1000.0;
JovanEps 0:82d68abdb697 662 d -= overhead;
JovanEps 0:82d68abdb697 663 d /= 20.0;
JovanEps 0:82d68abdb697 664 pc.printf("%.3f us \n\r",d);
JovanEps 0:82d68abdb697 665 pc.printf("\n\r");
JovanEps 0:82d68abdb697 666
JovanEps 0:82d68abdb697 667
JovanEps 0:82d68abdb697 668 //#ifndef noTitle
JovanEps 0:82d68abdb697 669 pc.printf("\n\r divide long : ");
JovanEps 0:82d68abdb697 670 //#endif
JovanEps 0:82d68abdb697 671 l1 = 2000000000L;
JovanEps 0:82d68abdb697 672 l2 = 3;
JovanEps 0:82d68abdb697 673 wait_ms(70); // Allow the Serial text to be transmitted
JovanEps 0:82d68abdb697 674 m = timer.read_ms();
JovanEps 0:82d68abdb697 675 for (i=0; i<1; i++) {
JovanEps 0:82d68abdb697 676 for (j=0; j<2000; j++) {
JovanEps 0:82d68abdb697 677 l1 /= l2;
JovanEps 0:82d68abdb697 678 l1 /= l2;
JovanEps 0:82d68abdb697 679 l1 /= l2;
JovanEps 0:82d68abdb697 680 l1 /= l2;
JovanEps 0:82d68abdb697 681 l1 /= l2;
JovanEps 0:82d68abdb697 682 l1 /= l2;
JovanEps 0:82d68abdb697 683 l1 /= l2;
JovanEps 0:82d68abdb697 684 l1 /= l2;
JovanEps 0:82d68abdb697 685 l1 /= l2;
JovanEps 0:82d68abdb697 686 l1 /= l2;
JovanEps 0:82d68abdb697 687 l1 /= l2;
JovanEps 0:82d68abdb697 688 l1 /= l2;
JovanEps 0:82d68abdb697 689 l1 /= l2;
JovanEps 0:82d68abdb697 690 l1 /= l2;
JovanEps 0:82d68abdb697 691 l1 /= l2;
JovanEps 0:82d68abdb697 692 l1 /= l2;
JovanEps 0:82d68abdb697 693 l1 /= l2;
JovanEps 0:82d68abdb697 694 l1 /= l2;
JovanEps 0:82d68abdb697 695 l1 /= l2;
JovanEps 0:82d68abdb697 696 l1 /= l2;
JovanEps 0:82d68abdb697 697 }
JovanEps 0:82d68abdb697 698 }
JovanEps 0:82d68abdb697 699 n = timer.read_ms();
JovanEps 0:82d68abdb697 700 d = ((float)n - (float)m) / ((float)i * (float)j);
JovanEps 0:82d68abdb697 701 d *= 1000.0;
JovanEps 0:82d68abdb697 702 d -= overhead;
JovanEps 0:82d68abdb697 703 d /= 20.0;
JovanEps 0:82d68abdb697 704 pc.printf("%.3f us \n\r",d);
JovanEps 0:82d68abdb697 705 pc.printf("\n\r");
JovanEps 0:82d68abdb697 706
JovanEps 0:82d68abdb697 707
JovanEps 0:82d68abdb697 708 //#ifndef noTitle
JovanEps 0:82d68abdb697 709 pc.printf("\n\r add long : ");
JovanEps 0:82d68abdb697 710 //#endif
JovanEps 0:82d68abdb697 711 l1 = 500000000L;
JovanEps 0:82d68abdb697 712 l2 = 123;
JovanEps 0:82d68abdb697 713 wait_ms(70); // Allow the Serial text to be transmitted
JovanEps 0:82d68abdb697 714 m = timer.read_ms();
JovanEps 0:82d68abdb697 715 for (i=0; i<4; i++) {
JovanEps 0:82d68abdb697 716 for (j=0; j<10000; j++) {
JovanEps 0:82d68abdb697 717 l1 += l2;
JovanEps 0:82d68abdb697 718 l1 += l2;
JovanEps 0:82d68abdb697 719 l1 += l2;
JovanEps 0:82d68abdb697 720 l1 += l2;
JovanEps 0:82d68abdb697 721 l1 += l2;
JovanEps 0:82d68abdb697 722 l1 += l2;
JovanEps 0:82d68abdb697 723 l1 += l2;
JovanEps 0:82d68abdb697 724 l1 += l2;
JovanEps 0:82d68abdb697 725 l1 += l2;
JovanEps 0:82d68abdb697 726 l1 += l2;
JovanEps 0:82d68abdb697 727 l1 += l2;
JovanEps 0:82d68abdb697 728 l1 += l2;
JovanEps 0:82d68abdb697 729 l1 += l2;
JovanEps 0:82d68abdb697 730 l1 += l2;
JovanEps 0:82d68abdb697 731 l1 += l2;
JovanEps 0:82d68abdb697 732 l1 += l2;
JovanEps 0:82d68abdb697 733 l1 += l2;
JovanEps 0:82d68abdb697 734 l1 += l2;
JovanEps 0:82d68abdb697 735 l1 += l2;
JovanEps 0:82d68abdb697 736 l1 += l2;
JovanEps 0:82d68abdb697 737 }
JovanEps 0:82d68abdb697 738 }
JovanEps 0:82d68abdb697 739 n = timer.read_ms();
JovanEps 0:82d68abdb697 740 d = ((float)n - (float)m) / ((float)i * (float)j);
JovanEps 0:82d68abdb697 741 d *= 1000.0;
JovanEps 0:82d68abdb697 742 d -= overhead;
JovanEps 0:82d68abdb697 743 d /= 20.0;
JovanEps 0:82d68abdb697 744 pc.printf("%.3f us \n\r",d);
JovanEps 0:82d68abdb697 745 pc.printf("\n\r");
JovanEps 0:82d68abdb697 746
JovanEps 0:82d68abdb697 747
JovanEps 0:82d68abdb697 748 //#ifndef noTitle
JovanEps 0:82d68abdb697 749 pc.printf("\n\r multiply float : ");
JovanEps 0:82d68abdb697 750 //#endif
JovanEps 0:82d68abdb697 751 f1 = 3.24;
JovanEps 0:82d68abdb697 752 f2 = 1.25;
JovanEps 0:82d68abdb697 753 wait_ms(70); // Allow the Serial text to be transmitted
JovanEps 0:82d68abdb697 754 m = timer.read_ms();
JovanEps 0:82d68abdb697 755 for (i=0; i<2; i++) {
JovanEps 0:82d68abdb697 756 for (j=0; j<10000; j++) {
JovanEps 0:82d68abdb697 757 f1 *= f2;
JovanEps 0:82d68abdb697 758 f1 *= f2;
JovanEps 0:82d68abdb697 759 f1 *= f2;
JovanEps 0:82d68abdb697 760 f1 *= f2;
JovanEps 0:82d68abdb697 761 f1 *= f2;
JovanEps 0:82d68abdb697 762 f1 *= f2;
JovanEps 0:82d68abdb697 763 f1 *= f2;
JovanEps 0:82d68abdb697 764 f1 *= f2;
JovanEps 0:82d68abdb697 765 f1 *= f2;
JovanEps 0:82d68abdb697 766 f1 *= f2;
JovanEps 0:82d68abdb697 767 f1 *= f2;
JovanEps 0:82d68abdb697 768 f1 *= f2;
JovanEps 0:82d68abdb697 769 f1 *= f2;
JovanEps 0:82d68abdb697 770 f1 *= f2;
JovanEps 0:82d68abdb697 771 f1 *= f2;
JovanEps 0:82d68abdb697 772 f1 *= f2;
JovanEps 0:82d68abdb697 773 f1 *= f2;
JovanEps 0:82d68abdb697 774 f1 *= f2;
JovanEps 0:82d68abdb697 775 f1 *= f2;
JovanEps 0:82d68abdb697 776 f1 *= f2;
JovanEps 0:82d68abdb697 777 }
JovanEps 0:82d68abdb697 778 }
JovanEps 0:82d68abdb697 779 n = timer.read_ms();
JovanEps 0:82d68abdb697 780 d = ((float)n - (float)m) / ((float)i * (float)j);
JovanEps 0:82d68abdb697 781 d *= 1000.0;
JovanEps 0:82d68abdb697 782 d -= overhead;
JovanEps 0:82d68abdb697 783 d /= 20.0;
JovanEps 0:82d68abdb697 784 pc.printf("%.3f us \n\r",d);
JovanEps 0:82d68abdb697 785 pc.printf("\n\r");
JovanEps 0:82d68abdb697 786
JovanEps 0:82d68abdb697 787
JovanEps 0:82d68abdb697 788 //#ifndef noTitle
JovanEps 0:82d68abdb697 789 pc.printf("\n\r divide float : ");
JovanEps 0:82d68abdb697 790 //#endif
JovanEps 0:82d68abdb697 791 f1 = 312645.24;
JovanEps 0:82d68abdb697 792 f2 = 1.21;
JovanEps 0:82d68abdb697 793 wait_ms(70); // Allow the Serial text to be transmitted
JovanEps 0:82d68abdb697 794 m = timer.read_ms();
JovanEps 0:82d68abdb697 795 for (i=0; i<1; i++) {
JovanEps 0:82d68abdb697 796 for (j=0; j<2000; j++) {
JovanEps 0:82d68abdb697 797 f1 /= f2;
JovanEps 0:82d68abdb697 798 f1 /= f2;
JovanEps 0:82d68abdb697 799 f1 /= f2;
JovanEps 0:82d68abdb697 800 f1 /= f2;
JovanEps 0:82d68abdb697 801 f1 /= f2;
JovanEps 0:82d68abdb697 802 f1 /= f2;
JovanEps 0:82d68abdb697 803 f1 /= f2;
JovanEps 0:82d68abdb697 804 f1 /= f2;
JovanEps 0:82d68abdb697 805 f1 /= f2;
JovanEps 0:82d68abdb697 806 f1 /= f2;
JovanEps 0:82d68abdb697 807 f1 /= f2;
JovanEps 0:82d68abdb697 808 f1 /= f2;
JovanEps 0:82d68abdb697 809 f1 /= f2;
JovanEps 0:82d68abdb697 810 f1 /= f2;
JovanEps 0:82d68abdb697 811 f1 /= f2;
JovanEps 0:82d68abdb697 812 f1 /= f2;
JovanEps 0:82d68abdb697 813 f1 /= f2;
JovanEps 0:82d68abdb697 814 f1 /= f2;
JovanEps 0:82d68abdb697 815 f1 /= f2;
JovanEps 0:82d68abdb697 816 f1 /= f2;
JovanEps 0:82d68abdb697 817 }
JovanEps 0:82d68abdb697 818 }
JovanEps 0:82d68abdb697 819 n = timer.read_ms();
JovanEps 0:82d68abdb697 820 d = ((float)n - (float)m) / ((float)i * (float)j);
JovanEps 0:82d68abdb697 821 d *= 1000.0;
JovanEps 0:82d68abdb697 822 d -= overhead;
JovanEps 0:82d68abdb697 823 d /= 20.0;
JovanEps 0:82d68abdb697 824 pc.printf("%.3f us \n\r",d);
JovanEps 0:82d68abdb697 825 pc.printf("\n\r");
JovanEps 0:82d68abdb697 826
JovanEps 0:82d68abdb697 827
JovanEps 0:82d68abdb697 828 //#ifndef noTitle
JovanEps 0:82d68abdb697 829 pc.printf("\n\r add float : ");
JovanEps 0:82d68abdb697 830 //#endif
JovanEps 0:82d68abdb697 831 f1 = 9876.54;
JovanEps 0:82d68abdb697 832 f2 = 1.23;
JovanEps 0:82d68abdb697 833 wait_ms(70); // Allow the Serial text to be transmitted
JovanEps 0:82d68abdb697 834 m = timer.read_ms();
JovanEps 0:82d68abdb697 835 for (i=0; i<1; i++) {
JovanEps 0:82d68abdb697 836 for (j=0; j<10000; j++) {
JovanEps 0:82d68abdb697 837 f1 += f2;
JovanEps 0:82d68abdb697 838 f1 += f2;
JovanEps 0:82d68abdb697 839 f1 += f2;
JovanEps 0:82d68abdb697 840 f1 += f2;
JovanEps 0:82d68abdb697 841 f1 += f2;
JovanEps 0:82d68abdb697 842 f1 += f2;
JovanEps 0:82d68abdb697 843 f1 += f2;
JovanEps 0:82d68abdb697 844 f1 += f2;
JovanEps 0:82d68abdb697 845 f1 += f2;
JovanEps 0:82d68abdb697 846 f1 += f2;
JovanEps 0:82d68abdb697 847 f1 += f2;
JovanEps 0:82d68abdb697 848 f1 += f2;
JovanEps 0:82d68abdb697 849 f1 += f2;
JovanEps 0:82d68abdb697 850 f1 += f2;
JovanEps 0:82d68abdb697 851 f1 += f2;
JovanEps 0:82d68abdb697 852 f1 += f2;
JovanEps 0:82d68abdb697 853 f1 += f2;
JovanEps 0:82d68abdb697 854 f1 += f2;
JovanEps 0:82d68abdb697 855 f1 += f2;
JovanEps 0:82d68abdb697 856 f1 += f2;
JovanEps 0:82d68abdb697 857 }
JovanEps 0:82d68abdb697 858 }
JovanEps 0:82d68abdb697 859 n = timer.read_ms();
JovanEps 0:82d68abdb697 860 d = ((float)n - (float)m) / ((float)i * (float)j);
JovanEps 0:82d68abdb697 861 d *= 1000.0;
JovanEps 0:82d68abdb697 862 d -= overhead;
JovanEps 0:82d68abdb697 863 d /= 20.0;
JovanEps 0:82d68abdb697 864 pc.printf("%.3f us \n\r",d);
JovanEps 0:82d68abdb697 865 pc.printf("\n\r");
JovanEps 0:82d68abdb697 866
JovanEps 0:82d68abdb697 867
JovanEps 0:82d68abdb697 868 /*
JovanEps 0:82d68abdb697 869 //#ifndef noTitle
JovanEps 0:82d68abdb697 870 pc.printf(" itoa() : ");
JovanEps 0:82d68abdb697 871 //#endif
JovanEps 0:82d68abdb697 872 wait_ms(70); // Allow the Serial text to be transmitted
JovanEps 0:82d68abdb697 873 m = timer.read_ms();
JovanEps 0:82d68abdb697 874 for (i=0; i<1; i++) {
JovanEps 0:82d68abdb697 875 for (j=0; j<10000; j++) {
JovanEps 0:82d68abdb697 876 itoa(i,buffer,10);
JovanEps 0:82d68abdb697 877 itoa(i,buffer,10);
JovanEps 0:82d68abdb697 878 itoa(i,buffer,10);
JovanEps 0:82d68abdb697 879 itoa(i,buffer,10);
JovanEps 0:82d68abdb697 880 itoa(i,buffer,10);
JovanEps 0:82d68abdb697 881 itoa(i,buffer,10);
JovanEps 0:82d68abdb697 882 itoa(i,buffer,10);
JovanEps 0:82d68abdb697 883 itoa(i,buffer,10);
JovanEps 0:82d68abdb697 884 itoa(i,buffer,10);
JovanEps 0:82d68abdb697 885 itoa(i,buffer,10);
JovanEps 0:82d68abdb697 886 itoa(i,buffer,10);
JovanEps 0:82d68abdb697 887 itoa(i,buffer,10);
JovanEps 0:82d68abdb697 888 itoa(i,buffer,10);
JovanEps 0:82d68abdb697 889 itoa(i,buffer,10);
JovanEps 0:82d68abdb697 890 itoa(i,buffer,10);
JovanEps 0:82d68abdb697 891 itoa(i,buffer,10);
JovanEps 0:82d68abdb697 892 itoa(i,buffer,10);
JovanEps 0:82d68abdb697 893 itoa(i,buffer,10);
JovanEps 0:82d68abdb697 894 itoa(i,buffer,10);
JovanEps 0:82d68abdb697 895 itoa(i,buffer,10);
JovanEps 0:82d68abdb697 896 }
JovanEps 0:82d68abdb697 897 }
JovanEps 0:82d68abdb697 898 n = timer.read_ms();
JovanEps 0:82d68abdb697 899 d = ((float)n - (float)m) / ((float)i * (float)j);
JovanEps 0:82d68abdb697 900 d *= 1000.0;
JovanEps 0:82d68abdb697 901 d -= overhead;
JovanEps 0:82d68abdb697 902 d /= 20.0;
JovanEps 0:82d68abdb697 903 pc.printf("%.3f",d);
JovanEps 0:82d68abdb697 904 pc.printf(" us");
JovanEps 0:82d68abdb697 905 */
JovanEps 0:82d68abdb697 906
JovanEps 0:82d68abdb697 907 /*
JovanEps 0:82d68abdb697 908 #ifndef noLtoaTest
JovanEps 0:82d68abdb697 909 long int l = 314159L;
JovanEps 0:82d68abdb697 910 //#ifndef noTitle
JovanEps 0:82d68abdb697 911 pc.printf(" ltoa() : ");
JovanEps 0:82d68abdb697 912 //#endif
JovanEps 0:82d68abdb697 913 wait_ms(70); // Allow the Serial text to be transmitted
JovanEps 0:82d68abdb697 914 m = timer.read_ms();
JovanEps 0:82d68abdb697 915 for (i=0; i<1; i++) {
JovanEps 0:82d68abdb697 916 for (j=0; j<500; j++) {
JovanEps 0:82d68abdb697 917 ltoa(l,buffer,10);
JovanEps 0:82d68abdb697 918 ltoa(l,buffer,10);
JovanEps 0:82d68abdb697 919 ltoa(l,buffer,10);
JovanEps 0:82d68abdb697 920 ltoa(l,buffer,10);
JovanEps 0:82d68abdb697 921 ltoa(l,buffer,10);
JovanEps 0:82d68abdb697 922 ltoa(l,buffer,10);
JovanEps 0:82d68abdb697 923 ltoa(l,buffer,10);
JovanEps 0:82d68abdb697 924 ltoa(l,buffer,10);
JovanEps 0:82d68abdb697 925 ltoa(l,buffer,10);
JovanEps 0:82d68abdb697 926 ltoa(l,buffer,10);
JovanEps 0:82d68abdb697 927 ltoa(l,buffer,10);
JovanEps 0:82d68abdb697 928 ltoa(l,buffer,10);
JovanEps 0:82d68abdb697 929 ltoa(l,buffer,10);
JovanEps 0:82d68abdb697 930 ltoa(l,buffer,10);
JovanEps 0:82d68abdb697 931 ltoa(l,buffer,10);
JovanEps 0:82d68abdb697 932 ltoa(l,buffer,10);
JovanEps 0:82d68abdb697 933 ltoa(l,buffer,10);
JovanEps 0:82d68abdb697 934 ltoa(l,buffer,10);
JovanEps 0:82d68abdb697 935 ltoa(l,buffer,10);
JovanEps 0:82d68abdb697 936 ltoa(l,buffer,10);
JovanEps 0:82d68abdb697 937 }
JovanEps 0:82d68abdb697 938 }
JovanEps 0:82d68abdb697 939 n = timer.read_ms();
JovanEps 0:82d68abdb697 940 d = ((float)n - (float)m) / ((float)i * (float)j);
JovanEps 0:82d68abdb697 941 d *= 1000.0;
JovanEps 0:82d68abdb697 942 d -= overhead;
JovanEps 0:82d68abdb697 943 d /= 20.0;
JovanEps 0:82d68abdb697 944 pc.printf("%.3f",d);
JovanEps 0:82d68abdb697 945 pc.printf(" us");
JovanEps 0:82d68abdb697 946 //#endif
JovanEps 0:82d68abdb697 947 */
JovanEps 0:82d68abdb697 948
JovanEps 0:82d68abdb697 949 /*
JovanEps 0:82d68abdb697 950 #ifndef noDtostrfTest
JovanEps 0:82d68abdb697 951 //#ifndef noTitle
JovanEps 0:82d68abdb697 952 pc.printf(" dtostrf() : ");
JovanEps 0:82d68abdb697 953 //#endif
JovanEps 0:82d68abdb697 954 float d3;
JovanEps 0:82d68abdb697 955 d3 = 3.14159265;
JovanEps 0:82d68abdb697 956 wait_ms(70); // Allow the Serial text to be transmitted
JovanEps 0:82d68abdb697 957 m = timer.read_ms();
JovanEps 0:82d68abdb697 958 for (i=0; i<2; i++) {
JovanEps 0:82d68abdb697 959 for (j=0; j<1000; j++) {
JovanEps 0:82d68abdb697 960 dtostrf (d3, 6, 2, buffer);
JovanEps 0:82d68abdb697 961 dtostrf (d3, 6, 2, buffer);
JovanEps 0:82d68abdb697 962 dtostrf (d3, 6, 2, buffer);
JovanEps 0:82d68abdb697 963 dtostrf (d3, 6, 2, buffer);
JovanEps 0:82d68abdb697 964 dtostrf (d3, 6, 2, buffer);
JovanEps 0:82d68abdb697 965 dtostrf (d3, 6, 2, buffer);
JovanEps 0:82d68abdb697 966 dtostrf (d3, 6, 2, buffer);
JovanEps 0:82d68abdb697 967 dtostrf (d3, 6, 2, buffer);
JovanEps 0:82d68abdb697 968 dtostrf (d3, 6, 2, buffer);
JovanEps 0:82d68abdb697 969 dtostrf (d3, 6, 2, buffer);
JovanEps 0:82d68abdb697 970 dtostrf (d3, 6, 2, buffer);
JovanEps 0:82d68abdb697 971 dtostrf (d3, 6, 2, buffer);
JovanEps 0:82d68abdb697 972 dtostrf (d3, 6, 2, buffer);
JovanEps 0:82d68abdb697 973 dtostrf (d3, 6, 2, buffer);
JovanEps 0:82d68abdb697 974 dtostrf (d3, 6, 2, buffer);
JovanEps 0:82d68abdb697 975 dtostrf (d3, 6, 2, buffer);
JovanEps 0:82d68abdb697 976 dtostrf (d3, 6, 2, buffer);
JovanEps 0:82d68abdb697 977 dtostrf (d3, 6, 2, buffer);
JovanEps 0:82d68abdb697 978 dtostrf (d3, 6, 2, buffer);
JovanEps 0:82d68abdb697 979 dtostrf (d3, 6, 2, buffer);
JovanEps 0:82d68abdb697 980 }
JovanEps 0:82d68abdb697 981 }
JovanEps 0:82d68abdb697 982 n = timer.read_ms();
JovanEps 0:82d68abdb697 983 d = ((float)n - (float)m) / ((float)i * (float)j);
JovanEps 0:82d68abdb697 984 d *= 1000.0;
JovanEps 0:82d68abdb697 985 d -= overhead;
JovanEps 0:82d68abdb697 986 d /= 20.0;
JovanEps 0:82d68abdb697 987 pc.printf("%.3f",d);
JovanEps 0:82d68abdb697 988 pc.printf(" us");
JovanEps 0:82d68abdb697 989 #endif
JovanEps 0:82d68abdb697 990 */
JovanEps 0:82d68abdb697 991
JovanEps 0:82d68abdb697 992 //**************************
JovanEps 0:82d68abdb697 993 //**** Randomize
JovanEps 0:82d68abdb697 994 //**************************
JovanEps 0:82d68abdb697 995 STM32F4_RNG rnd;
JovanEps 0:82d68abdb697 996 unsigned long num;
JovanEps 0:82d68abdb697 997 //#ifndef noTitle
JovanEps 0:82d68abdb697 998 pc.printf("\n\r random() : ");
JovanEps 0:82d68abdb697 999 //#endif
JovanEps 0:82d68abdb697 1000 wait_ms(70); // Allow the Serial text to be transmitted
JovanEps 0:82d68abdb697 1001 m = timer.read_ms();
JovanEps 0:82d68abdb697 1002 for (i=0; i<2; i++) {
JovanEps 0:82d68abdb697 1003 for (j=0; j<1000; j++) {
JovanEps 0:82d68abdb697 1004 //r=random(-2147483647,2147483647);
JovanEps 0:82d68abdb697 1005 num = rnd.Get();
JovanEps 0:82d68abdb697 1006 num = rnd.Get();
JovanEps 0:82d68abdb697 1007 num = rnd.Get();
JovanEps 0:82d68abdb697 1008 num = rnd.Get();
JovanEps 0:82d68abdb697 1009 num = rnd.Get();
JovanEps 0:82d68abdb697 1010 num = rnd.Get();
JovanEps 0:82d68abdb697 1011 num = rnd.Get();
JovanEps 0:82d68abdb697 1012 num = rnd.Get();
JovanEps 0:82d68abdb697 1013 num = rnd.Get();
JovanEps 0:82d68abdb697 1014 num = rnd.Get();
JovanEps 0:82d68abdb697 1015 num = rnd.Get();
JovanEps 0:82d68abdb697 1016 num = rnd.Get();
JovanEps 0:82d68abdb697 1017 num = rnd.Get();
JovanEps 0:82d68abdb697 1018 num = rnd.Get();
JovanEps 0:82d68abdb697 1019 num = rnd.Get();
JovanEps 0:82d68abdb697 1020 num = rnd.Get();
JovanEps 0:82d68abdb697 1021 num = rnd.Get();
JovanEps 0:82d68abdb697 1022 num = rnd.Get();
JovanEps 0:82d68abdb697 1023 num = rnd.Get();
JovanEps 0:82d68abdb697 1024 num = rnd.Get();
JovanEps 0:82d68abdb697 1025
JovanEps 0:82d68abdb697 1026 }
JovanEps 0:82d68abdb697 1027 }
JovanEps 0:82d68abdb697 1028 n = timer.read_ms();
JovanEps 0:82d68abdb697 1029 d = ((float)n - (float)m) / ((float)i * (float)j);
JovanEps 0:82d68abdb697 1030 d *= 1000.0;
JovanEps 0:82d68abdb697 1031 d -= overhead;
JovanEps 0:82d68abdb697 1032 d /= 20.0;
JovanEps 0:82d68abdb697 1033 pc.printf("%.3f us \n\r",d);
JovanEps 0:82d68abdb697 1034 pc.printf("\n\r");
JovanEps 0:82d68abdb697 1035
JovanEps 0:82d68abdb697 1036 //#ifndef noBvTest
JovanEps 0:82d68abdb697 1037 //#ifndef noTitle
JovanEps 0:82d68abdb697 1038 pc.printf("\n\r y |= (1<<x) : ");
JovanEps 0:82d68abdb697 1039 //#endif
JovanEps 0:82d68abdb697 1040 wait_ms(70); // Allow the Serial text to be transmitted
JovanEps 0:82d68abdb697 1041 m = timer.read_ms();
JovanEps 0:82d68abdb697 1042 for (i=0; i<20; i++) {
JovanEps 0:82d68abdb697 1043 for (j=0; j<10000; j++) {
JovanEps 0:82d68abdb697 1044 //v |= _BV(12);
JovanEps 0:82d68abdb697 1045 v |= (1 << 12);
JovanEps 0:82d68abdb697 1046 v |= (1 << 12);
JovanEps 0:82d68abdb697 1047 v |= (1 << 12);
JovanEps 0:82d68abdb697 1048 v |= (1 << 12);
JovanEps 0:82d68abdb697 1049 v |= (1 << 12);
JovanEps 0:82d68abdb697 1050 v |= (1 << 12);
JovanEps 0:82d68abdb697 1051 v |= (1 << 12);
JovanEps 0:82d68abdb697 1052 v |= (1 << 12);
JovanEps 0:82d68abdb697 1053 v |= (1 << 12);
JovanEps 0:82d68abdb697 1054 v |= (1 << 12);
JovanEps 0:82d68abdb697 1055 v |= (1 << 12);
JovanEps 0:82d68abdb697 1056 v |= (1 << 12);
JovanEps 0:82d68abdb697 1057 v |= (1 << 12);
JovanEps 0:82d68abdb697 1058 v |= (1 << 12);
JovanEps 0:82d68abdb697 1059 v |= (1 << 12);
JovanEps 0:82d68abdb697 1060 v |= (1 << 12);
JovanEps 0:82d68abdb697 1061 v |= (1 << 12);
JovanEps 0:82d68abdb697 1062 v |= (1 << 12);
JovanEps 0:82d68abdb697 1063 v |= (1 << 12);
JovanEps 0:82d68abdb697 1064 v |= (1 << 12);
JovanEps 0:82d68abdb697 1065
JovanEps 0:82d68abdb697 1066 }
JovanEps 0:82d68abdb697 1067 }
JovanEps 0:82d68abdb697 1068 n = timer.read_ms();
JovanEps 0:82d68abdb697 1069 d = ((float)n - (float)m) / ((float)i * (float)j);
JovanEps 0:82d68abdb697 1070 d *= 1000.0;
JovanEps 0:82d68abdb697 1071 d -= overhead;
JovanEps 0:82d68abdb697 1072 d /= 20.0;
JovanEps 0:82d68abdb697 1073 pc.printf("%.3f us \n\r",d);
JovanEps 0:82d68abdb697 1074 pc.printf("\n\r");
JovanEps 0:82d68abdb697 1075
JovanEps 0:82d68abdb697 1076 //#endif
JovanEps 0:82d68abdb697 1077
JovanEps 0:82d68abdb697 1078 /*
JovanEps 0:82d68abdb697 1079 //#ifndef noTitle
JovanEps 0:82d68abdb697 1080 pc.printf(" bitSet() : ");
JovanEps 0:82d68abdb697 1081 //#endif
JovanEps 0:82d68abdb697 1082 wait_ms(70); // Allow the Serial text to be transmitted
JovanEps 0:82d68abdb697 1083 m = timer.read_ms();
JovanEps 0:82d68abdb697 1084 for (i=0; i<20; i++) {
JovanEps 0:82d68abdb697 1085 for (j=0; j<10000; j++) {
JovanEps 0:82d68abdb697 1086 bitSet (v, 12);
JovanEps 0:82d68abdb697 1087 bitSet (v, 12);
JovanEps 0:82d68abdb697 1088 bitSet (v, 12);
JovanEps 0:82d68abdb697 1089 bitSet (v, 12);
JovanEps 0:82d68abdb697 1090 bitSet (v, 12);
JovanEps 0:82d68abdb697 1091 bitSet (v, 12);
JovanEps 0:82d68abdb697 1092 bitSet (v, 12);
JovanEps 0:82d68abdb697 1093 bitSet (v, 12);
JovanEps 0:82d68abdb697 1094 bitSet (v, 12);
JovanEps 0:82d68abdb697 1095 bitSet (v, 12);
JovanEps 0:82d68abdb697 1096 bitSet (v, 12);
JovanEps 0:82d68abdb697 1097 bitSet (v, 12);
JovanEps 0:82d68abdb697 1098 bitSet (v, 12);
JovanEps 0:82d68abdb697 1099 bitSet (v, 12);
JovanEps 0:82d68abdb697 1100 bitSet (v, 12);
JovanEps 0:82d68abdb697 1101 bitSet (v, 12);
JovanEps 0:82d68abdb697 1102 bitSet (v, 12);
JovanEps 0:82d68abdb697 1103 bitSet (v, 12);
JovanEps 0:82d68abdb697 1104 bitSet (v, 12);
JovanEps 0:82d68abdb697 1105 bitSet (v, 12);
JovanEps 0:82d68abdb697 1106 }
JovanEps 0:82d68abdb697 1107 }
JovanEps 0:82d68abdb697 1108 n = timer.read_ms();
JovanEps 0:82d68abdb697 1109 d = ((float)n - (float)m) / ((float)i * (float)j);
JovanEps 0:82d68abdb697 1110 d *= 1000.0;
JovanEps 0:82d68abdb697 1111 d -= overhead;
JovanEps 0:82d68abdb697 1112 d /= 20.0;
JovanEps 0:82d68abdb697 1113 pc.printf("%.3f",d);
JovanEps 0:82d68abdb697 1114 pc.printf(" us");
JovanEps 0:82d68abdb697 1115 */
JovanEps 0:82d68abdb697 1116
JovanEps 0:82d68abdb697 1117 /*
JovanEps 0:82d68abdb697 1118 //#ifndef noAnalogRef
JovanEps 0:82d68abdb697 1119 //#ifndef noTitle
JovanEps 0:82d68abdb697 1120 pc.printf(" analogReference() : ");
JovanEps 0:82d68abdb697 1121 //#endif
JovanEps 0:82d68abdb697 1122 wait_ms(70); // Allow the Serial text to be transmitted
JovanEps 0:82d68abdb697 1123 m = timer.read_ms();
JovanEps 0:82d68abdb697 1124 for (i=0; i<20; i++) {
JovanEps 0:82d68abdb697 1125 for (j=0; j<10000; j++) {
JovanEps 0:82d68abdb697 1126 analogReference (EXTERNAL);
JovanEps 0:82d68abdb697 1127 analogReference (DEFAULT);
JovanEps 0:82d68abdb697 1128 analogReference (EXTERNAL);
JovanEps 0:82d68abdb697 1129 analogReference (DEFAULT);
JovanEps 0:82d68abdb697 1130 analogReference (EXTERNAL);
JovanEps 0:82d68abdb697 1131 analogReference (DEFAULT);
JovanEps 0:82d68abdb697 1132 analogReference (EXTERNAL);
JovanEps 0:82d68abdb697 1133 analogReference (DEFAULT);
JovanEps 0:82d68abdb697 1134 analogReference (EXTERNAL);
JovanEps 0:82d68abdb697 1135 analogReference (DEFAULT);
JovanEps 0:82d68abdb697 1136 analogReference (EXTERNAL);
JovanEps 0:82d68abdb697 1137 analogReference (DEFAULT);
JovanEps 0:82d68abdb697 1138 analogReference (EXTERNAL);
JovanEps 0:82d68abdb697 1139 analogReference (DEFAULT);
JovanEps 0:82d68abdb697 1140 analogReference (EXTERNAL);
JovanEps 0:82d68abdb697 1141 analogReference (DEFAULT);
JovanEps 0:82d68abdb697 1142 analogReference (EXTERNAL);
JovanEps 0:82d68abdb697 1143 analogReference (DEFAULT);
JovanEps 0:82d68abdb697 1144 analogReference (EXTERNAL);
JovanEps 0:82d68abdb697 1145 analogReference (DEFAULT);
JovanEps 0:82d68abdb697 1146 }
JovanEps 0:82d68abdb697 1147 }
JovanEps 0:82d68abdb697 1148 n = timer.read_ms();
JovanEps 0:82d68abdb697 1149 d = ((float)n - (float)m) / ((float)i * (float)j);
JovanEps 0:82d68abdb697 1150 d *= 1000.0;
JovanEps 0:82d68abdb697 1151 d -= overhead;
JovanEps 0:82d68abdb697 1152 d /= 20.0;
JovanEps 0:82d68abdb697 1153 pc.printf("%.3f",d);
JovanEps 0:82d68abdb697 1154 pc.printf(" us");
JovanEps 0:82d68abdb697 1155 //#endif
JovanEps 0:82d68abdb697 1156 */
JovanEps 0:82d68abdb697 1157
JovanEps 0:82d68abdb697 1158 //#ifndef noAnalog
JovanEps 0:82d68abdb697 1159 //#ifndef noTitle
JovanEps 0:82d68abdb697 1160 pc.printf("\n\r analogRead() : ");
JovanEps 0:82d68abdb697 1161 //#endif
JovanEps 0:82d68abdb697 1162 wait_ms(70); // Allow the Serial text to be transmitted
JovanEps 0:82d68abdb697 1163 m = timer.read_ms();
JovanEps 0:82d68abdb697 1164 for (i=0; i<1; i++) {
JovanEps 0:82d68abdb697 1165 for (j=0; j<1000; j++) {
JovanEps 0:82d68abdb697 1166 meas = analog_value.read();
JovanEps 0:82d68abdb697 1167 meas = analog_value.read();
JovanEps 0:82d68abdb697 1168 meas = analog_value.read();
JovanEps 0:82d68abdb697 1169 meas = analog_value.read();
JovanEps 0:82d68abdb697 1170 meas = analog_value.read();
JovanEps 0:82d68abdb697 1171 meas = analog_value.read();
JovanEps 0:82d68abdb697 1172 meas = analog_value.read();
JovanEps 0:82d68abdb697 1173 meas = analog_value.read();
JovanEps 0:82d68abdb697 1174 meas = analog_value.read();
JovanEps 0:82d68abdb697 1175 meas = analog_value.read();
JovanEps 0:82d68abdb697 1176 meas = analog_value.read();
JovanEps 0:82d68abdb697 1177 meas = analog_value.read();
JovanEps 0:82d68abdb697 1178 meas = analog_value.read();
JovanEps 0:82d68abdb697 1179 meas = analog_value.read();
JovanEps 0:82d68abdb697 1180 meas = analog_value.read();
JovanEps 0:82d68abdb697 1181 meas = analog_value.read();
JovanEps 0:82d68abdb697 1182 meas = analog_value.read();
JovanEps 0:82d68abdb697 1183 meas = analog_value.read();
JovanEps 0:82d68abdb697 1184 meas = analog_value.read();
JovanEps 0:82d68abdb697 1185 meas = analog_value.read();
JovanEps 0:82d68abdb697 1186
JovanEps 0:82d68abdb697 1187 }
JovanEps 0:82d68abdb697 1188 }
JovanEps 0:82d68abdb697 1189 n = timer.read_ms();
JovanEps 0:82d68abdb697 1190 d = ((float)n - (float)m) / ((float)i * (float)j);
JovanEps 0:82d68abdb697 1191 d *= 1000.0;
JovanEps 0:82d68abdb697 1192 d -= overhead;
JovanEps 0:82d68abdb697 1193 d /= 20.0;
JovanEps 0:82d68abdb697 1194 pc.printf("%.3f us \n\r",d);
JovanEps 0:82d68abdb697 1195 pc.printf("\n\r");
JovanEps 0:82d68abdb697 1196
JovanEps 0:82d68abdb697 1197
JovanEps 0:82d68abdb697 1198 //#ifndef noTitle
JovanEps 0:82d68abdb697 1199 pc.printf("\n\r PWM analogWrite() : ");
JovanEps 0:82d68abdb697 1200 //#endif
JovanEps 0:82d68abdb697 1201 // Using pin 13 (system led) for output.
JovanEps 0:82d68abdb697 1202 wait_ms(70); // Allow the Serial text to be transmitted
JovanEps 0:82d68abdb697 1203 m = timer.read_ms();
JovanEps 0:82d68abdb697 1204 for (i=0; i<1; i++) {
JovanEps 0:82d68abdb697 1205 for (j=0; j<10000; j++) {
JovanEps 0:82d68abdb697 1206 PD13 = 0.5;
JovanEps 0:82d68abdb697 1207 PD13 = 0.995;
JovanEps 0:82d68abdb697 1208 PD13 = 0.005;
JovanEps 0:82d68abdb697 1209 PD13 = 0.35;
JovanEps 0:82d68abdb697 1210 PD13 = 0.85;
JovanEps 0:82d68abdb697 1211 PD13 = 0.5;
JovanEps 0:82d68abdb697 1212 PD13 = 0.995;
JovanEps 0:82d68abdb697 1213 PD13 = 0.005;
JovanEps 0:82d68abdb697 1214 PD13 = 0.35;
JovanEps 0:82d68abdb697 1215 PD13 = 0.85;
JovanEps 0:82d68abdb697 1216 PD13 = 0.5;
JovanEps 0:82d68abdb697 1217 PD13 = 0.995;
JovanEps 0:82d68abdb697 1218 PD13 = 0.005;
JovanEps 0:82d68abdb697 1219 PD13 = 0.35;
JovanEps 0:82d68abdb697 1220 PD13 = 0.85;
JovanEps 0:82d68abdb697 1221 PD13 = 0.5;
JovanEps 0:82d68abdb697 1222 PD13 = 0.995;
JovanEps 0:82d68abdb697 1223 PD13 = 0.005;
JovanEps 0:82d68abdb697 1224 PD13 = 0.35;
JovanEps 0:82d68abdb697 1225 PD13 = 0.85;
JovanEps 0:82d68abdb697 1226 }
JovanEps 0:82d68abdb697 1227 }
JovanEps 0:82d68abdb697 1228 n = timer.read_ms();
JovanEps 0:82d68abdb697 1229 d = ((float)n - (float)m) / ((float)i * (float)j);
JovanEps 0:82d68abdb697 1230 d *= 1000.0;
JovanEps 0:82d68abdb697 1231 d -= overhead;
JovanEps 0:82d68abdb697 1232 d /= 20.0;
JovanEps 0:82d68abdb697 1233 pc.printf("%.3f us \n\r",d);
JovanEps 0:82d68abdb697 1234 pc.printf("\n\r");
JovanEps 0:82d68abdb697 1235 //#endif
JovanEps 0:82d68abdb697 1236
JovanEps 0:82d68abdb697 1237
JovanEps 0:82d68abdb697 1238 //#ifndef noTitle
JovanEps 0:82d68abdb697 1239 pc.printf("\n\r DAC analogWrite() : ");
JovanEps 0:82d68abdb697 1240 //#endif
JovanEps 0:82d68abdb697 1241 // Using pin 13 (system led) for output.
JovanEps 0:82d68abdb697 1242 wait_ms(70); // Allow the Serial text to be transmitted
JovanEps 0:82d68abdb697 1243 m = timer.read_ms();
JovanEps 0:82d68abdb697 1244 for (i=0; i<1; i++) {
JovanEps 0:82d68abdb697 1245 for (j=0; j<10000; j++) {
JovanEps 0:82d68abdb697 1246 DACout = 0.5;
JovanEps 0:82d68abdb697 1247 DACout = 0.995;
JovanEps 0:82d68abdb697 1248 DACout = 0.005;
JovanEps 0:82d68abdb697 1249 DACout = 0.35;
JovanEps 0:82d68abdb697 1250 DACout = 0.85;
JovanEps 0:82d68abdb697 1251 DACout = 0.5;
JovanEps 0:82d68abdb697 1252 DACout = 0.995;
JovanEps 0:82d68abdb697 1253 DACout = 0.005;
JovanEps 0:82d68abdb697 1254 DACout = 0.35;
JovanEps 0:82d68abdb697 1255 DACout = 0.85;
JovanEps 0:82d68abdb697 1256 DACout = 0.5;
JovanEps 0:82d68abdb697 1257 DACout = 0.995;
JovanEps 0:82d68abdb697 1258 DACout = 0.005;
JovanEps 0:82d68abdb697 1259 DACout = 0.35;
JovanEps 0:82d68abdb697 1260 DACout = 0.85;
JovanEps 0:82d68abdb697 1261 DACout = 0.5;
JovanEps 0:82d68abdb697 1262 DACout = 0.995;
JovanEps 0:82d68abdb697 1263 DACout = 0.005;
JovanEps 0:82d68abdb697 1264 DACout = 0.35;
JovanEps 0:82d68abdb697 1265 DACout = 0.85;
JovanEps 0:82d68abdb697 1266 }
JovanEps 0:82d68abdb697 1267 }
JovanEps 0:82d68abdb697 1268 n = timer.read_ms();
JovanEps 0:82d68abdb697 1269 d = ((float)n - (float)m) / ((float)i * (float)j);
JovanEps 0:82d68abdb697 1270 d *= 1000.0;
JovanEps 0:82d68abdb697 1271 d -= overhead;
JovanEps 0:82d68abdb697 1272 d /= 20.0;
JovanEps 0:82d68abdb697 1273 pc.printf("%.3f us \n\r",d);
JovanEps 0:82d68abdb697 1274 pc.printf("\n\r");
JovanEps 0:82d68abdb697 1275 //#endif
JovanEps 0:82d68abdb697 1276
JovanEps 0:82d68abdb697 1277
JovanEps 0:82d68abdb697 1278 //#ifndef noTitle
JovanEps 0:82d68abdb697 1279 pc.printf("\n\r wait_ms(1) : ");
JovanEps 0:82d68abdb697 1280 //#endif
JovanEps 0:82d68abdb697 1281 wait_ms(70); // Allow the Serial text to be transmitted
JovanEps 0:82d68abdb697 1282 m = timer.read_ms();
JovanEps 0:82d68abdb697 1283 for (i=0; i<1; i++) {
JovanEps 0:82d68abdb697 1284 for (j=0; j<100; j++) {
JovanEps 0:82d68abdb697 1285 wait_ms(1);
JovanEps 0:82d68abdb697 1286 wait_ms(1);
JovanEps 0:82d68abdb697 1287 wait_ms(1);
JovanEps 0:82d68abdb697 1288 wait_ms(1);
JovanEps 0:82d68abdb697 1289 wait_ms(1);
JovanEps 0:82d68abdb697 1290 wait_ms(1);
JovanEps 0:82d68abdb697 1291 wait_ms(1);
JovanEps 0:82d68abdb697 1292 wait_ms(1);
JovanEps 0:82d68abdb697 1293 wait_ms(1);
JovanEps 0:82d68abdb697 1294 wait_ms(1);
JovanEps 0:82d68abdb697 1295 wait_ms(1);
JovanEps 0:82d68abdb697 1296 wait_ms(1);
JovanEps 0:82d68abdb697 1297 wait_ms(1);
JovanEps 0:82d68abdb697 1298 wait_ms(1);
JovanEps 0:82d68abdb697 1299 wait_ms(1);
JovanEps 0:82d68abdb697 1300 wait_ms(1);
JovanEps 0:82d68abdb697 1301 wait_ms(1);
JovanEps 0:82d68abdb697 1302 wait_ms(1);
JovanEps 0:82d68abdb697 1303 wait_ms(1);
JovanEps 0:82d68abdb697 1304 wait_ms(1);
JovanEps 0:82d68abdb697 1305 }
JovanEps 0:82d68abdb697 1306 }
JovanEps 0:82d68abdb697 1307 n = timer.read_ms();
JovanEps 0:82d68abdb697 1308 d = ((float)n - (float)m) / ((float)i * (float)j);
JovanEps 0:82d68abdb697 1309 d *= 1000.0;
JovanEps 0:82d68abdb697 1310 d -= overhead;
JovanEps 0:82d68abdb697 1311 d /= 20.0;
JovanEps 0:82d68abdb697 1312 pc.printf("%.3f us \n\r",d);
JovanEps 0:82d68abdb697 1313 pc.printf("\n\r");
JovanEps 0:82d68abdb697 1314
JovanEps 0:82d68abdb697 1315
JovanEps 0:82d68abdb697 1316 //#ifndef noTitle
JovanEps 0:82d68abdb697 1317 pc.printf("\n\r wait_ms(100) : ");
JovanEps 0:82d68abdb697 1318 //#endif
JovanEps 0:82d68abdb697 1319 wait_ms(70); // Allow the Serial text to be transmitted
JovanEps 0:82d68abdb697 1320 m = timer.read_ms();
JovanEps 0:82d68abdb697 1321 for (i=0; i<1; i++) {
JovanEps 0:82d68abdb697 1322 for (j=0; j<2; j++) {
JovanEps 0:82d68abdb697 1323 wait_ms(100);
JovanEps 0:82d68abdb697 1324 wait_ms(100);
JovanEps 0:82d68abdb697 1325 wait_ms(100);
JovanEps 0:82d68abdb697 1326 wait_ms(100);
JovanEps 0:82d68abdb697 1327 wait_ms(100);
JovanEps 0:82d68abdb697 1328 wait_ms(100);
JovanEps 0:82d68abdb697 1329 wait_ms(100);
JovanEps 0:82d68abdb697 1330 wait_ms(100);
JovanEps 0:82d68abdb697 1331 wait_ms(100);
JovanEps 0:82d68abdb697 1332 wait_ms(100);
JovanEps 0:82d68abdb697 1333 wait_ms(100);
JovanEps 0:82d68abdb697 1334 wait_ms(100);
JovanEps 0:82d68abdb697 1335 wait_ms(100);
JovanEps 0:82d68abdb697 1336 wait_ms(100);
JovanEps 0:82d68abdb697 1337 wait_ms(100);
JovanEps 0:82d68abdb697 1338 wait_ms(100);
JovanEps 0:82d68abdb697 1339 wait_ms(100);
JovanEps 0:82d68abdb697 1340 wait_ms(100);
JovanEps 0:82d68abdb697 1341 wait_ms(100);
JovanEps 0:82d68abdb697 1342 wait_ms(100);
JovanEps 0:82d68abdb697 1343 }
JovanEps 0:82d68abdb697 1344 }
JovanEps 0:82d68abdb697 1345 n = timer.read_ms();
JovanEps 0:82d68abdb697 1346 d = ((float)n - (float)m) / ((float)i * (float)j);
JovanEps 0:82d68abdb697 1347 d *= 1000.0;
JovanEps 0:82d68abdb697 1348 d -= overhead;
JovanEps 0:82d68abdb697 1349 d /= 20.0;
JovanEps 0:82d68abdb697 1350 pc.printf("%.3f us \n\r",d);
JovanEps 0:82d68abdb697 1351 pc.printf("\n\r");
JovanEps 0:82d68abdb697 1352
JovanEps 0:82d68abdb697 1353
JovanEps 0:82d68abdb697 1354 //#ifndef noTitle
JovanEps 0:82d68abdb697 1355 pc.printf("\n\r wait_us(2) : ");
JovanEps 0:82d68abdb697 1356 //#endif
JovanEps 0:82d68abdb697 1357 wait_ms(70); // Allow the Serial text to be transmitted
JovanEps 0:82d68abdb697 1358 m = timer.read_ms();
JovanEps 0:82d68abdb697 1359 for (i=0; i<30; i++) {
JovanEps 0:82d68abdb697 1360 for (j=0; j<1000; j++) {
JovanEps 0:82d68abdb697 1361 wait_us(2);
JovanEps 0:82d68abdb697 1362 wait_us(2);
JovanEps 0:82d68abdb697 1363 wait_us(2);
JovanEps 0:82d68abdb697 1364 wait_us(2);
JovanEps 0:82d68abdb697 1365 wait_us(2);
JovanEps 0:82d68abdb697 1366 wait_us(2);
JovanEps 0:82d68abdb697 1367 wait_us(2);
JovanEps 0:82d68abdb697 1368 wait_us(2);
JovanEps 0:82d68abdb697 1369 wait_us(2);
JovanEps 0:82d68abdb697 1370 wait_us(2);
JovanEps 0:82d68abdb697 1371 wait_us(2);
JovanEps 0:82d68abdb697 1372 wait_us(2);
JovanEps 0:82d68abdb697 1373 wait_us(2);
JovanEps 0:82d68abdb697 1374 wait_us(2);
JovanEps 0:82d68abdb697 1375 wait_us(2);
JovanEps 0:82d68abdb697 1376 wait_us(2);
JovanEps 0:82d68abdb697 1377 wait_us(2);
JovanEps 0:82d68abdb697 1378 wait_us(2);
JovanEps 0:82d68abdb697 1379 wait_us(2);
JovanEps 0:82d68abdb697 1380 wait_us(2);
JovanEps 0:82d68abdb697 1381 }
JovanEps 0:82d68abdb697 1382 }
JovanEps 0:82d68abdb697 1383 n = timer.read_ms();
JovanEps 0:82d68abdb697 1384 d = ((float)n - (float)m) / ((float)i * (float)j);
JovanEps 0:82d68abdb697 1385 d *= 1000.0;
JovanEps 0:82d68abdb697 1386 d -= overhead;
JovanEps 0:82d68abdb697 1387 d /= 20.0;
JovanEps 0:82d68abdb697 1388 pc.printf("%.3f us \n\r",d);
JovanEps 0:82d68abdb697 1389 pc.printf("\n\r");
JovanEps 0:82d68abdb697 1390
JovanEps 0:82d68abdb697 1391
JovanEps 0:82d68abdb697 1392 //#ifndef noTitle
JovanEps 0:82d68abdb697 1393 pc.printf("\n\r wait_us(5) : ");
JovanEps 0:82d68abdb697 1394 //#endif
JovanEps 0:82d68abdb697 1395 wait_ms(70); // Allow the Serial text to be transmitted
JovanEps 0:82d68abdb697 1396 m = timer.read_ms();
JovanEps 0:82d68abdb697 1397 for (i=0; i<5; i++) {
JovanEps 0:82d68abdb697 1398 for (j=0; j<1000; j++) {
JovanEps 0:82d68abdb697 1399 //pc.printfln ("Working");
JovanEps 0:82d68abdb697 1400 wait_us(5);
JovanEps 0:82d68abdb697 1401 wait_us(5);
JovanEps 0:82d68abdb697 1402 wait_us(5);
JovanEps 0:82d68abdb697 1403 wait_us(5);
JovanEps 0:82d68abdb697 1404 wait_us(5);
JovanEps 0:82d68abdb697 1405 wait_us(5);
JovanEps 0:82d68abdb697 1406 wait_us(5);
JovanEps 0:82d68abdb697 1407 wait_us(5);
JovanEps 0:82d68abdb697 1408 wait_us(5);
JovanEps 0:82d68abdb697 1409 wait_us(5);
JovanEps 0:82d68abdb697 1410 wait_us(5);
JovanEps 0:82d68abdb697 1411 wait_us(5);
JovanEps 0:82d68abdb697 1412 wait_us(5);
JovanEps 0:82d68abdb697 1413 wait_us(5);
JovanEps 0:82d68abdb697 1414 wait_us(5);
JovanEps 0:82d68abdb697 1415 wait_us(5);
JovanEps 0:82d68abdb697 1416 wait_us(5);
JovanEps 0:82d68abdb697 1417 wait_us(5);
JovanEps 0:82d68abdb697 1418 wait_us(5);
JovanEps 0:82d68abdb697 1419 wait_us(5);
JovanEps 0:82d68abdb697 1420 }
JovanEps 0:82d68abdb697 1421 }
JovanEps 0:82d68abdb697 1422 n = timer.read_ms();
JovanEps 0:82d68abdb697 1423 d = ((float)n - (float)m) / ((float)i * (float)j);
JovanEps 0:82d68abdb697 1424 d *= 1000.0;
JovanEps 0:82d68abdb697 1425 d -= overhead;
JovanEps 0:82d68abdb697 1426 d /= 20.0;
JovanEps 0:82d68abdb697 1427 pc.printf("%.3f us \n\r",d);
JovanEps 0:82d68abdb697 1428 pc.printf("\n\r");
JovanEps 0:82d68abdb697 1429
JovanEps 0:82d68abdb697 1430
JovanEps 0:82d68abdb697 1431 //#ifndef noTitle
JovanEps 0:82d68abdb697 1432 pc.printf("\n\r wait_us(100) : ");
JovanEps 0:82d68abdb697 1433 //#endif
JovanEps 0:82d68abdb697 1434 wait_ms(70); // Allow the Serial text to be transmitted
JovanEps 0:82d68abdb697 1435 m = timer.read_ms();
JovanEps 0:82d68abdb697 1436 for (i=0; i<1; i++) {
JovanEps 0:82d68abdb697 1437 for (j=0; j<1000; j++) {
JovanEps 0:82d68abdb697 1438 wait_us(100);
JovanEps 0:82d68abdb697 1439 wait_us(100);
JovanEps 0:82d68abdb697 1440 wait_us(100);
JovanEps 0:82d68abdb697 1441 wait_us(100);
JovanEps 0:82d68abdb697 1442 wait_us(100);
JovanEps 0:82d68abdb697 1443 wait_us(100);
JovanEps 0:82d68abdb697 1444 wait_us(100);
JovanEps 0:82d68abdb697 1445 wait_us(100);
JovanEps 0:82d68abdb697 1446 wait_us(100);
JovanEps 0:82d68abdb697 1447 wait_us(100);
JovanEps 0:82d68abdb697 1448 wait_us(100);
JovanEps 0:82d68abdb697 1449 wait_us(100);
JovanEps 0:82d68abdb697 1450 wait_us(100);
JovanEps 0:82d68abdb697 1451 wait_us(100);
JovanEps 0:82d68abdb697 1452 wait_us(100);
JovanEps 0:82d68abdb697 1453 wait_us(100);
JovanEps 0:82d68abdb697 1454 wait_us(100);
JovanEps 0:82d68abdb697 1455 wait_us(100);
JovanEps 0:82d68abdb697 1456 wait_us(100);
JovanEps 0:82d68abdb697 1457 wait_us(100);
JovanEps 0:82d68abdb697 1458 }
JovanEps 0:82d68abdb697 1459 }
JovanEps 0:82d68abdb697 1460 n = timer.read_ms();
JovanEps 0:82d68abdb697 1461 d = ((float)n - (float)m) / ((float)i * (float)j);
JovanEps 0:82d68abdb697 1462 d *= 1000.0;
JovanEps 0:82d68abdb697 1463 d -= overhead;
JovanEps 0:82d68abdb697 1464 d /= 20.0;
JovanEps 0:82d68abdb697 1465 pc.printf("%.3f us \n\r",d);
JovanEps 0:82d68abdb697 1466 pc.printf("\n\r");
JovanEps 0:82d68abdb697 1467
JovanEps 0:82d68abdb697 1468 //*************************
JovanEps 0:82d68abdb697 1469 //** Stop timer ***
JovanEps 0:82d68abdb697 1470 //*************************
JovanEps 0:82d68abdb697 1471 timer.stop();
JovanEps 0:82d68abdb697 1472 //*************************
JovanEps 0:82d68abdb697 1473 pc.printf("----- END --------");
JovanEps 0:82d68abdb697 1474 pc.printf("-------------------");
JovanEps 0:82d68abdb697 1475 wait(0.3);
JovanEps 0:82d68abdb697 1476 }
JovanEps 0:82d68abdb697 1477
JovanEps 0:82d68abdb697 1478 //*********************************
JovanEps 0:82d68abdb697 1479 //** MAIN block **
JovanEps 0:82d68abdb697 1480 //*********************************
JovanEps 0:82d68abdb697 1481 int main()
JovanEps 0:82d68abdb697 1482 {
JovanEps 0:82d68abdb697 1483 setup();
JovanEps 0:82d68abdb697 1484 do {
JovanEps 0:82d68abdb697 1485 pc.printf("\n\r Speed Test will begin momentarily \n\r");
JovanEps 0:82d68abdb697 1486 pc.printf("\n\r");
JovanEps 0:82d68abdb697 1487 wait(0.3);
JovanEps 0:82d68abdb697 1488 speedTest();
JovanEps 0:82d68abdb697 1489 wait(3);
JovanEps 0:82d68abdb697 1490 } while (true);
JovanEps 0:82d68abdb697 1491 }