WIZwiki W7500 ADC Performance Meter
Dependencies: SDFileSystem STATIC_COLORS WIZnetInterface mbed
Fork of WIZwiki-W7500_ADC_Sampling by
main.cpp@4:9b3e3c52778a, 2016-07-10 (annotated)
- Committer:
- Fo170
- Date:
- Sun Jul 10 15:23:53 2016 +0000
- Revision:
- 4:9b3e3c52778a
- Parent:
- 3:cc86b144837b
WIZwiki W7500 ADC Performance Meter
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
Fo170 | 0:70a1e939250e | 1 | #include "mbed.h" |
Fo170 | 0:70a1e939250e | 2 | #include "EthernetInterface.h" |
Fo170 | 0:70a1e939250e | 3 | #include "SDFileSystem.h" |
Fo170 | 0:70a1e939250e | 4 | #include <stdio.h> |
Fo170 | 0:70a1e939250e | 5 | #include <string.h> |
Fo170 | 0:70a1e939250e | 6 | |
Fo170 | 4:9b3e3c52778a | 7 | // https://developer.mbed.org/users/chris/notebook/Getting-best-ADC-performance/ |
Fo170 | 4:9b3e3c52778a | 8 | // https://developer.mbed.org/users/chris/code/ADCPerformanceMeter/ |
Fo170 | 0:70a1e939250e | 9 | |
Fo170 | 0:70a1e939250e | 10 | #if defined(TARGET_WIZwiki_W7500) |
Fo170 | 0:70a1e939250e | 11 | Serial uart(USBTX, USBRX); |
Fo170 | 0:70a1e939250e | 12 | SDFileSystem sd(PB_3, PB_2, PB_1, PB_0, "sd"); // WIZwiki-W7500 |
Fo170 | 0:70a1e939250e | 13 | #include "static_colors.h" |
Fo170 | 0:70a1e939250e | 14 | // LED RED : server listning status |
Fo170 | 0:70a1e939250e | 15 | // LED GREEN : socket connecting status Ok |
Fo170 | 0:70a1e939250e | 16 | // LED BLUE : socket connecting status Busy |
Fo170 | 0:70a1e939250e | 17 | #endif |
Fo170 | 0:70a1e939250e | 18 | |
Fo170 | 4:9b3e3c52778a | 19 | #define HTTPD_MAX_FNAME_LENGTH 127 |
Fo170 | 4:9b3e3c52778a | 20 | #define HTTPD_MAX_DNAME_LENGTH 127 |
Fo170 | 0:70a1e939250e | 21 | |
Fo170 | 0:70a1e939250e | 22 | char fileName[HTTPD_MAX_FNAME_LENGTH+1]; |
Fo170 | 0:70a1e939250e | 23 | char dirName[HTTPD_MAX_DNAME_LENGTH+1]; |
Fo170 | 0:70a1e939250e | 24 | char *uristr; |
Fo170 | 0:70a1e939250e | 25 | char *eou; |
Fo170 | 0:70a1e939250e | 26 | char *qrystr; |
Fo170 | 0:70a1e939250e | 27 | |
Fo170 | 0:70a1e939250e | 28 | FILE *fp; |
Fo170 | 0:70a1e939250e | 29 | int rdCnt; |
Fo170 | 0:70a1e939250e | 30 | |
Fo170 | 0:70a1e939250e | 31 | // Initialize a pins to perform analog input and digital output fucntions |
Fo170 | 0:70a1e939250e | 32 | AnalogIn ain0(A0); |
Fo170 | 0:70a1e939250e | 33 | |
Fo170 | 4:9b3e3c52778a | 34 | #define NUM_SAMPLES 500000 // size of sample series |
Fo170 | 4:9b3e3c52778a | 35 | #define SAMPLE_BLOCKS 5 |
Fo170 | 2:86f52ca432b8 | 36 | |
Fo170 | 4:9b3e3c52778a | 37 | Timer t; |
Fo170 | 0:70a1e939250e | 38 | |
Fo170 | 0:70a1e939250e | 39 | Ticker ledTick; |
Fo170 | 0:70a1e939250e | 40 | |
Fo170 | 0:70a1e939250e | 41 | char *pch; |
Fo170 | 0:70a1e939250e | 42 | char ext[5]; |
Fo170 | 4:9b3e3c52778a | 43 | |
Fo170 | 0:70a1e939250e | 44 | int pos_ext; |
Fo170 | 0:70a1e939250e | 45 | int extLen; |
Fo170 | 0:70a1e939250e | 46 | |
Fo170 | 4:9b3e3c52778a | 47 | //--------------------------- |
Fo170 | 4:9b3e3c52778a | 48 | int samples = 0; |
Fo170 | 4:9b3e3c52778a | 49 | int num_4 = 0; |
Fo170 | 4:9b3e3c52778a | 50 | int num_8 = 0; |
Fo170 | 4:9b3e3c52778a | 51 | int num_16 = 0; |
Fo170 | 4:9b3e3c52778a | 52 | int num_32 = 0; |
Fo170 | 4:9b3e3c52778a | 53 | int num_64 = 0; |
Fo170 | 4:9b3e3c52778a | 54 | int num_128 = 0; |
Fo170 | 4:9b3e3c52778a | 55 | int num_256 = 0; |
Fo170 | 4:9b3e3c52778a | 56 | int num_512 = 0; |
Fo170 | 4:9b3e3c52778a | 57 | int num_1024 = 0; |
Fo170 | 4:9b3e3c52778a | 58 | int num_spike = 0; |
Fo170 | 4:9b3e3c52778a | 59 | |
Fo170 | 4:9b3e3c52778a | 60 | float AVERAGE = 0.5; |
Fo170 | 4:9b3e3c52778a | 61 | float AVERAGE_MOY = 0.5; |
Fo170 | 4:9b3e3c52778a | 62 | float average_min = 0.0; |
Fo170 | 4:9b3e3c52778a | 63 | float average_max = 3.3; |
Fo170 | 4:9b3e3c52778a | 64 | float average_error = 3.0303; // Par défaut : 3.0303% sur la valeur centrale 1.65V |
Fo170 | 2:86f52ca432b8 | 65 | |
Fo170 | 4:9b3e3c52778a | 66 | #define __AVERAGE_AUTO__ 1 |
Fo170 | 4:9b3e3c52778a | 67 | |
Fo170 | 4:9b3e3c52778a | 68 | void PerformanceMeter(void) |
Fo170 | 0:70a1e939250e | 69 | { |
Fo170 | 4:9b3e3c52778a | 70 | float r = 0.0; |
Fo170 | 4:9b3e3c52778a | 71 | //--------------------------------- |
Fo170 | 4:9b3e3c52778a | 72 | // Take the average over 500,000 samples |
Fo170 | 4:9b3e3c52778a | 73 | // This is because the bias to 1.65v has a tolerance |
Fo170 | 4:9b3e3c52778a | 74 | // adjust the analog input to 1.65V, if NO AUTO MODE |
Fo170 | 4:9b3e3c52778a | 75 | |
Fo170 | 4:9b3e3c52778a | 76 | uart.printf("Taking an average over %d samples\r\n",NUM_SAMPLES); |
Fo170 | 4:9b3e3c52778a | 77 | |
Fo170 | 4:9b3e3c52778a | 78 | if( __AVERAGE_AUTO__ ) |
Fo170 | 4:9b3e3c52778a | 79 | { |
Fo170 | 4:9b3e3c52778a | 80 | COLOR(_BLUE_); |
Fo170 | 4:9b3e3c52778a | 81 | samples = 0; |
Fo170 | 4:9b3e3c52778a | 82 | average_error = 5.0; // 5% initiale |
Fo170 | 4:9b3e3c52778a | 83 | uart.printf("AVERAGE AUTO : error %f%%\r\n", average_error); |
Fo170 | 4:9b3e3c52778a | 84 | |
Fo170 | 4:9b3e3c52778a | 85 | while(samples < NUM_SAMPLES) |
Fo170 | 4:9b3e3c52778a | 86 | { |
Fo170 | 4:9b3e3c52778a | 87 | r = ain0.read(); |
Fo170 | 4:9b3e3c52778a | 88 | |
Fo170 | 4:9b3e3c52778a | 89 | AVERAGE_MOY += r; |
Fo170 | 4:9b3e3c52778a | 90 | samples++; |
Fo170 | 4:9b3e3c52778a | 91 | } |
Fo170 | 4:9b3e3c52778a | 92 | |
Fo170 | 4:9b3e3c52778a | 93 | AVERAGE_MOY /= NUM_SAMPLES; |
Fo170 | 4:9b3e3c52778a | 94 | average_min = AVERAGE_MOY - (AVERAGE_MOY * average_error / 100.0); |
Fo170 | 4:9b3e3c52778a | 95 | average_max = AVERAGE_MOY + (AVERAGE_MOY * average_error / 100.0); |
Fo170 | 4:9b3e3c52778a | 96 | uart.printf("Average Moyenne (for 5%%) = %f , Min = %f , Max = %f\r\n",3.3 * AVERAGE, 3.3 * average_min, 3.3 * average_max); |
Fo170 | 4:9b3e3c52778a | 97 | samples = 0; |
Fo170 | 4:9b3e3c52778a | 98 | |
Fo170 | 4:9b3e3c52778a | 99 | while(samples < NUM_SAMPLES) |
Fo170 | 4:9b3e3c52778a | 100 | { |
Fo170 | 4:9b3e3c52778a | 101 | r = ain0.read(); |
Fo170 | 4:9b3e3c52778a | 102 | |
Fo170 | 4:9b3e3c52778a | 103 | if((r > average_min) && (r < average_max)) |
Fo170 | 4:9b3e3c52778a | 104 | { |
Fo170 | 4:9b3e3c52778a | 105 | AVERAGE += r; |
Fo170 | 4:9b3e3c52778a | 106 | samples++; |
Fo170 | 4:9b3e3c52778a | 107 | } |
Fo170 | 4:9b3e3c52778a | 108 | } |
Fo170 | 4:9b3e3c52778a | 109 | |
Fo170 | 4:9b3e3c52778a | 110 | AVERAGE /= NUM_SAMPLES; |
Fo170 | 4:9b3e3c52778a | 111 | average_min = AVERAGE - (AVERAGE * average_error / 100.0); |
Fo170 | 4:9b3e3c52778a | 112 | average_max = AVERAGE + (AVERAGE * average_error / 100.0); |
Fo170 | 4:9b3e3c52778a | 113 | uart.printf("Average (for 5%%) = %f , Min = %f , Max = %f\r\n",3.3 * AVERAGE, 3.3 * average_min, 3.3 * average_max); |
Fo170 | 4:9b3e3c52778a | 114 | // étalonage à 1% -------------------- |
Fo170 | 4:9b3e3c52778a | 115 | average_error = 1.0; // 1% |
Fo170 | 4:9b3e3c52778a | 116 | COLOR(_YELLOW_); |
Fo170 | 4:9b3e3c52778a | 117 | samples = 0; |
Fo170 | 4:9b3e3c52778a | 118 | |
Fo170 | 4:9b3e3c52778a | 119 | while(samples < NUM_SAMPLES) |
Fo170 | 0:70a1e939250e | 120 | { |
Fo170 | 4:9b3e3c52778a | 121 | r = ain0.read(); |
Fo170 | 4:9b3e3c52778a | 122 | |
Fo170 | 4:9b3e3c52778a | 123 | if((r > average_min) && (r < average_max)) |
Fo170 | 4:9b3e3c52778a | 124 | { |
Fo170 | 4:9b3e3c52778a | 125 | AVERAGE += r; |
Fo170 | 4:9b3e3c52778a | 126 | samples++; |
Fo170 | 4:9b3e3c52778a | 127 | } |
Fo170 | 0:70a1e939250e | 128 | } |
Fo170 | 0:70a1e939250e | 129 | |
Fo170 | 4:9b3e3c52778a | 130 | AVERAGE /= NUM_SAMPLES; |
Fo170 | 4:9b3e3c52778a | 131 | average_min = AVERAGE - (AVERAGE * average_error / 100.0); |
Fo170 | 4:9b3e3c52778a | 132 | average_max = AVERAGE + (AVERAGE * average_error / 100.0); |
Fo170 | 4:9b3e3c52778a | 133 | uart.printf("Average (for 1%%) = %f , Min = %f , Max = %f\r\n",3.3 * AVERAGE, 3.3 * average_min, 3.3 * average_max); |
Fo170 | 4:9b3e3c52778a | 134 | } |
Fo170 | 4:9b3e3c52778a | 135 | else |
Fo170 | 4:9b3e3c52778a | 136 | { |
Fo170 | 4:9b3e3c52778a | 137 | COLOR(_PURPLE_); |
Fo170 | 4:9b3e3c52778a | 138 | average_min = 1.65 - (1.65 * average_error / 100.0); // 0.45 --> -3,0303% of 1.65V --> 1.485V |
Fo170 | 4:9b3e3c52778a | 139 | average_max = 1.65 + (1.65 * average_error / 100.0); // 0.55 --> +3,0303% of 1.65V --> 1.815V |
Fo170 | 4:9b3e3c52778a | 140 | samples = 0; |
Fo170 | 4:9b3e3c52778a | 141 | |
Fo170 | 4:9b3e3c52778a | 142 | while(samples < NUM_SAMPLES) |
Fo170 | 4:9b3e3c52778a | 143 | { |
Fo170 | 4:9b3e3c52778a | 144 | r = ain0.read(); |
Fo170 | 4:9b3e3c52778a | 145 | |
Fo170 | 4:9b3e3c52778a | 146 | if((r > average_min) && (r < average_max)) // 0.7425V à 0.9075 |
Fo170 | 4:9b3e3c52778a | 147 | { |
Fo170 | 4:9b3e3c52778a | 148 | AVERAGE += r; |
Fo170 | 4:9b3e3c52778a | 149 | samples++; |
Fo170 | 4:9b3e3c52778a | 150 | } |
Fo170 | 4:9b3e3c52778a | 151 | } |
Fo170 | 4:9b3e3c52778a | 152 | |
Fo170 | 4:9b3e3c52778a | 153 | AVERAGE /= NUM_SAMPLES; |
Fo170 | 4:9b3e3c52778a | 154 | uart.printf("Average = %f , Min = %f , Max = %f\r\n",3.3 * AVERAGE, 3.3 * average_min, 3.3 * average_max); |
Fo170 | 4:9b3e3c52778a | 155 | } |
Fo170 | 4:9b3e3c52778a | 156 | |
Fo170 | 4:9b3e3c52778a | 157 | samples = 0; |
Fo170 | 4:9b3e3c52778a | 158 | |
Fo170 | 4:9b3e3c52778a | 159 | // Now start sampling series of 500,000 |
Fo170 | 4:9b3e3c52778a | 160 | // acculumating the errors seen in each range |
Fo170 | 4:9b3e3c52778a | 161 | uart.printf("Profiling %d samples\r\n",SAMPLE_BLOCKS*NUM_SAMPLES); |
Fo170 | 4:9b3e3c52778a | 162 | float a; |
Fo170 | 0:70a1e939250e | 163 | |
Fo170 | 4:9b3e3c52778a | 164 | for(int j=0; j < SAMPLE_BLOCKS ; j++) |
Fo170 | 4:9b3e3c52778a | 165 | { |
Fo170 | 4:9b3e3c52778a | 166 | t.reset(); |
Fo170 | 4:9b3e3c52778a | 167 | t.start(); |
Fo170 | 4:9b3e3c52778a | 168 | COLOR(_WHITE_); |
Fo170 | 4:9b3e3c52778a | 169 | //uart.printf("%d SAMPLE BLOCKS\r\n",j); |
Fo170 | 4:9b3e3c52778a | 170 | |
Fo170 | 4:9b3e3c52778a | 171 | for(int i = 0; i < NUM_SAMPLES ; i++) |
Fo170 | 4:9b3e3c52778a | 172 | { |
Fo170 | 4:9b3e3c52778a | 173 | a = ain0.read(); |
Fo170 | 4:9b3e3c52778a | 174 | |
Fo170 | 4:9b3e3c52778a | 175 | if(a == 1.0) { |
Fo170 | 4:9b3e3c52778a | 176 | num_spike++; // > 2048 lsb |
Fo170 | 4:9b3e3c52778a | 177 | } else if (a > (AVERAGE + 0.2500)) { |
Fo170 | 4:9b3e3c52778a | 178 | num_1024++; // > 1024 lsb |
Fo170 | 4:9b3e3c52778a | 179 | } else if (a > (AVERAGE + 0.0625)) { |
Fo170 | 4:9b3e3c52778a | 180 | num_512++; // > 512 lsb |
Fo170 | 4:9b3e3c52778a | 181 | } else if (a > (AVERAGE + 0.0312)) { |
Fo170 | 4:9b3e3c52778a | 182 | num_256++; // > 256 lsb |
Fo170 | 4:9b3e3c52778a | 183 | } else if (a > (AVERAGE + 0.0312)) { |
Fo170 | 4:9b3e3c52778a | 184 | num_128++; // > 128 lsb |
Fo170 | 4:9b3e3c52778a | 185 | } else if (a > (AVERAGE + 0.0156)) { |
Fo170 | 4:9b3e3c52778a | 186 | num_64++; // > 64 lsb |
Fo170 | 4:9b3e3c52778a | 187 | } else if (a > (AVERAGE + 0.0078)) { |
Fo170 | 4:9b3e3c52778a | 188 | num_32++; // > 32 lsb |
Fo170 | 4:9b3e3c52778a | 189 | } else if (a > (AVERAGE + 0.0039)) { |
Fo170 | 4:9b3e3c52778a | 190 | num_16++; // > 16 lsb |
Fo170 | 4:9b3e3c52778a | 191 | } else if (a > (AVERAGE + 0.0019)) { |
Fo170 | 4:9b3e3c52778a | 192 | num_8++; // > 8 lsb |
Fo170 | 4:9b3e3c52778a | 193 | } else if (a > (AVERAGE + 0.0009)) { |
Fo170 | 4:9b3e3c52778a | 194 | num_4++; // > 8 lsb |
Fo170 | 4:9b3e3c52778a | 195 | } |
Fo170 | 4:9b3e3c52778a | 196 | |
Fo170 | 4:9b3e3c52778a | 197 | samples++; |
Fo170 | 4:9b3e3c52778a | 198 | } |
Fo170 | 4:9b3e3c52778a | 199 | t.stop(); |
Fo170 | 4:9b3e3c52778a | 200 | COLOR(_BLACK_); |
Fo170 | 4:9b3e3c52778a | 201 | if(j==0) |
Fo170 | 4:9b3e3c52778a | 202 | { |
Fo170 | 4:9b3e3c52778a | 203 | uart.printf("Samples\t"); |
Fo170 | 4:9b3e3c52778a | 204 | uart.printf("4\t"); |
Fo170 | 4:9b3e3c52778a | 205 | uart.printf("8\t"); |
Fo170 | 4:9b3e3c52778a | 206 | uart.printf("16\t"); |
Fo170 | 4:9b3e3c52778a | 207 | uart.printf("32\t"); |
Fo170 | 4:9b3e3c52778a | 208 | uart.printf("64\t"); |
Fo170 | 4:9b3e3c52778a | 209 | uart.printf("128\t"); |
Fo170 | 4:9b3e3c52778a | 210 | uart.printf("256\t"); |
Fo170 | 4:9b3e3c52778a | 211 | uart.printf("512\t"); |
Fo170 | 4:9b3e3c52778a | 212 | uart.printf("1024\t"); |
Fo170 | 4:9b3e3c52778a | 213 | uart.printf("Spikes\t"); |
Fo170 | 4:9b3e3c52778a | 214 | uart.printf("Time\r\n"); |
Fo170 | 4:9b3e3c52778a | 215 | } |
Fo170 | 4:9b3e3c52778a | 216 | |
Fo170 | 4:9b3e3c52778a | 217 | // Every 500,000 print the results |
Fo170 | 4:9b3e3c52778a | 218 | uart.printf("%d\t",samples); |
Fo170 | 4:9b3e3c52778a | 219 | uart.printf("%d\t",num_4); |
Fo170 | 4:9b3e3c52778a | 220 | uart.printf("%d\t",num_8); |
Fo170 | 4:9b3e3c52778a | 221 | uart.printf("%d\t",num_16); |
Fo170 | 4:9b3e3c52778a | 222 | uart.printf("%d\t",num_32); |
Fo170 | 4:9b3e3c52778a | 223 | uart.printf("%d\t",num_64); |
Fo170 | 4:9b3e3c52778a | 224 | uart.printf("%d\t",num_128); |
Fo170 | 4:9b3e3c52778a | 225 | uart.printf("%d\t",num_256); |
Fo170 | 4:9b3e3c52778a | 226 | uart.printf("%d\t",num_512); |
Fo170 | 4:9b3e3c52778a | 227 | uart.printf("%d\t",num_1024); |
Fo170 | 4:9b3e3c52778a | 228 | uart.printf("%d\t",num_spike); |
Fo170 | 4:9b3e3c52778a | 229 | uart.printf("%fs\r\n",t.read()); |
Fo170 | 4:9b3e3c52778a | 230 | } |
Fo170 | 4:9b3e3c52778a | 231 | |
Fo170 | 4:9b3e3c52778a | 232 | uart.printf("==== Test Complete ====\r\n"); |
Fo170 | 4:9b3e3c52778a | 233 | COLOR(_GREEN_); |
Fo170 | 4:9b3e3c52778a | 234 | //------------------------------- |
Fo170 | 4:9b3e3c52778a | 235 | // TEST continu |
Fo170 | 4:9b3e3c52778a | 236 | uart.printf("==== Test Continu avec %d Samples ====\r\n", NUM_SAMPLES / 10); |
Fo170 | 4:9b3e3c52778a | 237 | samples = 0; |
Fo170 | 4:9b3e3c52778a | 238 | |
Fo170 | 4:9b3e3c52778a | 239 | while(1) |
Fo170 | 4:9b3e3c52778a | 240 | { |
Fo170 | 4:9b3e3c52778a | 241 | a = ain0.read(); |
Fo170 | 4:9b3e3c52778a | 242 | samples++; |
Fo170 | 0:70a1e939250e | 243 | |
Fo170 | 4:9b3e3c52778a | 244 | if(a == 1.0) { |
Fo170 | 4:9b3e3c52778a | 245 | num_spike++; // > 2048 lsb |
Fo170 | 4:9b3e3c52778a | 246 | } else if (a > (AVERAGE + 0.2500)) { |
Fo170 | 4:9b3e3c52778a | 247 | num_1024++; // > 1024 lsb |
Fo170 | 4:9b3e3c52778a | 248 | } else if (a > (AVERAGE + 0.0625)) { |
Fo170 | 4:9b3e3c52778a | 249 | num_512++; // > 512 lsb |
Fo170 | 4:9b3e3c52778a | 250 | } else if (a > (AVERAGE + 0.0312)) { |
Fo170 | 4:9b3e3c52778a | 251 | num_256++; // > 256 lsb |
Fo170 | 4:9b3e3c52778a | 252 | } else if (a > (AVERAGE + 0.0312)) { |
Fo170 | 4:9b3e3c52778a | 253 | num_128++; // > 128 lsb |
Fo170 | 4:9b3e3c52778a | 254 | } else if (a > (AVERAGE + 0.0156)) { |
Fo170 | 4:9b3e3c52778a | 255 | num_64++; // > 64 lsb |
Fo170 | 4:9b3e3c52778a | 256 | } else if (a > (AVERAGE + 0.0078)) { |
Fo170 | 4:9b3e3c52778a | 257 | num_32++; // > 32 lsb |
Fo170 | 4:9b3e3c52778a | 258 | } else if (a > (AVERAGE + 0.0039)) { |
Fo170 | 4:9b3e3c52778a | 259 | num_16++; // > 16 lsb |
Fo170 | 4:9b3e3c52778a | 260 | } else if (a > (AVERAGE + 0.0019)) { |
Fo170 | 4:9b3e3c52778a | 261 | num_8++; // > 8 lsb |
Fo170 | 4:9b3e3c52778a | 262 | } else if (a > (AVERAGE + 0.0009)) { |
Fo170 | 4:9b3e3c52778a | 263 | num_4++; // > 8 lsb |
Fo170 | 4:9b3e3c52778a | 264 | } |
Fo170 | 0:70a1e939250e | 265 | |
Fo170 | 4:9b3e3c52778a | 266 | if(samples == NUM_SAMPLES / 10) |
Fo170 | 4:9b3e3c52778a | 267 | { |
Fo170 | 4:9b3e3c52778a | 268 | uart.printf("Samples\t"); |
Fo170 | 4:9b3e3c52778a | 269 | uart.printf("4\t"); |
Fo170 | 4:9b3e3c52778a | 270 | uart.printf("8\t"); |
Fo170 | 4:9b3e3c52778a | 271 | uart.printf("16\t"); |
Fo170 | 4:9b3e3c52778a | 272 | uart.printf("32\t"); |
Fo170 | 4:9b3e3c52778a | 273 | uart.printf("64\t"); |
Fo170 | 4:9b3e3c52778a | 274 | uart.printf("128\t"); |
Fo170 | 4:9b3e3c52778a | 275 | uart.printf("256\t"); |
Fo170 | 4:9b3e3c52778a | 276 | uart.printf("512\t"); |
Fo170 | 4:9b3e3c52778a | 277 | uart.printf("1024\t"); |
Fo170 | 4:9b3e3c52778a | 278 | uart.printf("Spikes\r\n"); |
Fo170 | 4:9b3e3c52778a | 279 | // Every 500,000 print the results |
Fo170 | 4:9b3e3c52778a | 280 | uart.printf("%d\t",samples); |
Fo170 | 4:9b3e3c52778a | 281 | uart.printf("%d\t",num_4); |
Fo170 | 4:9b3e3c52778a | 282 | uart.printf("%d\t",num_8); |
Fo170 | 4:9b3e3c52778a | 283 | uart.printf("%d\t",num_16); |
Fo170 | 4:9b3e3c52778a | 284 | uart.printf("%d\t",num_32); |
Fo170 | 4:9b3e3c52778a | 285 | uart.printf("%d\t",num_64); |
Fo170 | 4:9b3e3c52778a | 286 | uart.printf("%d\t",num_128); |
Fo170 | 4:9b3e3c52778a | 287 | uart.printf("%d\t",num_256); |
Fo170 | 4:9b3e3c52778a | 288 | uart.printf("%d\t",num_512); |
Fo170 | 4:9b3e3c52778a | 289 | uart.printf("%d\t",num_1024); |
Fo170 | 4:9b3e3c52778a | 290 | uart.printf("%d\r\n\r\n",num_spike); |
Fo170 | 4:9b3e3c52778a | 291 | num_4 = 0; |
Fo170 | 4:9b3e3c52778a | 292 | num_8 = 0; |
Fo170 | 4:9b3e3c52778a | 293 | num_16 = 0; |
Fo170 | 4:9b3e3c52778a | 294 | num_32 = 0; |
Fo170 | 4:9b3e3c52778a | 295 | num_64 = 0; |
Fo170 | 4:9b3e3c52778a | 296 | num_128 = 0; |
Fo170 | 4:9b3e3c52778a | 297 | num_256 = 0; |
Fo170 | 4:9b3e3c52778a | 298 | num_512 = 0; |
Fo170 | 4:9b3e3c52778a | 299 | num_1024 = 0; |
Fo170 | 4:9b3e3c52778a | 300 | num_spike = 0; |
Fo170 | 4:9b3e3c52778a | 301 | samples = 0; |
Fo170 | 4:9b3e3c52778a | 302 | } |
Fo170 | 4:9b3e3c52778a | 303 | } |
Fo170 | 0:70a1e939250e | 304 | } |
Fo170 | 0:70a1e939250e | 305 | |
Fo170 | 0:70a1e939250e | 306 | //-------------------------------------------- |
Fo170 | 0:70a1e939250e | 307 | |
Fo170 | 0:70a1e939250e | 308 | int main(void) |
Fo170 | 0:70a1e939250e | 309 | { |
Fo170 | 4:9b3e3c52778a | 310 | // initialisation des variables |
Fo170 | 4:9b3e3c52778a | 311 | |
Fo170 | 0:70a1e939250e | 312 | |
Fo170 | 4:9b3e3c52778a | 313 | //-------------- |
Fo170 | 4:9b3e3c52778a | 314 | COLOR(_BLACK_); |
Fo170 | 4:9b3e3c52778a | 315 | // Serial Interface eth; |
Fo170 | 4:9b3e3c52778a | 316 | // Serial port configuration (valeurs par defaut) : 9600 baud, 8-bit data, no parity, stop bit |
Fo170 | 4:9b3e3c52778a | 317 | uart.baud(9600); |
Fo170 | 4:9b3e3c52778a | 318 | uart.format(8, SerialBase::None, 1); |
Fo170 | 4:9b3e3c52778a | 319 | COLOR(_RED_); |
Fo170 | 4:9b3e3c52778a | 320 | uart.printf("WIZwiki-W7500 - mBED ( Compiled at : %s and %s )\r\n", __DATE__ , __TIME__); |
Fo170 | 4:9b3e3c52778a | 321 | uart.printf("Initializing\n\r"); |
Fo170 | 4:9b3e3c52778a | 322 | wait(1.0); |
Fo170 | 4:9b3e3c52778a | 323 | |
Fo170 | 4:9b3e3c52778a | 324 | PerformanceMeter(); |
Fo170 | 0:70a1e939250e | 325 | } |