Trebate 1us sat razdoblje preko paralelnog porta

F

foofi22

Guest
Bok,
Ja sam pokušava napisati neki C koda za pisanje podataka iz preko SPI link pomoću paralelnog porta.

Ja mogu pisati podatke kao što očekivati, ali propusnost je samo ne dovoljno brzo.Vrijeme takta između ciklusa je 8us ovog treba 1us, je li bilo koji način da se poboljša ovo?

Ako JA pravedan dodati dio koda za preklopni sat linija 1,0,1,0 itd. ..najbrži ona je i dalje dobiva 8us sat vremena.Da li je još moguće pisati na 1MBs paralelno koristeći serijski port?

 
from Wikipedia

An LPT port ima 8-bitnu sabirnica podataka i četiri igle za kontrolu izlaznih (Strobe, papira na novi redak, inicijalizirate i odaberite U), a pet za kontrolu unosa (ack, zauzeti, Select, Error, a Papir Out).Njegova brzina prijenosa podataka je na 12.000 kbit / s.

i iz druge stranice

Iako, postoje neke razlike između oduševljen ECP i EPP, kako u suštini podržavaju veće propusnosti današnje različitim uređajima putem paralelne priključke.B & B Elektronika nosi liniju paralelno kartica koja zadovoljava vaše različite periferije je potrebno:

ISAPP1 - ISA Single Port Parallel kartice sa SPP / BPP / EPP / ECP 2 Mbps maksimalno
PCIPP1 - Single Port Parallel PCI kartica s SPP / BPP / EPP Mbps maksimalno 5,5-6
PCIPP2 - Dual Port Parallel PCI kartica s SPP / BPP / EPP Mbps maksimalno 5,5-6

Sve navedeno SPP podršku i BPP modovi jamčiti osnovne kompatibilnosti sa starijim periferije i pisačima.SPP pruža samo naprijed smjer prijenosa podataka, i BPP pruža dvorezonantan usmjerni funkcija,
od kojih svaki ima maksimalna brzina prijenosa podataka od 150 kbps.Sveukupna maksimalna stopa za ISA je do 2 Mbps i 5,5-6 Mbps za PCI.

 
Ok,
s obzirom da je najbrži mogu žabica jednog retka je svaki 8us,
svaka sugestija kako to može biti sped up?(Im 'koristeći C i IO.DLL za kontrolu paralelnog porta)

 
možete postavljati kôd netko može provjeriti tako da ...

 
Code:

# uključiti "io.h"

# uključiti <iostream>

koristeći namespace STD;PORTOUT PortOut;

PORTWORDOUT PortWordOut;

PORTDWORDOUT PortDWordOut;

PORTIN PortIn;

PORTWORDIN PortWordIn;

PORTDWORDIN PortDWordIn;

SETPORTBIT SetPortBit;

CLRPORTBIT ClrPortBit;

NOTPORTBIT NotPortBit;

GETPORTBIT GetPortBit;

RIGHTPORTSHIFT RightPortShift;

LEFTPORTSHIFT LeftPortShift;

ISDRIVERINSTALLED IsDriverInstalled;HMODULE hio;poniłtava UnloadIODLL () (

FreeLibrary (hio);

)LoadIODLL int () (

hio = LoadLibrary ( "io");

if (NULL == hio) vrati 1;PortOut = (PORTOUT) GetProcAddress (hio, "PortOut");

PortWordOut = (PORTWORDOUT) GetProcAddress (hio, "PortWordOut");

PortDWordOut = (PORTDWORDOUT) GetProcAddress (hio, "PortDWordOut");

PortIn = (PORTIN) GetProcAddress (hio, "PortIn");

PortWordIn = (PORTWORDIN) GetProcAddress (hio, "PortWordIn");

PortDWordIn = (PORTDWORDIN) GetProcAddress (hio, "PortDWordIn");

SetPortBit = (SETPORTBIT) GetProcAddress (hio, "SetPortBit");

ClrPortBit = (CLRPORTBIT) GetProcAddress (hio, "ClrPortBit");

NotPortBit = (NOTPORTBIT) GetProcAddress (hio, "NotPortBit");

GetPortBit = (GETPORTBIT) GetProcAddress (hio, "GetPortBit");

RightPortShift = (RIGHTPORTSHIFT) GetProcAddress (hio, "RightPortShift");

LeftPortShift = (LEFTPORTSHIFT) GetProcAddress (hio, "LeftPortShift");

IsDriverInstalled = (ISDRIVERINSTALLED) GetProcAddress (hio, "IsDriverInstalled");atexit (UnloadIODLL);return 0;

)poniłtava glavni () (int a;

a = LoadIODLL ();ClrPortBit (890, 5); / / set podataka za izlazni priključak/ / sada pritega bitni 0 dana podatkovne sabirnice

SetPortBit (888, 0);

ClrPortBit (888, 0);

SetPortBit (888, 0);

ClrPortBit (888, 0);

SetPortBit (888, 0);

ClrPortBit (888, 0);

SetPortBit (888, 0);

ClrPortBit (888, 0);

SetPortBit (888, 0);

ClrPortBit (888, 0);

SetPortBit (888, 0);

ClrPortBit (888, 0);

)
 

Welcome to EDABoard.com

Sponsor

Back
Top