#include "driver/dac.h"
#include "esp_rom_sys.h"
// Tableau de valeurs pour une onde sinusoïdale (8 bits, entre 0 et 255)
const uint8_t sine_wave[64] = {
128, 140, 153, 165, 177, 188, 198, 207, 215, 222, 227, 231, 234, 235, 235, 234,
231, 227, 222, 215, 207, 198, 188, 177, 165, 153, 140, 128, 115, 102, 90, 78,
66, 55, 45, 36, 28, 21, 16, 12, 9, 8, 8, 9, 12, 16, 21, 28,
36, 45, 55, 66, 78, 90, 102, 115
};
void setup() {
Serial.begin(115200);
dac_output_enable(DAC_CHANNEL_1);
// Configuration initiale (facultative)
dac_output_voltage(DAC_CHANNEL_1, 128); // Niveau moyen
}
void loop() {
unsigned long start = micros();
for(int i = 0;i<1000;i++){
dac_output_voltage(DAC_CHANNEL_1, i % 256);//sine_wave[i]); // Écrire la valeur sur le DAC
// esp_rom_delay_us(50); // Ajuster pour la fréquence souhaitée (ici ~312Hz)
// Effectuer plusieurs écritures DAC
// for (int i = 0; i < 1000; i++) {
// dacWrite(25, i % 256);
}
unsigned long duration = micros() - start;
Serial.print(float(duration)/1000,2); // Temps pour 1000 écritures
Serial.println("uS");
delay(1000);
}