Hårek Skrevet 15. mars 2015 Del Skrevet 15. mars 2015 Fikk denne koden av en kollega void Mash::FillSin(double *pBuf, uint16_t nSamples) { double fs = (double)1000000.0 / (double)getNSecPerSample(SAMPLE_PERIOD_2_MS); const double fSin = 31.25; double dTmp; int i; double PhaseInc = 2.0 * MYPI * fSin/fs; dTmp = sin(MYPI / 2.0); for (i = 0; i < nSamples; i++) { pBuf[i] = m_amp * sin(m_Phase); m_Phase += PhaseInc; } } Det er ikke sinus som genereres. Noen som kan hjelpe meg å se feilen? Lenke til kommentar
GeirGrusom Skrevet 15. mars 2015 Del Skrevet 15. mars 2015 Kanskje m_amp er 0? Kan se ut til at PhaseInc kan bli et relativt stort tall også. Lenke til kommentar
Hårek Skrevet 15. mars 2015 Forfatter Del Skrevet 15. mars 2015 (endret) Mangle litt info der, ja. m_amp er 0.25 De første verdiene som genereres er 0 1.0044270185236355e-014 -2.0088540370472709e-014 1.5921955840507062e-014 -4.0177080740945419e-014 Veldig små tall. De øker i loopen, men hvert punkt har forskjellig polaritet. Det er veldig langt fra sinus. PhaseInc = 392.69908169872411 Problemet er nok at dette er et alt for stort tall. Dele på 1000 ser ut til å fungere. Lurer på hva vedkommende har tenkt på her. Endret 15. mars 2015 av Hårek Lenke til kommentar
GeirGrusom Skrevet 15. mars 2015 Del Skrevet 15. mars 2015 Lurer på hva vedkommende har tenkt på her. Alle konstantene og merkelige variabelnavn hinter for meg at vedkomne kanskje ikke helt hadde hodet med seg i det hele tatt. Hvorfor er fsin 31.25? Hvorfor deles 1e6 på hva nå enn getNSecPerSample gjør? Jeg tror jeg bare hadde skrevet det om. Det er ikke som at en sinusgenerator er vanskelig å skrive. Lenke til kommentar
Hårek Skrevet 15. mars 2015 Forfatter Del Skrevet 15. mars 2015 31.25Hz er grei, det er en vanlig frekvens for å teste ADC'ene våre. Men det funker nå, takk for at du kikket på det. Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå