Ahoj. Nemáte prosím někdo prosím zkušenosti s A/D převodníkem MCP3002? Potřeboval bych komunikační protokol napříkla ve formátu: CS=0, pauza 5ms, CLK=0, pauza 5ms, CLK=1, atd.
Obvod mám připojen na obvod FTD232R (Din=TXD, _CS=RTS, CLK=DTR,Dout=RI). Pracovat s výstupi umím jak klaicky (FT_SetDtr(ftHandle), FT_ClrDtr(ftHandle)), tak i pomoci BitModu. V kladsikém režmu mi moje komunikace funguje, ale bohužel moc pomalu. Nastevení jednoho výstupu trvá necelé 3ms. Tudíš celé měření kolem 100ms.
Což je problém. Nevíte jak někdo tento čas zkrátit (alespon na polovicku)? Nebo jak komunikační prtokol zapsat v BIT MODU.
Předem Díky.
Vráťa
FT_SetRts(ftHandle); //RTS=1
FT_ClrDtr(ftHandle); //DTR=0
Sleep(0.001);
FT_ClrRts(ftHandle); //RTS=0
//Start bit
FT_SetBreakOn(ftHandle); //TXT=1
FT_SetDtr(ftHandle); //DTR=1
Sleep(0.001);
FT_ClrDtr(ftHandle); //DTR=0
Sleep(0.001);
//SGL/DIFF
FT_SetBreakOn(ftHandle); //TXT=1
FT_SetDtr(ftHandle); //DTR=1
Sleep(0.001);
FT_ClrDtr(ftHandle); //DTR=0
Sleep(0.001);
//ODD/SIGN
FT_SetBreakOn(ftHandle); //TXT=1
FT_SetDtr(ftHandle); //DTR=1
Sleep(0.001);
FT_ClrDtr(ftHandle); //DTR=0
Sleep(0.001);
//MSBF
FT_SetBreakOn(ftHandle); //TXT=1
FT_SetDtr(ftHandle); //DTR=1
Sleep(0.001);
FT_ClrDtr(ftHandle); //DTR=0
FT_SetBreakOff(ftHandle); //TXT=0
Sleep(0.001);
//Čtení dat
unsigned int Data=0;
for(int i=0;i<11;i++){ //1xnulovy bit +10x data
FT_SetDtr(ftHandle); //DTR=1
FT_GetModemStatus(ftHandle,&Stav);
if(Stav&64) Data=(Data<<1)+1; else Data=(Data<<1)+0;
Sleep(0.001);
FT_ClrDtr(ftHandle); //DTR=0
}