Impulsgenerator von
mytest
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.



Suche:
(unterstützt mySQL Wildcards ala %)
Titel:
Text:
Autor: