//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
stm32-bluepill