martinshorn programmieren
Hallo
wir bauen gerade beim thw ein kart nun soll es auch ein martinshorn bekommen. das möchte ich in bascom programmiieren. tönne mit timer 0 vom atmega48 kann ich auch programmieren doch das martinshorn setzt sich aus zwei tonhöhen zusammen die immer abwechseldn gespielt werden.
wie kann man dies programmieren
Code:
$regfile "m48def.dat"
$crystal = 1000000
$baud = 1200
Ddrd = &B11110000
Dim Timerpreset As Byte
On Timer0 Ontimer0
Tccr0 = &B00000010
Timsk.toie0 = 1
Sreg.7 = 1
Do
Portd.5 = 1 : Portd.6 = 0 : Portd.7 = 0
Waitms 80
Portd.5 = 0 : Portd.6 = 1 : Portd.7 = 0
Waitms 80
Portd.5 = 0 : Portd.6 = 0 : Portd.7 = 1
Waitms 80
Loop
Ontimer0:
Timer0 = Timerpreset
Toggle Portd.4
Incr Timerpreset
Return
mein code erzeugt jedoch nur eine aufschwellenden ton habt ihr eine idee wie ich es realisieren kann es muss bis spätestens dienstag fertig sein.
lg
martin
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:
Zitat von Furtion
laut wiki gibt es sind die verschiedenen Frequenzen von dem Ton ja
2 oder 4 kHz (Stadtbetrieb) oder 0,5 und 2 kHz (Landbetrieb).
Nicht ganz.
Es ist nicht so, dass der eine Ton 2 und der andere 4 kHz hat (das wär als Intervall ne Oktave, also a'-a''; viel zu gross; bei 0,5 und 2 kHz wärs noch extremer mit 2 Oktaven; einfach mal mit nem Soundgenerator testen, wie sich das anhört)
Das Intervall ist immer das gleiche, z.b. das genannte a'–d" (müsste ne Quarte sein; schon lange her). Möglich wären demnach auch g'-c'', oder c'-f''.
Das Tonverhältnis ist also immer gleich. Es soll eben nur beachtet werden, dass der untere Ton 2kHz nicht unter- und der obere 4 kHz nicht überschreitet. Wo man das Intervall aber dort dazwischen ansiedelt, ist mehr oder weniger freigestellt.
Das Beispielintervall a'-d'' hätte z.B. als Grundfrequenzen 440Hz und 587,33Hz.
Hier kommt bei elektronischen Hörnern (v.a. im Landbetrieb) noch die Verwendung eines Filters und des Residuum-Effekts dazu; d.h. die Frequenzen, die man hört, werden garnicht ausgesendet, sondern harmonische Vielfache davon. Vorteil hiervon ist die höhere Reichweite der Frequenzen; Das Ohr bzw. unser Gehirn errechnet daraus wieder die Grundfrequenz.
Mit Cool-Edit kann man sich da wunderbar spielen; mal so Frequenzen erzeugen. Mach ich einfach mal und häng ein Demo hier an.
EDIT: Hab in der ZIP mal 2 MP3s angehängt; einmal nur das reine Sinus-Signal mit 440/587 Hz und einmal nur die Oberwellen, ohne die genannten Frequenzen.