RP20240_Device_USB/main.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;
}