Hallo,
bei Idelay = 500 / Freq komme ich auf ganz andere Ergebnisse als bei meiner Rechnung. welche ist denn nun richtig?

Ich habe meinen QUellcode abermals geändert, diesesmal benutze ich für alle Variablen den Typ Single (wegen den Nachkommastellen).

Der ganze Code:

Sub Genhz(byval Freq As Single , Byval Lenms As Single)
Dim Idelay As Single
Dim Tgone As Single

Tgone = 0

Idelay = Freq / 2
Idelay = 1 / Idelay
Idelay = Idelay * 1000

While Tgone <= Lenms
Toggle Portd.5

Tgone = Tgone + Idelay

Waitms Idelay


Wend
Return
End Sub

Bei Timern schreckt mich ein wenig ab dass ich nicht wie ich es aus anderen Sprachen kenne einfach einen Milisekundenwert angeben kann sondern mit der Taktfrequenz rumrechen muss, was meiner Meinung nach eine Fehlerquelle ist.

stimmt das so?

Es grüßt,
Basteltisch

edit: fehler ist weg, habs nicht declared

edit2: Grundsatzproblem ist immernoch da, es kommt immer der selbe Ton und aus der Schleife raus will er auch nicht.