Ein NF-Signalgenerator für Rechteckimpulse kann leicht über Software gebildet werden, indem man eine Leitung im passenden Zeitraster ein- und ausschaltet. Das hier vorgestellte Programm erzeugt Signale bis 1 kHz.
Mit einem Kopfhörer, einem Lautsprecher oder dem Piezo-Schallwandler lassen sich die Signale hörbar machen.
Das eigentliche Problem besteht darin, das Signal mit ausreichend zeitlicher Präzision zu erzeugen. Die Zeitsteuerung erfolgt hier durch Abfrage und Vergleich mit der RSCOM.DLL-Funktion TIMEREAD, die die Zeit in Millisekunden seit dem letzten TIMEINIT liefert. Die Dauer wird als Realwert übergeben und hat eine Auflösung im Mikrosekundenbereich.
Trotz der guten zeitlichen Auflösung kommt es unter Windows zu einer gewissen Unsicherheit der zeitlichen Steuerung, weil dem Programm nur eine begrenzte Rechenzeit zugestanden wird. In der Praxis treten kurze Lücken im Millisekundenbereich auf, die einen unreinen Ton bewirken.
Durch den Einsatz der
DLL-Funktion REALTIME wird die Zeitsteuerung verbessert. Das Programm erhält
dabei vorübergehend eine höhere Priorität. In dieser Zeit reagiert der PC z. B.
nicht auf Mausereignisse. Man muss also unbedingt darauf achten, diesen Zustand
mit NORMALTIME wieder aufzuheben.
Frequenz = HScroll1.Value
Periode = 1000 / Frequenz
REALTIME
TIMEINIT
For n = 1 To Frequenz
DTR 0
While TIMEREAD < (Periode * n)
Wend
DTR 1
While TIMEREAD < (Periode * (n + 0.5)): Wend
Next n
NORMALTIME
...