Hoi, ben ik weer met mijn CooCox
Voor een project waarbij ik een analoog signaal wil samplen door middel van de ADC (12 bits, 0 - 4096 waarbij 4096 = 3.3V) op mijn microcontroller loop ik tegen het volgende probleem aan.
Ik zal proberen het probleem te omschrijven.
Ik gebruik momenteel een sinus van 5 Hertz, met een offset zodat het DC wordt in plaats van AC.
Nu neem ik gedurende 1 seconde 25 samples door middel van het onderstaande stuk code. De DELAY_ms(40) zijn functie is dat hij om de 40 ms een sample neemt. De variabele sampleFreq is 25. Dus de eerste for loop doorloopt hij 25 keer. 25 x 40 ms = 1 seconde.
Wanneer op de terminal de gesampelde waardes uitlees krijg ik dit.
Nu wil ik deze samples weer omzetten naar de oorspronkelijke sinus. Dit doe ik even via een excel bestand.
Ik krijg nu niet de 5 Hertz die er in ging te zien. Sterker nog, ik kom rond de anderhalve Hertz te kort. Ik heb hogere samplefrequenties geprobeerd, en verschillende input frequenties, maar ik kom in het excel bestand nooit uit op de oorspronkelijke sinus, maar altijd een aantal Hertz onder de oorspronkelijke sinus. Ik ben ondertussen het spoor bijster en vermoed dat het iets met de timing van de DELAY_ms te maken heeft. Hoe nauwkeurig is zon DELAY nou precies?