Page 1 of 1

Delays bei professioneller Software

Posted: Wed 16 Jul, 2003 10:31 am
by ense
Wenn ich das richtig seh, ist es bei "Popelscan" so, dass immer der Punkt ausgegeben wird, der angefahren werden soll und danach ein Software-Delay erfolgt. Dieses Delay hat Guido mittels Schleifen realisiert. (verbessert mich bitte, falls etwas nicht stimmt)

Wie wird das eigentlich bei professioneller Software realisiert, auch mit Software-Delays?
Das Problem is nämlich, dass man bei Windows keinen vernünftig präzisen Timer hinbekommt.

Re: Delays bei professioneller Software

Posted: Wed 16 Jul, 2003 1:15 pm
by john
Hi,

dagegen gibts nur 3 Abhilfen:

- In Windows9x (NT, 2000, XP unmöglich) alle IRQs abschalten. Laserpainter von Medialas arbeitet so
- Ausgabe durch einen unabhängigen Prozessor erledigen lassen. Bei Pangolin / Riya macht das ein Coldfire auf der Ausgabekarte, bei LDS nimmt man dafür einen eigenen Slaverechner
- Einen PC mit Echzeitbetriebssystem verwenden. Lasergraph DSP und Lobo Systeme dürften so arbeiten, haben aber trotzdem vermutlich noch "aktive" Ausgabekarten

Gruß

John

Re: Delays bei professioneller Software

Posted: Wed 16 Jul, 2003 3:20 pm
by lightfreak
4. Wie bei einer Soundkarte, DMA benutzen. Wird aber von der Hardware sehr heftig zu realisieren sein.

Simon

Re: Delays bei professioneller Software

Posted: Wed 16 Jul, 2003 5:17 pm
by riya
@John,
In RIYA card we use FPGA (not Coldfire)

Ihor

Re: Delays bei professioneller Software

Posted: Wed 16 Jul, 2003 6:10 pm
by lightfreak
Hi Ihor,

the original question was, how do professional Lasercards transfer continous data to the DA Converter. Do you use DMA for the transfer or a FIFO in your FPGA?

Simon

Re: Delays bei professioneller Software

Posted: Wed 16 Jul, 2003 8:00 pm
by riya
Hi Simon,
FPGA, in difference to microprocessors, allows to organize realy multitasking work.
We don't use FIFO and DMA.
Two buffers RAM (one - for load information, second - for out on DACs) allows us in Target mode to provide up to 200 000 PPS with quaranted accuracy 30 nsec.

Ihor

Re: Delays bei professioneller Software

Posted: Thu 17 Jul, 2003 1:00 pm
by ense
Hmm, ich werd wahrscheinlich doch nen Timer unter Windows nehmen müssen.
(möchte eine eigene Soft schreiben)
Die anderen Möglichkeiten (eigener Prozessor o.Ä.) wären bestimmt viel zu aufwändig, oder?

Re: Delays bei professioneller Software

Posted: Thu 17 Jul, 2003 2:56 pm
by guido
Hiho,

Timer von Delphi kannst du abhaken.
Minimale Auflösung lt Timer 1ms, in der Realität knapp 8ms+Ausgabezeit an den Port ( ca 2ms auf nem 350er AMD ) .
Das heisst du kommst auf max 1 KHz Ausgabespeed. Viel zu wenig.
Ich schaffe mit meiner Lösung und "Vollgas", d.h. abgeschaltete Screenausgabe, auch nur ca 4-5K Punkte pro sec. Auch noch zu wenig. Auf nem grösserem hab ichs noch nicht gemessen.

Es stimmt schon. Vernünftig geht sowas nur mit nem externen Prozessor / FPGA
und vieeel Speicher. ( Ein ILDA File ist gerne mal mehrere MB )

Re: Delays bei professioneller Software

Posted: Thu 17 Jul, 2003 4:07 pm
by ralf-k
Hi!

mm da muß es aber noch eine Andere lösung geben.
Gibt es keinen Zähler??
In Q-Basic geht der ja so:

For x=1 to 10000000
Next x

bei nem 700P3 ist so bei 440000 ca eine Sekunde.
Bei kleineren Rechnern noch mehr.
Damit kann man einigermaßen genaue Ergebnisse erziehlen.
Man muß nur Forher den rechner Calibrieren, alo man muß wissen wieviel eine Sekunde oder so ist, damit man es umrechnen kann.

Damit schaffe ich es über 20KHz aus dem Druckerport heraus zu bekommen.

Gruß Ralf

Re: Delays bei professioneller Software

Posted: Thu 17 Jul, 2003 4:44 pm
by ense
@Ralf-K
Bei deiner Schleife is die CPU unter Windows 100% ausgelastet. Kommt Windows auf die Idee mal nebenbei noch was anderes zu machen oder du bewegst z.B. deinen Mauzeiger, nimmt Windows von deinem Programm ein bisschen Rechenleistung weg und schon dauert dein Delay mittels Schleife länger als sonst. Also sind Schleifen eher weniger geeignet als Timer.

Re: Delays bei professioneller Software

Posted: Thu 17 Jul, 2003 4:45 pm
by guido
Stimmt, nur Bit setzen und löschen schaffe ich auch mir der Speed.
Aber da meine Soft nebenbei noch jeden aus dem Datenfeld geholten Punkt umrechnet ( Drehen Spiegeln, rotieren, Gain ,Pumpen , . . . .) wird sehr langsam.
Hab gerade mal die "Bit setzen / löschen" Nummer durchgespielt.
Unter Delphi 3, Portausgabe per ASM schaffe ich 41 KHz.
Wenn ich also meine Soft auf ILDA umstricke sind locker 20 K drin nehme ich an.
Aber meine MOTs brauchen das nicht ganz so schnell :-)

Wenns mal schnellere Scanner gibt baue ich mal eine reine ILDA - Ausgabesoftware für meine Karte. Mal sehen was da so drin ist.

Re: Delays bei professioneller Software

Posted: Thu 17 Jul, 2003 6:06 pm
by tracky
Man,man,man, wieder soviel Projekte im Kopf! Aber das wäre mal ne feine Sache, wenn Deine KArte ILDA Format umsetzt. Habe mir nämlich jetzt Galvos gekauft, die darauf warten gute Bilder zu machen.

Re: Delays bei professioneller Software

Posted: Thu 17 Jul, 2003 10:14 pm
by fst-laser
Könnte man nicht via API, Windows mitteilen, das "mein" Programm die höchste Priorität erhalten soll? Ist halt die Frage wie's dann immernoch mit dem Timing aussieht, den Windows läuft ja weiter <img src="/images/graemlins/smirk.gif" alt="" />.
Gruß Flo

Re: Delays bei professioneller Software

Posted: Fri 18 Jul, 2003 9:25 am
by ense
Prioritäten setzt man mit SetPriorityClass. Hab ich auch schon probiert, bringt aber nichts.
Irgendwann muss ja Windows mal das Programm unterbrechen, ansonsten würde ja das restl. System einfrieren.
@FST-Laser:
Wie hast du deine Delay-funktion gebastelt? Benutzt du den Windowstimer, den Multimediatimer oder z.B. QueryPerformanceCounter?