Dieser Artikel ist noch lange nicht vollständig. Der Auto/Initiator hofft das sich weitere User am Ausbau des Artikels beteiligen.
Das Ergänzen ist also ausdrücklich gewünscht! Besonders folgende Dinge würden noch fehlen: C und Assembler-Programmbeispiele |
DTMF - (Dual Tone Multiple Frequency: „Doppeltonmehrfrequenz“) ist die bei der analogen Telefontechnik gebräuchliche Wähltechnik und ist das heute überwiegend in der Telefonvermittlungstechnik genutzte Verfahren zur Übermittlung der Rufnummer an das Telefonnetz oder einer Telefonanlage.
Grundlagen
Je nach Telefonziffer werden 2 Frequenzen üblagert.
1209 Hz | 1336 Hz | 1477 Hz | 1633 Hz | |
697 Hz | 1
|
2
|
3
|
A
|
770 Hz | 4
|
5
|
6
|
B
|
852 Hz | 7
|
8
|
9
|
C
|
941 Hz | *
|
0
|
#
|
A
|
Diese Töne werden von der Telefonvermittlung erkannt und der Teilnehmer mit der entsprechenden Nummer verbunden. Wobei die Buchstaben A-D nur bei speziellen Anwendungen verwendet werden.
AVR & DTMF
Bascom
Mit Bascom kann man leicht einen solchen Ton generieren:
Dtmfout Syntax: Dtmfout Stringtanger, Dtmftime
Dabei ist Dtmftime die Dauer des Tones´. Damit ein Telefon den Ton als einen DTMF-Ton erkennt, sollte die Dauer min. 70ms betragen.
Kot Beispiel:
$regfile = "2313def.dat" $crystal = 4000000 Dim Counter As Byte Enable Interrupts Do For Counter = 0 To 15 Dtmfout Counter , 200 Waitms 250 Next Counter Wait 1 Loop End
Das obrige Programm erzeugt alle 16 DTMF-Töne nacheinander auf dem OC1 Port eines AVRs. Bascom benützt Timer1 für die DTMF Generierung.
Folgendes sollte beim Programmieren beachtet werden:
Die Reihenfolge ist: 0,1,2,3,4,5,6,7,8,9,A,B,C,D,*,#.
Das bedeutet der DTMF-Wert für die Raute, ist 15. Für die Zahl 3 ist er 4...usw
Autor: hackgreti