//59jag
//calcul le nombre de cycles d horloge de 13.89ns(72Mhz)
#include <Arduino.h>

// Définir les registres DWT et DEMCR pour le compteur de cycles
#define DWT_CYCCNT  *(volatile uint32_t *)0xE0001004
#define DWT_CONTROL *(volatile uint32_t *)0xE0001000
#define SCB_DEMCR   *(volatile uint32_t *)0xE000EDFC
uint32_t start;
uint32_t stop;
uint32_t duree;
void setup() {
  Serial.begin(9600);
  // Activer le compteur de cycles d'horloge
  SCB_DEMCR |= 0x01000000;
  DWT_CONTROL |= 1;
}

void loop() {
  // Réinitialiser le compteur de cycles
  start = DWT_CYCCNT;
  //DWT->CYCCNT = 0;
 
  // Exécuter la fonction à mesurer
  maFonction();
  stop = DWT_CYCCNT;
  // Lire le nombre de cycles écoulés
  duree = stop - start;
  Serial.print("Nombre de cycles : ");
  Serial.println(duree);

  // Attendre avant de refaire la mesure
  delay(1000);
}

void maFonction() {
  // La fonction à mesurer
  delay(100);
    // Un peu de temps pour simuler une charge
  
}
Loading
stm32-bluepill