Echantillonner un signal audio à 32kHz

Bonjour,
Je souhaite échantillonner un signal audio à partir d'un microphone MAX9814 sur l'arduino DUE. Je souhaite configurer mon ADC manuellement pour pouvoir échantillonner le signal à 32kHz.
A partir de certain code trouver sur github j'ai conçu ce code:

volatile bool readyToSample = false;
volatile uint32_t adc_value;

void setup() {
    Serial.begin(9600); // Initialiser le port série

    // Configuration de l'ADC
    pmc_enable_periph_clk(ID_ADC);  // Activer l'horloge de l'ADC
    ADC->ADC_CR = ADC_CR_SWRST;     // Réinitialiser l'ADC
    ADC->ADC_MR = 0x10300080;       // Mode de l'ADC configuré pour utilisation normale
    ADC->ADC_CHER = 0x80;           // Activer le canal 7 (A0)

    // Configuration du Timer pour générer une interruption à 32 kHz
    pmc_set_writeprotect(false);
    pmc_enable_periph_clk(TC3_IRQn);
    TcChannel * t = &(TC1->TC_CHANNEL[0]);
    t->TC_CCR = TC_CCR_CLKDIS;
    t->TC_IDR = 0xFFFFFFFF;
    t->TC_SR;
    t->TC_CMR = TC_CMR_WAVE | TC_CMR_WAVSEL_UP_RC | TC_CMR_TCCLKS_TIMER_CLOCK1;
    t->TC_RC = 42; 
    t->TC_IER = TC_IER_CPCS;
    t->TC_CCR = TC_CCR_CLKEN | TC_CCR_SWTRG;

    NVIC_EnableIRQ(TC3_IRQn);
}

unsigned long lastPrintTime = 0;
void loop() {
    if (readyToSample && millis() - lastPrintTime > 100) {  // Imprimer toutes les 100 ms
        Serial.println(adc_value);  // Envoyer la valeur ADC au port série
        readyToSample = false;
        lastPrintTime = millis();
    }
}

void TC3_Handler() {
    TC1->TC_CHANNEL[0].TC_SR;  // Nettoyer le statut register
    adc_value = ADC->ADC_CDR[7];  // Lire directement le registre CDR pour le canal 7
    readyToSample = true;
}

Je ne comprends pas pourquoi le TC_RC = 42. De ce que j'ai compris TC_RC = Fr horloge / Fr échantillonnage. TC_RC devrait être égal à 84MHZ / 32kHz = 1312.
Si vous avez d'autres corrections à apporter je suis preneur.

Je souhaiterai vérifier mon résultat à l'oscilloscope, est ce que vous avez des pistes pour configurer le DAC?

Merci d'avance

:warning:
Post mis dans la mauvaise section, on parle anglais dans les forums généraux. déplacé vers le forum francophone.

Merci de prendre en compte les recommandations listées dans Les bonnes pratiques du Forum Francophone

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.