Forum: Mikrocontroller und Digitale Elektronik Sound Befehl für mehrere Piepser gleichzeitig


von andi (Gast)


Lesenswert?

Hallo!

Ich habe mich seit gestern Abend mit dem Befehl Sound in Bascom 
beschäftigt, und dieser funktioniert auch wunderbar für einen Piepser.

Interessant wäre jedoch, ob dies für 2 oder mehr Piepser auch möglich 
wäre, um kleine Melodien auf diesen abzuspielen.

Habe mir dies auch überlegt und habe einen kleinen Testcode dazu 
geschrieben, jedoch geben die Piepser nur ein Pfeiffen bzw. kurzes 
Knacken anstatt eines Tones wie mit der sound Funktion aus.

Hier ein Auszug des Codes:

Summer1 Alias Portd.7
Summer2 Alias Porta.2

Dim Freq1 As Integer
Dim Freq2 As Integer
Freq1 = 500
REM verschiedene Werte von 10 - 15000 getestet
Freq2 = 1500
REM verschiedene Werte von 10 - 15000 getestet

Dim I As Long
Dim Var1 As Integer
Dim Var2 As Integer
Var1 = 1
Var2 = 1

Do

For I = 1 To 2147483646 Step 1

If Var1 = Freq1 Then
     If Summer1 = 1 Then
         Summer1 = 0
     End If
     If Summer1 = 0 Then
         Summer1 = 1
     End If
     Var1 = 1
End If

If Var2 = Freq2 Then
     If Summer2 = 1 Then
         Summer2 = 0
     End If
     If Summer2 = 0 Then
         Summer2 = 1
     End If
     Var2 = 1
End If

Var1 = Var1 + 1
Var2 = Var2 + 1

Next I

Loop


Das ganze sollte ein Rechtecksignal auf zwei Augänge geben, jedoch mit 
verschiedenen Frequenzen.
Wie oben gesagt funktioniert das alles aber nicht richtig.

Kann mir bitte jemand sagen wo der Fehler liegt?
Ich komme einfach nicht drauf.

mit freundlichen Grüßen

Fuchs Andreas

von andi (Gast)


Lesenswert?

Für andere die dieses Thema verfolgt haben:

Die Lösung ist ganz einfach, habe es einfach mit zwei 
aufeinanderfolgenden Sound Befehlen gelöst, die nur sehr kurz ausgeführt 
werden, klingt dann als würden sie beide gleichszeitig angesteuert 
werden. Leider ist das Ganze sehr ungenau im Zeitablauf.

Beispiel:

Sound Summer1 , 1 , 1500
Sound Summer2 , 2 , 500

Funktioniert einwandfrei, wahrscheinlich auch für 3 oder mehr Piepsern.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.