mbed LPCXpresso1549 señal de chirrido

0

Estoy tratando de generar una señal de chirrido de 35000 Hz a 45000 Hz. Primero, genero muestras de señales de chirp de matlab y las almaceno en const uint16_t chirpData [NUM_SAMPLES]. La frecuencia de muestreo que utilicé es de 96000 Hz y obtuve 96001 muestras. Luego, puse el temporizador en el microcontrolador enviando muestras a través del pin DAC una por una (1/96000) segundos. Cuando lo mido con el osciloscopio, la frecuencia más alta que obtuve es de entre 3200 y 4300 Hz. ¿Es porque el temporizador no es lo suficientemente rápido?

enter code here
#define NUM_SAMPLES 96001
const uint16_t chirpData[NUM_SAMPLES] = { //96001 samples };

#include "mbed.h"
#include "chirp.h"

Serial pc(USBTX, USBRX);
Timer t;
AnalogOut aout(P0_12); 

int main()
{   
    int i = 0;

    while(true) {
    // Write the sample to the analog

        t.start();
        if(t.read() >= 0.00001){ // 1/samplef = 0.00001
            aout.write_u16(chirpData[i]);

            i++;
            t.reset();

            if(i > 96000) {
                i = 0;
            }
        }
    }
}
    
pregunta Thang Dinh

0 respuestas

Lea otras preguntas en las etiquetas