Paralelni port programiranja, help needed!

G

gvanto

Guest
Sam sagradio malo DAC konverter za rad na paralelnom portu.
Ja sam koristeći Dev-cpp za izlaz uzorke kosinus val (vidi kod ispod) u C ...

Najbrži izlaz frekvencija mogu dobiti od DAC je samo po 700 Hertz (ie. najbrže 'for' petlja mogu sjetiti).To je korištenjem 255 uzoraka / perdiod - manje uzoraka očito može dobiti veći frekvencijski izlaz na skupo i rezolucije.

Ovo je malo dissapointing kao što sam se nadao da može konstruirati frekvencije do 20KHz reći najmanje.

Im koristeći 800MHz CPU laptop btw.

Bilo koji pomoć / savjet o povećanju izlazne brzine (mogu to biti učinjeno?) Bi bilo mnogo poštovati.Čuo sam da se koristi direktni pristup memoriji (DMA) je brži, ali sam dobio utočište faintest ideju gdje početi i da li povećanje brzine je značajan?

Na kraju je ideja bila / je provesti digitalni (audio) filter in software - ovo je moguće, ili će jednostavno ne zamaram?

Pomoć mnogo poštovati,
gvanto
Šifra:int N = 255; / / Broj uzoraka / period

int k;

double pi = 3,1459;while (1) (

for (k = 0; k <= n; k )

(rezultat = 0.5 * cos (2 * k * pi / N) 0.5; / / prepoloviti val, dodati 0,5 DC dobiti ve samo

value = staviti strop (rezultat * 255);

Out32 (BASE_ADDRESS, vrijednost);)

)

 
Možete pokušati izračunati vrijednosti prvi, a zatim ih spremiti na pogled do stola, circuler tampon, zatim korak kroz tablice outputing vrijednosti.

 
Hvala, ali mislim da ste se odnosi na hardver rješenje (ne-PC) pravo?

(Ja dont vidjeti kako se u C-ove bi stvari bilo brže)

Ako je tako, taj redu yeah mogao vjerojatno koristiti EPROM ili nešto, ali to se stvarno pomoć mene radi ono što im pokušava učiniti (pogledajte moje poruke gore opet

<img src="http://www.edaboard.com/images/smiles/icon_smile.gif" alt="Osmjeh" border="0" />
 
Ne, izračuni uzeti dosta vremena, da ih najprije pohraniti rezultate u polje, a zatim korak kroz polja, mnogo brže!
Loop:

for (k = 0; k <N; k )
Out32 (BASE_ADDRESS, array [k]);

 
hvala btbass,

ovo međutim, jednostavan je za kosinus val izlaz.ja bih se, konačno, ima ulaz (ADC) faza kroz serijski port (vjerojatno - je USB mnogo brže od serijskog porta?) nakon toga neki DSP operacije sve učinjeno u C program, onda je izlaz na par.luka.

moj orah u glavi govori mi je ovo gonna zahtijevaju pakao od puno procesorska snaga (nešto više od izračun kosinusa vrijednost).

Da li je to reckon izvodljivo plan?

moj prijatelj upravo kupili komercijalnu USB-based bitscope (PC-based osciloskop) i nevjerojatno koliko brzo je to - to, jer je USB je puno brže nego par.port?

pozdrav i hvala na pomoći,
gvanto

 
Da, usb je puno brži.USB 1 puna brzina USB-12MHz i 2 visoke brzine je do 400MHz.

 
Oni matematičke funkcije bi trebao trčanje na megahercima na vaš stroj.Tipično port PC-paralelne brzina je vrlo otprilike milijun INS izlasci ili po sekundi, ovisno o matična ploča čipovi.

Moguće je vaš luka je osakaćen na neki način, ali Im 'nagađanje je usko grlo u Out32 () funkcije.To bi mogla biti koristeći neki savijen operacijskom sustavu metodom luka pristup, umjesto jednostavnog OUT opcode.Pokušajte stavljanje jednostavan omča oko Out32 () za mjerenje njegove brzine.Ako je to problem onda probati koristeći PortTalk ili neki drugi port metoda pristupa (to su za Windows):
http://www.lvr.com/parport.htm

USB1 je 12MHz, ali to je bita u sekundi.Paralelni portovi su otprilike slične brzine - obično malo sporije, ali neki su brži.USB2 leti.

Molimo vas da ne cross-post.To je protiv pravila odbora.
http://www.edaboard.com/viewtopic.php?p=506179

 
OK thanks guys će izgledati na ovaj svojstven neki.

pozdravi,
gvanto

 

Welcome to EDABoard.com

Sponsor

Back
Top