55 lines
1.2 KiB
C
55 lines
1.2 KiB
C
/*****
|
|
* Copyright (c) 2023 - Poivron Robotique
|
|
*
|
|
* SPDX-License-Identifier: BSD-3-Clause
|
|
*/
|
|
#include "pico/stdlib.h"
|
|
#include <stdio.h>
|
|
|
|
absolute_time_t envoie_nb_char(int nb_char);
|
|
|
|
void main(void)
|
|
{
|
|
absolute_time_t measured_time_us;
|
|
absolute_time_t temps_moyen, temps_max;
|
|
int nb_ech = 10;
|
|
stdio_init_all();
|
|
while(1){
|
|
temps_moyen = 0;
|
|
temps_max = 0;
|
|
for(int nb_char = 1; nb_char < 1000; nb_char+= 1){
|
|
temps_moyen = 0;
|
|
temps_max = 0;
|
|
for(int ech=0; ech<nb_ech; ech ++){
|
|
measured_time_us = envoie_nb_char(nb_char);
|
|
if(measured_time_us > temps_max){
|
|
temps_max = measured_time_us;
|
|
}
|
|
temps_moyen += measured_time_us;
|
|
}
|
|
temps_moyen = temps_moyen / nb_ech;
|
|
printf(">temps:%d:%lld#us\n", nb_char, temps_moyen);
|
|
printf(">temps_max:%d:%lld#us\n", nb_char, temps_max);
|
|
sleep_ms(5);
|
|
}
|
|
sleep_ms(50);
|
|
}
|
|
}
|
|
|
|
absolute_time_t envoie_nb_char(int nb_char) {
|
|
absolute_time_t current_time_us, start_time_us;
|
|
char message[10000];
|
|
for(int i=0; i<10000; i++){
|
|
message[i]= i%26 + 'a';
|
|
}
|
|
if (nb_char == 0){
|
|
return 0;
|
|
}
|
|
message[nb_char - 1] = '\n';
|
|
message[nb_char] = '\0';
|
|
start_time_us = get_absolute_time();
|
|
printf("%s", message);
|
|
current_time_us = get_absolute_time();
|
|
return current_time_us - start_time_us;
|
|
}
|