erstellt
12.02.2013 |
||
Tonausgabe |
||
Mit dem Bascom Befehl
"Sound" kann relativ einfach ein Ton oder eine Tonfolge an jeden
X beliebigen Ausgangspin ausgegeben werden. Im folgenden Beispiel wurde am Atmega 8 der Ausgangspin B.1 mit einem Piezo versehen. Wenn ich hier von Piezo spreche dann ist ein Piezo Lautsprecher gemeint , und kein Piezo Summer. Mir ist es in den letzten Jahren immer wieder mal passiert das der von mir bestellte Piezo Schallgeber ( Lautsprecher ) in Wahrheit als ein Piezo Summer geliefert wurde. Ein Piezo Schallgeber ist einfach nur ein kleiner Lautsprecher während eine Piezo Summer schon Elektronik beinhaltet und der schon im Gegensatz zu einem Lautsprecher einen Ton abgibt sobald eine Gleichspannung angelegt wird. Äußerlich besteht meist kein Unterschied so das ich mich bei einigen Schaltungen schon mal wundern musste das der vom Mikroprozessor erzeugte Ton, zwar vorhanden war, aber nicht in der von der Programmierung vorgesehenen Frequenz ausgegeben wurde. |
||
Um
Beispielsweise einen Ton von ca.. 1000 Herz und einer Länge von
ca.. 1 Sekunde zu erzeugen , muss wohl vorher ein wenig
gerechnet werden, weil die angegebenen Werte innerhalb der
Programmierung zum einen abhängig sind von der Taktfrequenz des
Atmega , und zum anderen sich die beide Werte der Tonhöhe und
der Tonlänge in einem gewissen Verhältnis zueinander stehen. |
||
Die
Befehlseingabe sieht folgendermaßen aus: Sound Portd.1,1004,83 Der Befehl lautet also "Sound" anschließend wird der benutzte Ausgang angegeben hier mit Portd.1 dann folgt der Wert für die Tonlänge und anschließend der Wert für die Tonhöhe. Folgendermaßen berechnet sich die Tonfrequenz von 1000 Hz: Wert für Frequenz = Taktfrequenz / ( 12 * Soll-Frequenz) Wert für Frequenz = 1000 000 / ( 12 * 1000 Hz) Wert für Frequenz = 1000 000 / 12000 Wert für Frequenz = 83 Anschließend berechnen wir den
Wert für die Tonlänge von 1 Sekunde:
Wert für Tonlänge =Taktfrequenz * Tonlänge in Sekunde / (12 *
Wert für Frequenz)Wert für Tonlänge = 1000 000 * 1 /(12*83) Wert für Tonlänge = 1000 000 / 996 Wert für Tonlänge = 1004 |
||
aktualisiert
18.08.2013 |
||
Copyright by Ms 2009 |