Strana 1 z 1

C# FTDI - vytvorenie eventu

Napísané: 23 Sep 2019, 09:33
od používateľa Radus
Zdravim vospolok.
Riešim momentálne pripojenie AD prevodníka pomocou SPI k PC pomocou FT2232. Kódovú časť som si prekopal aj prelúskal viac menej všetky príručky k MPSSE. Potrebujem vašak vytvoriť prerušenie, ktoré bude reagovať na výstup z prevodníka - DR(data ready) a k tomu ako nato som sa nikde nedočítal. Voľné vsupy na FT2232 mám, viem ich nastaviť ako vstup a čítať z nich hodnotu, ale robiť to dookola v slučke sa mi zdá ako prasačina, chcel by som to mať podobne ako na MCU cez preurušene.
Napríklad v tomto dokumente https://www.google.com/url?sa=t&rct=j&q ... 6dT5BypuvO som na strane 29 narazil na funkciu FT_SetEventNotification. Ako som pochopil, malo by to fungovať tak, že po spustení tejto funkcie sa program zastaví a čaká kedy dôjde k danému eventu (sú tam až 3 :)). Vyskúšal som vytvoriť thread a spustil v ňom danú funkciu, ale thread sa mi ukončí bez nejakého čakania...
Neriešil to náhodou už niekto? Alebo nejaké iné nápady?
Ďakujem.

Re: C# FTDI - vytvorenie eventu

Napísané: 23 Sep 2019, 09:55
od používateľa pocitujlasku
aj prerusenie funguje na nekonecnej smycke a kontrole vstupu.
Inac sa to ani neda, len ta nekonecna smycka moze byt obycajny while, alebo aj hw implementovane, princip je stale rovnaky.
Aj v tom pripade je tam nekonecne cakanie.
daj to normalne cez while v smycke v samostatnom threade, len na koniec daj thread.sleep(1), alebo 10 - vtedy to nevyhuli procak. ja mam tak riesenu komunikaciu cez tcp a mam niekolko nekonecnych smyciek a threadov a v pohode.

Re: C# FTDI - vytvorenie eventu

Napísané: 23 Sep 2019, 11:17
od používateľa peterple
V prvom rade musím povedať že som to neriešil a ani nie som moc doma vo WIN api.
Radus napísal:Ako som pochopil, malo by to fungovať tak, že po spustení tejto funkcie sa program zastaví a čaká kedy dôjde k danému eventu (sú tam až 3 ).
Takto som ale popis tej funkcie nepochopil. Funkcia iba nastaví podmienky pre notifikáciu. Končí okamžite s info o tom či sa to podarilo alebo nie. Blokovanie si musíš urobiť sám.
Na stránke 36 (realnej 37) je na to príklad
http://www.musidora.ru/LIGHT/FTDI/D2XXPG31.pdf#page=37

Kód: Vybrať všetko

WaitForSingleObject(hEvent,INFINITE);
To čo si asi chcel je
FT_W32_WaitCommEvent v spolupráci s FT_W32_SetCommMask

http://www.musidora.ru/LIGHT/FTDI/D2XXPG31.pdf#page=92
Tu je ukazané ako si nastaviť monitorovanie zmeny CTS a DSR.

Re: C# FTDI - vytvorenie eventu

Napísané: 23 Sep 2019, 12:14
od používateľa Radus
Ďakujem, Peterple skúsim si to prejsť, budeš mať pravdepodobne pravdu. Ak to nepôjde, spravím to tak ako radil pocitujlasku :)