hai hai...
na nun... also. Hat jetzt schon jemand Bilda am laufen?
Ich habs mit dem Isochronen Datentransfer absolut nicht hin bekommen. Und weil ich das Teil nicht wegschmeißen mag und langsam zornig wurde habe ich folgendes gemacht.
ich verwende (wie ja Afrob anfangs wohl auch schon mal) einen Blocktransfer über EP2OUT. Funktion ähnlich wie bei original Firmware.
Allerdings, weil ja wenn ich mehr als 60 Bytes übertrage kuddlmuddl rein kommt (Block hat ja nur 64 Bytes, was sich nicht durch 5 teilen lässt)verwende ich auch noch EP4OUT um eine Art "Bytecounter Reset" (für die DAC auswahl) zu realisieren.
Ich verwende auch den Timer, allerdings "nur" mit 5000 P/S was für meine Scanner und wohl auch jeden Mot jederzeit allemal reichen dürfte. Könnten evtl. auch 10000 gehen, aber wozu brauch ich das?
Als erstes schick ich irgendwas an EP4OUT, und dann meine bis zu 200 Punkte (mal 5 = 1 kB) (mehr erlaubt mein Programm bis jetzt nicht, und hat auch keinen Sinn) an EP2OUT. Der Interupt von EP2OUT startet den Timer, und die Punkte werden ausgegeben bis der Buffer lehr ist, was den Timer stopt, und den Buffer scharf macht für die nächste Übertragung.
NATÜRLICH kann es vorkommen wenn ich zB mit der Maus auf die Uhr (windows unten rechts) gehe, daß dann eine Pause entsteht, weil Windows was "besseres" zu tun halt als Punkte zu übertragen. DIES Passiert aber dann zwischen zwei Frames. Hat sich Windows (besser gesagt die dll zu Visual Basic) mal dazu durchgerungen einen Transfer zu machen, dann laufen alle Blöcke nacheinander durch... wenn nicht (zb weil Buffer voll ist) dann geht nix mehr, bis alles erledigt ist.(Visualbasic hängt dann quasi).
Außerdem ist ja meine selbstgeschriebene Software eh etwas träge, weil sie für das Berechnen von Drehung und Stauchung der Figur einige Zeit (etwa 30 Prozent der zeit) verbraucht. Dies ist schlecht, weil da die laser in dieser Zeit aus sind, und so ein Dunklerer eindruck entsteht. Vielleiiiiiicht buffere ich mal die Punkte im Controler und spiel sie mehrmals ab, bis der nächste Frame von der Software kommt. mal sehen.
Auch möcht ich demnächst mal double Buffer ausprobieren, mal schaun, obs der geschwindigkeit hilft.
Aufjedenfall: Besser als Paralell dürfte es sein, denn. Stehende Strahlen, wie es jetzt bei mir vorkommt, wenn der rechner beschäftigt ist dürfte es (hoffe ich) nicht mehr geben. Bis jetzt hab ich ja "nur" ein oszi drann, und kann das deswegen noch nicht genau sagen.
Noch ein Positiver Effekt...
Bis jetzt mußte meine Software erst die Punkte nacheinander paralell an den Druckerport ausgeben, das dauerte so lange, wie die Scanner für eine Figur halt benötigten. Danach konnte mein Prog weiter rechnen.
jetzt gehts etwas schneller, weil mein Prog rechnen kann während der Controler die letzten Punkte ausgibt. Bin mal gespannt wie und ob sich das auswirken wird.
ein Gedanke: 50000Punkte/Sekunde hat eigentlich nur dann sinn, wenn ich eine Datei abspiele, oder? Wenn ich Eingriffsmöglichkeit auf die Show in "echtzeit" haben möchte geht das doch garnicht, oder? So läufts ja sowol bei Popelscan als auch bei meiner software.
naja.... wollt das nur mal berichtet haben, damit auch was neues da steht.
gruß derweil
Erich
[Edit: 1000 Verweise auf
www.ntsearch.com entfernt. Wohl einen Wurm eingefangen? - afrob]