04.01.2014 Aufrufe

Microsoft Word - Org.. - von Gunthard Kraus

Microsoft Word - Org.. - von Gunthard Kraus

Microsoft Word - Org.. - von Gunthard Kraus

MEHR ANZEIGEN
WENIGER ANZEIGEN

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

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!