Hallo zusammen,
ich habe mir folgende Funktion ausgedacht um eine Frequenz zu erzeugen:
Code:
Sub Genhz(byval Freq As Integer , Byval Lenms As Integer)
Dim Idelay As Integer
Dim Tgone As Integer
Tgone = 0
Idelay = Freq / 2
Idelay = 1 / Idelay
Idelay = Idelay * 1000
While Tgone < Lenms
Portd.5 = 1
Waitms Idelay
Tgone = Tgone + Idelay
Portd.5 = 0
Waitms Idelay
Tgone = Tgone + Idelay
Wend
End Sub
dieser Funktion wird zum einen die Frequenz, zum anderen die dauer der Frequenz übergeben.
Es erzeugt auch einen Ton, allerdings funktionieren 2 Sachen nicht:
1) Ist es immer ein sehr hoher Ton, selbst bei 200 Hz ist er noch immer sehr hoch.
2) Die Schleife wird nicht verlassen. Die Variable Tgone zählt zusammen wie lange die Schleife schon läuft anhand der gewarteten Zeit um die Wellen zu formen, jedoch macht es endlos weiter. Leider habe ich noch keine gute debugging Infrastruktur und muss dort mit Logik rangehen.
Doch ich finde keinen Fehler :/
Weiss jemand Rat?
Es grüßt,
Basteltisch
Lesezeichen