Moin!
Wenn...
...der Controller sonst nix tun muss,
...es keine "Squeeze"-Taste werden soll (d.h. Punkt- und Strichtaste nicht gleichzeitig gedrückt werden können),
...die Gebegeschwindigkeit nicht variabel sein soll
...und gleich ein fertiger Ton rauskommen soll,
kann man es ganz einfach so machen:
(PORTB.0 = Ton-Ausgang, PINB.1 = Punkt-Eingang, PINB.2 = Strich-Eingang, Tasten gehen nach Masse, PullUp-Widerstände aktiviert)
Code:
Config PinB.0 = Output 'Ausgangs-Pin für den Ton
PortB.1 = 1 'PullUp aktiviert
PortB.2 = 1 'PullUp aktiviert
Do
If PinB.1 = 0 then 'Punkt-Taste aktiviert:
Sound PortB.0, X, Y 'Kurzer Ton...
Waitms Z '...und Pause
End if
If PinB.2 = 0 then 'Strich-Taste aktiviert:
Sound PortB.0, 3X, Y 'dreimal so langer Ton...
Waitms Z '...und Pause
End if
Loop
Der Befehl "Sound, X, Y" erzeugt einen Ton, dessen Frequenz der Prozessortakt/Y ist (d.h. je kleiner Y, desto höher der Ton), und der für X Schwingungen ausgegben wird (d.h. je größer X, desto länger der Ton). Du müsstest also nur etwas mit den Werten X und Z (für Waitms) rumspielen, damit die Zeiten stimmen.
Und wenn Du Interese an einem Code für eine "richtige" Squeeze-Taste hast, schick´ mir doch eine PN. Das war nämlich eins meiner letzten Projekte
73,
Daniel
Lesezeichen