Microsoft Word - Org.. - von Gunthard Kraus
Microsoft Word - Org.. - von Gunthard Kraus
Microsoft Word - Org.. - von Gunthard Kraus
Erfolgreiche ePaper selbst erstellen
Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.
3. Programmierung des Kammertones „A“<br />
Wir wollen ein C-Programm schreiben, bei dem alle 8 Tasten nacheinander abgefragt werden und bei einer<br />
gedrückten Taste der gewünschte Ton erzeugt wird.<br />
Bitte beachten:<br />
a) Die Tastenabfrage erfolgt mit bedingten „while“-Schleifen, die in eine Endlosschleife eingebettet sind.<br />
b) Um auch zu sehr tiefen Tönen zu kommen, muss für die Zeitverzögerung eine „unsigned integer“ – Zahl<br />
als Vorgabe benützt werden, denn damit sind Werte zwischen Null und 64535 zulässig.<br />
Außerdem sollte man jetzt schon die einzelnen Tasten (die über Port P1 abgefragt werden!) mit den passenden<br />
Tönen bezeichnen.<br />
Das an Portpin P5^0 ausgegebene Tonsignal erhält die Bezeichnung „ausgang“.<br />
Damit erhalten wir folgendes Listing für unser Programm:<br />
#include <br />
#include <br />
sbit ausgang=P5^0;<br />
sbit C1=P1^0;<br />
sbit D=P1^1;<br />
sbit E=P1^2;<br />
sbit F=P1^3;<br />
sbit G=P1^4;<br />
sbit A=P1^5;<br />
sbit H=P1^6;<br />
sbit C2=P1^7;<br />
unsigned int x;<br />
// Bit-Deklaration für den Tonausgang<br />
// Klaviertasten für Tonleiter <strong>von</strong> Ton „C1“ bis „C2“<br />
// Global deklarierte Zählvariable vom Integer-Typ<br />
void main(void)<br />
{ while(1) // Endlosschleife<br />
{<br />
while(A==0) // Taste für Ton A” gedrückt?<br />
{<br />
for(x=0;x