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