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