Impulsgenerator von |
Hier mal was für alle, die sich mit Zeitabhängigen Abläufen beschäftigen. Dieser Impulsgenerator ruft in einem festlegbaren Zeitabstand regelmäßig eine Aktion auf. [code:1:2e213ffb5a] ; Impulsgenerator ; Copyrigth (C) Dez 2003, Daniel Nobis Impuls# = 20 ; Impulsabstand in ms Graphics 640, 480, GraphicsDepth, 2 SetBuffer = BackBuffer() AppTitle "Impulsgenerator" Start# = MilliSecs() s2# = MilliSecs() Repeat Cls Zeit# = MilliSecs() - Start# Sekunde# = (MilliSecs() - s2#) / 1000 Locate 0,00: Print "Counter: " + Zeit + "ms" Locate 0,10: Print "Abstand: " + Impuls + "ms" Locate 0,30: Print "Frequenz: " + 1/(Impuls#/1000) + "Hz" Locate 0,60: Print "Real:" Locate 0,70: Print "Laufzeit/sek: " + Sekunde# Locate 0,80: Print "Impulse/sek: " + n/sekunde# Locate 0,90: Print "Impulse/Anz: " + n If Zeit# > Impuls# Then Locate 0, 120: Print "Impuls" Zeit# = 0 Start# = MilliSecs() n = n + 1 EndIf Flip Until KeyHit(1) End [/code:1:2e213ffb5a] Das Programm ermittelt auch die Tatsächlichen Impulse pro Sekunde, die weichen allerdings vom Sollwert ab. Wenn man z.B. 1ms einstellt (1000 Herz), dann wird ein Wert von etwa 75 - 100 Herz angezeigt. Dieser Wert entspricht dann der Vertikalen Bildwiederholfrequenz des Monitors!! (nur Fenstermodus) |
von ??? |
Is sicher leicht einzubinden der Code :D ne mach ne gescheite Lib draus! |
von ??? |
Danke für die Tipps. Wer hat mir bloß gesagt, dass man den BackBuffer mit einem "=" aktivieren muss :oops: Die angezeigte Frequenz stimmt nur dann mit der des Monitors überein, wenn man Impuls# auf 1 ms (also 1000 Herz) setzt und im Fenstermodus arbeitet. Bei 50 Hz zeigt er bei mir auch so um die 40 Hz an. Den Locatebefehl verwende ich eigentlich nur, weil ich ihn noch aus QuickBasic kenne, aber Danke für den Tipp. |