G
gvanto
Guest
Olen rakentanut vähän DAC-muunnin työtä rinnakkaisporttiin.
Käytän Dev-cpp lähtöön näytteitä kosini aalto (ks. alla oleva koodi) C ...
Nopeinta lähtötaajuus saan siitä DAC on hieman alle 700 hertsin (eli nopeinta mahdollista "ja" loop voin kuvitella).Tämä on käytössä 255 näytettä / perdiod - vähemmän näytteitä voidaan tietenkin saada korkeampi taajuus tuotanto on kallista päätöslauselman.
Tämä on hieman dissapointing kuin toivoin pystyä rakentamaan taajuuksia jopa sanoa 20KHz ainakin.
IM käyttäen 800MHz prosessori kannettavaan btw.
Apua / neuvoa lisäämään tulostusnopeutta (se voi tehdä?) Olisi suuresti arvostaa.Olen kuullut, että käyttämällä direct memory access (DMA) on nopeampi, mutta havent got harmainta aavistusta mistä aloittaa ja onko kasvu nopeus on merkittävä?
Lopulta ajatus oli / on toteuttaa digitaalista (audio) suodatin ohjelmisto - tämä on mahdollista tai on juuri ole vaivaa?
Ohje suuressa arvossa,
gvanto
Koodi:
Koodi:int n = 255, / / Näytteiden määrä / jakso
int k;
double PI = 3,1459;while (1) (
for (k = 0, k <= N, K )
(tulos = 0.5 * cos (2 * k * pi / N) 0,5, / / Halve aalto, lisää 0,5 DC saada ve vain
arvo = ceil (tulos * 255);
Out32 (BASE_ADDRESS, arvo)
)
Käytän Dev-cpp lähtöön näytteitä kosini aalto (ks. alla oleva koodi) C ...
Nopeinta lähtötaajuus saan siitä DAC on hieman alle 700 hertsin (eli nopeinta mahdollista "ja" loop voin kuvitella).Tämä on käytössä 255 näytettä / perdiod - vähemmän näytteitä voidaan tietenkin saada korkeampi taajuus tuotanto on kallista päätöslauselman.
Tämä on hieman dissapointing kuin toivoin pystyä rakentamaan taajuuksia jopa sanoa 20KHz ainakin.
IM käyttäen 800MHz prosessori kannettavaan btw.
Apua / neuvoa lisäämään tulostusnopeutta (se voi tehdä?) Olisi suuresti arvostaa.Olen kuullut, että käyttämällä direct memory access (DMA) on nopeampi, mutta havent got harmainta aavistusta mistä aloittaa ja onko kasvu nopeus on merkittävä?
Lopulta ajatus oli / on toteuttaa digitaalista (audio) suodatin ohjelmisto - tämä on mahdollista tai on juuri ole vaivaa?
Ohje suuressa arvossa,
gvanto
Koodi:
Koodi:int n = 255, / / Näytteiden määrä / jakso
int k;
double PI = 3,1459;while (1) (
for (k = 0, k <= N, K )
(tulos = 0.5 * cos (2 * k * pi / N) 0,5, / / Halve aalto, lisää 0,5 DC saada ve vain
arvo = ceil (tulos * 255);
Out32 (BASE_ADDRESS, arvo)
)