Delays bei professioneller Software
Delays bei professioneller Software
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.
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
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
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
Anbieterkennzeichnung - http://www.cyberstoff.de/Impressum
- lightfreak
- Beiträge: 644
- Registriert: Di 09 Okt, 2001 12:00 pm
- Do you already have Laser-Equipment?: of course...
- Wohnort: Nitzahn
- Kontaktdaten:
Re: Delays bei professioneller Software
4. Wie bei einer Soundkarte, DMA benutzen. Wird aber von der Hardware sehr heftig zu realisieren sein.
Simon
Simon
----------------------------------------------------------------------------------
http://www.simon-light.de
http://www.simon-light.de
Re: Delays bei professioneller Software
@John,
In RIYA card we use FPGA (not Coldfire)
Ihor
In RIYA card we use FPGA (not Coldfire)
Ihor
- lightfreak
- Beiträge: 644
- Registriert: Di 09 Okt, 2001 12:00 pm
- Do you already have Laser-Equipment?: of course...
- Wohnort: Nitzahn
- Kontaktdaten:
Re: Delays bei professioneller Software
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
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
----------------------------------------------------------------------------------
http://www.simon-light.de
http://www.simon-light.de
Re: Delays bei professioneller Software
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
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
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?
(möchte eine eigene Soft schreiben)
Die anderen Möglichkeiten (eigener Prozessor o.Ä.) wären bestimmt viel zu aufwändig, oder?
- guido
- Beiträge: 6437
- Registriert: Do 20 Dez, 2001 12:00 pm
- Do you already have Laser-Equipment?: Easylase, Netlase, Laser von 1..15W.
Entwickler von Dynamics + Mamba X4 .
Lasershow Hard / Software . - Wohnort: 32469 Petershagen
- Kontaktdaten:
Re: Delays bei professioneller Software
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 )
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 )
Gruss
Guido
www.mylaserpage.de Dynamics Lasershowsoftware Dynamics Phototour
- Gewerbliches Mitglied -
Guido
www.mylaserpage.de Dynamics Lasershowsoftware Dynamics Phototour
- Gewerbliches Mitglied -
Re: Delays bei professioneller Software
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
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
@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.
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.
- guido
- Beiträge: 6437
- Registriert: Do 20 Dez, 2001 12:00 pm
- Do you already have Laser-Equipment?: Easylase, Netlase, Laser von 1..15W.
Entwickler von Dynamics + Mamba X4 .
Lasershow Hard / Software . - Wohnort: 32469 Petershagen
- Kontaktdaten:
Re: Delays bei professioneller Software
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.
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.
Gruss
Guido
www.mylaserpage.de Dynamics Lasershowsoftware Dynamics Phototour
- Gewerbliches Mitglied -
Guido
www.mylaserpage.de Dynamics Lasershowsoftware Dynamics Phototour
- Gewerbliches Mitglied -
- tracky
- Beiträge: 4869
- Registriert: Di 11 Mär, 2003 1:51 pm
- Do you already have Laser-Equipment?: Hat sich im Laufe der Jahre doch einiges angesammelt
- Wohnort: Germany, Seefeld bei Werneuchen
- Kontaktdaten:
Re: Delays bei professioneller Software
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.
Gruß Sven
Laser? Was ist das? Licht aus super erschwinglichen Restbeständen
Laser? Was ist das? Licht aus super erschwinglichen Restbeständen
Re: Delays bei professioneller Software
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
Gruß Flo
F S T Discohits, Laserrausch -
Laser Abheben in die Welt der Strahlen!
Suche einen Laser Physics - Reliant300WC Weißlichtlaser...
Laser Abheben in die Welt der Strahlen!
Suche einen Laser Physics - Reliant300WC Weißlichtlaser...
Re: Delays bei professioneller Software
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?
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?
Wer ist online?
Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast