G
gvanto
Guest
Jeg har bygget en liten DAC konverter å arbeide på parallellporten.
Jeg bruker Dev-cpp til å sende ut prøver av et cosinus bølge (se koden nedenfor) i C ...
Den raskeste output frekvensen jeg kan få fra DAC er i underkant av 700 Hertz (ie. raskest mulig "for" loop jeg kan tenke på).Dette bruker 255 samples / perdiod - mindre prøver kan selvsagt få en høyere frekvens produksjon på dyre i oppløsning.
Dette er litt dissapointing som jeg håper å kunne bygge frekvenser opp til 20KHz si minst.
Im benytter en 800MHz CPU bærbar btw.
Any help / råd om å øke utskriftshastighet (kan det gjøres?) Vil bli verdsatt.Jeg har hørt at å bruke Direct Memory Access (DMA) er raskere, men jeg har ikke fått det svakeste idé hvor jeg skal begynne og om økningen i hastighet er viktig?
Til slutt ideen var / er å implementere en digital (lyd) filter i programvare - er dette mulig, eller skal jeg bare ikke bry?
Hjelp mye verdsatt,
gvanto
Code:int N = 255; / / Number of samples / periode
int k;
double pi = 3.1459;mens 1 () (
for (k = 0; k <= N; k )
(Resultatet = 0.5 * cos (2 * k * pi / N) 0,5; / Halve wave, legg 0.5 DC for å få har bare
verdi = mobilen (resultat * 255);
Out32 (BASE_ADDRESS, value)
)
Jeg bruker Dev-cpp til å sende ut prøver av et cosinus bølge (se koden nedenfor) i C ...
Den raskeste output frekvensen jeg kan få fra DAC er i underkant av 700 Hertz (ie. raskest mulig "for" loop jeg kan tenke på).Dette bruker 255 samples / perdiod - mindre prøver kan selvsagt få en høyere frekvens produksjon på dyre i oppløsning.
Dette er litt dissapointing som jeg håper å kunne bygge frekvenser opp til 20KHz si minst.
Im benytter en 800MHz CPU bærbar btw.
Any help / råd om å øke utskriftshastighet (kan det gjøres?) Vil bli verdsatt.Jeg har hørt at å bruke Direct Memory Access (DMA) er raskere, men jeg har ikke fått det svakeste idé hvor jeg skal begynne og om økningen i hastighet er viktig?
Til slutt ideen var / er å implementere en digital (lyd) filter i programvare - er dette mulig, eller skal jeg bare ikke bry?
Hjelp mye verdsatt,
gvanto
Code:int N = 255; / / Number of samples / periode
int k;
double pi = 3.1459;mens 1 () (
for (k = 0; k <= N; k )
(Resultatet = 0.5 * cos (2 * k * pi / N) 0,5; / Halve wave, legg 0.5 DC for å få har bare
verdi = mobilen (resultat * 255);
Out32 (BASE_ADDRESS, value)
)