Mam taki problem. Karta graficzna pracuje na 100Hz. W jaki prosty sposob moge zmieniac na niej _dokladnie_ co druga ramke obrazu? Czyli zmienialbm 50x na sekunde => kolejne
2 obrazy sa takie same. Musi to byc dokladnie co drugi obraz przez np: 2 godziny...
Być może dałoby się wykorzystać możliwość generowania obrazu stereoskopowego przez karty graficzne współpracujące z okularami zasłaniającymi naprzemiennie oczy.
No wlasnie diabli wiedza... bede mial z urzadzenia sygnal 'start' i wtedy powinienem wygenerowac serie obrazow. Timingi sa dosc ostre, wiec nawet zastanawiam sie nad zrobieniem ukladu na Alterze z wyjsciem DVI. Na razie rozpoznaje temat.
Ciag ramek powinien wygladac tak: AABBCCDDEEFF....
Jakos filmy w windowsie sie wyswietlaja, wiec powinno to byc mozliwe.
Przejsciowka z VGA na port RS232... albo na GamePort, sprawdzasz przerwania V, po klopocie - albo zrobic to po ludzku i wykorzystac DirectX czy OpenGL i wymusic zmiane tresci obrazu w trakcie V-Sync'a. Takie rzeczy nie powinny byc klopotem. - od biedy mzoesz nawet dac jakis uC do monitorowania stanu i zrobic jakas komunikacje - przy zastosowaniu techniki double/triple buffering wyrobisz sie bez klopotow na nie za szybkiej maszynce - IMO takie rzeczy to Z80 zrobi z palcem w ******
Tak - ale jak nagle Windows postanowi pogrzebac se w dysku twardym, albo pomyslec nad niedzialajacym internetem i WindowsUpdate to zapomni jedna ramke zmienic - a wtedy koniec. Powoli mysle nad RTLinux albo wlasny stream DVI z Alterki...
Ale po co? Naprawde az tak chcesz skomplikowac tak banalna sprawe? jesli daje sie w PC robic rozne rzeczy w czasie rzeczywistym (no prawie), przeciez masz dostep jako programista do timera chocby tego wysokiej rozdzielczosci w procku - rozdzielczosc jednego taktu, ilez to sprawdzic czy przerwanie przyszlo i wiesz kiedy ma przyjsc nastepne - moim zdaniem da sie obsluzyc przerwanie nawet co linie - bedzie sie to mulic ale da sie... ja naprawde nie widze problemu - byc moze dlatego ze sie na tym nie znam... :)
O to chodzi... Wiesz - ja wszystkie obrazki moge trzymac w pamieci (bedzie to pi*oko 1.5GB) wiec nie powinno byc zadnego obciazenia. Echhh.... pewnie bedzie RTLinux, ale czy do tej karty graficznej znajde wsparcie do prostego svga_lib... Jeszcze nie zaczalem projektu a juz mi wlosny deba staja.
Napisz sterownik jądra (.vxd,.sys), one mają prawo do wszystkiego, włacznie z pełnym przejęciem kontroli nad przerwaniami. Jeżeli kod bedzie w sekcji krytycznej to Windows niema prawa wywłaczć twojego procesu aż do zakończenia sekcji krytycznej. Poszukaj sobie DDK dla konkretnego systemu operacyjnego i tam masz przykłady.
W teorii ale w praktyce...przerwanai mozna wylaczyc - ogolnie na miejscu autora pytania wgryzlbym sie w specyfikacje kart NVidi (API) i popatrzyl czy nie da sie tego robic z wykorzystaniem mechanizmow samej karty (karta ma wlasne procesory, duzo ram'u, jesli zasosowac buforowanie obrazu to wlasciwie trzeba tylko zmieniac bufor, karta sama zatroszczy sie o synchronizacje no i ... no i bedziemy mogli ograniczyc sie do ogolnego nadzoru i dokladanai danych)...
Tak sobie odpowiem raz na wszystkie posty po weekendzie:
Ano przegryzam sie na razie przez rozne artykuly w sieci. Czemu mysle o robieniu wlasnego streamu DVI? Bo to raptem Alterka + nadajniki DVI (jeszcze nie wiem co tam siedzi). Obrazki sobie zaladuje do CFa w komputerze i juz. One sa dosc specyficzne, wiec bardzo ladnie sie kompresuja. Odpada mi walka z wiatrakami w Windowsie. A impuls wyzwalania sekwencji obrazu tez jest wazny, musi byc z dokladnoscia do 1 ramki. Znaczy jak go obsluzymy kilka ms za pozno, to caly proces jest spieprzony. Sterownik trybu jadra... moze i bedzie trzeba poszukac kogos zeby to zrobil szybko, dobrze i skutecznie - ja sie nie bede tego uczyc ;-)
Powoli mi wychodzi, ze mam 3 mozliwosci:
Alterka ;-))
uC/OS2 na golego PCta i pisac wszystko na piechote.
Wierzyc, ze ktos mi to dobrze pod Winde napisze...
Ad wszystko ;) popatrz na hardware karty graficznej, pomysl czy nie da sie tego zrobic pod directx tak by sama karta graficzna dbala o synchronizacje...
ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here.
All logos and trade names are the property of their respective owners.