Hallo, hätte für mich da mal jemand nen Denkansatz: Ich will über einen Port einen Doppelton (Überlagerung von zwei Frequenzen) ausgeben. In Bascom gibts ja den Befehl DTMF out, was mir nun ja sagt dass es prinzipiell funktioniert. Die Frage ist nur wie. Danke Michi
hi, wenn's kein sinus sein muss aber echteck sein darf ist's ganz einfach. z.b. timer0 setzt einen port alle 1/200 sec auf low, 1/200 sec später wieder auf high. damit haste mal 'ne grundfrequenz von 100Hz. timer1 toggelt denselben port 1000x je sekunde, jetzt haste 'ne übergelagerte freq von 1 KHz. fertig ist der doppelton. gruss und fröhliches probieren, harry
>In Bascom gibts ja den Befehl DTMF out, was mir nun ja sagt dass es >prinzipiell funktioniert. Die Frage ist nur wie. www.atmel.com hat noch komplett fertige AN dazu. Ansonsten bei eBay gibts zZ. den CM8888 samt Quarz im Zweierpack, identisch zum MT8888, falls du eine HW Lösung vorziehst. Gruß Hagen
Jo danke mal soweit. werd mal etwas probieren. Das Prob istr ja dass es keine Standart DTMF Töne sein sollen, sondern eben andere Frequenzen.
also habs jetzt mal so probiert, aber so richtig funktionierts net. Weiß da jmd. eine Lsg oder sieht meinen garantiert dummen Fehler? Blick grad überaupt net mehr durch. Vielen vielen Dank. Michi $regfile = "2313def.dat" $crystal = 8000000 Config Timer0 = Timer , Prescale = 64 Config Timer1 = Timer , Prescale = 1 Config Pind.6 = Output Config Pind.5 = Output On Ovf0 Erster ' On Ovf1 Test Enable Timer0 Enable Timer1 Enable Interrupts Do Loop Erster: Portd.6 = Not Portd.6 Timer0 = 10426 Return Test: Portd.6 = Not Portd.6 Timer1 = 30426 Return
Hallo Michi, ich habe so etwas vor langer Zeit mal auf einem Zilog µC gemacht. Das Prinzip was so: - konstante Sinustabelle erzeugen (beim Amiga Assembler gab's dazu eine Funktion, beim AVR weiß ich's nicht.) - der Offset beim lesen aus der Tabelle bestimmt die Frequenz - bei gewünschter Überlagerung von zwei Frequenzen führst Du einfach zwei Offsets für die jeweiligen Frequenzen und addierst Die Werte aus der Tabelle und erzeugst damit den gewünschten Ton. Das hat bei der Realisierung einer speziellen Fernabfrage/Steuer-Box tadellos funktioniert. Außerdem hat diese Methode den Vorteil, dass aufwendige Berechnungen in Realtime vermieden werden. Vielleicht ist's ja ein Ansatz wert! Grüße Günni
hi, funktioniert prinzipiell so schon, nur dass du die freq. aus timer0 so gur wie nicht mitkriegst, weil sie die gleiche amplitude erzeugt wie die von timer1. nehm doch mal for timer1 portd.5. das signal von d.6 über R1 widerstand 10K auf einen R2 widerstand gegen masse 10K, das signal von d.5 über R3 widerstand 47K auf den knoten R1/R2. jetzt solltest du ein 20% moduliertes signal am knoten R1/R2 abnehmen können. haste oszi? -> gut, wenn nicht, soundcartenoszi geht bei nf allemal. gruss, harry
Günni: Hierzu gibt es von Motorola die sehr schöne Application Note AN1771: Precision Sine-Wave Tone Synthesis Using 8-Bit MCUs google mal nach +motorola +an1771 gibt 140 Treffer Die Frequenz-Auflösung ist theoretisch beliebig genau, sie hängt nur von der Sample-Frequenz und der Länge der Tabelle ab. Ausgegeben wird ein Sinus, kein Rechteck! Ich implementiere sie gerade auf einem 68hc908.
Günni: Hierzu gibt es von Motorola die sehr schöne Application Note AN1771: Precision Sine-Wave Tone Synthesis Using 8-Bit MCUs google mal nach +motorola +an1771 gibt 140 Treffer, bestimmt sich auch welche mit eigenen Kommentaren / Berichten dabei Die Frequenz-Auflösung ist theoretisch beliebig genau, sie hängt nur von der Sample-Frequenz und der Länge der Tabelle ab. Ausgegeben wird ein Sinus, kein Rechteck! Ich implementiere sie gerade auf einem 68hc908.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.