Sinus-Frequenz mit Mega8 erzeugen

Gast #87747
Lesenswert?
• ▲
▼
Moin moin,

wie stelle ich es am einfachsten an mit einem Mega-8 2 feste Frequenzen
(Sinus) zu erzeugen (entweder die eine oder die andere). Die Frequenzen
sind 1200 und 2200 Hz.
Ich dachte da an PWM. Sollte ich die Werte ins Flash legen oder lieber
jedesmal neu berechnen? Hat evtl. jemand etwas Beispiel-Src, möglichst
in C.

Und dann kommt noch das ganze andersrum. Will meinen, wie erkenne ich
am einfachsten diese 2 Frequenzen?

Das ganze soll für ein AFSK-Modem mit 1200 Baud sein.

Danke für Tips!
Gast #87749
Lesenswert?
• ▲
▼
>>Hier findest Du oberflächliche Infos.

so kann man das nicht formulieren: auf oberflächliche Fragen bekommst
du in diesem Forum allenfalls ebenbürtige Antworten, wenn du dich mit
der Materie auseinandersetzt und detailierte Fragen stellst folgen die
prägnaten Antworten für gewöhnlich innerhalb von einzelnen Stunden.

Zur Lösung: einen Quadranten vorgerechnet im Flash abspeichern und
timergesteuert durchlaufen. Die Erkennung wurde vor Kurzem auch
erklärt: Eingangssignal auf Komperator und dann auf einen ext.
Interrupt. Der Int. startet einen Timer und je nach dem ob der nächste
Puls (=Int.) oder der Timer zuschlägt ist es die eine oder die andere
Frequenz.

Die Berechnung der Preload und Comparewerte für die Timer in
Abhängigkeit der Frequenzen und deines Quarzes kannst du mit Hilfe des
avr-Datenblattes recht einfach errechnen.

grüsse leo9
Gast #87754
Lesenswert?
• ▲
▼
moin moin,

danke für die Infos. Werde das mal durcharbeiten.
Das dds-Projekt habe ich mir bereits angesehen. Allerdings will ich
nicht so viele Pins dafür "opfern".
Die nächsten Fragen kommen bestimmt. Dann wirds sicherlich wesentlich
konkreter. Derzeit geht es erstmal um den "groben Entwurf" wie das
überhaupt realisiert werden soll.

Jens
Gast #87756
Lesenswert?
• ▲
▼
Hallo Baeri,

habe gerad die 1. Prototyp-Platine geätzt.
Die 2 Töne werde ich wie hier vorgeschlagen erzeugen (Sinus berechnet
im Flash ablegen).
Erkennen der unterschiedlichen Töne will ich folgendermaßen
realisieren: Das Signal gelangt auf einen OP der dieses "gnadenlos
übersteuert". Somit erhalte ich ein Rechteck. Der Ausgang des OP geht
dann auf einen Interrupt-Eingang der ATMega. Bei Flankenwechsel wird
der Interrupt ausgelöst und ich starte einen Timer, den ich beim
nächsten Flankenwechsel stoppe. Aus der Zeit ermittel ich, welche der 2
Frequenzen es war (so die Theorie).

Wenns läuft werde ich hier mal darüber berichten.

Jens
Gast #87757
Lesenswert?
• ▲
▼
Hi Jens,
wollte nur mal wieder nachfragen, wie es bei dir ausschaut,
und ob du schon brauchbare ergebnisse erziehlt hast?
Ich habe vor kurzem auch versucht, selber etwas auf die Beine zu
stellen, aber mit meinen sehr mageren AVR Kenntnissen wird das wohl
noch eine weile in Anspruch nehmen! :-(
Gast #87759
Lesenswert?
• ▲
▼
Unter diesem Link laufen bereits einige gute Projekte. Die wollen zwar
Bausätze verkaufen und werden daher die SW nicht hergeben aber allein
die Schaltungen geben schon interessante Ansatzpunkte.
www.bausatz.aatis.de/AS096_9k6-Ansteckmodem/as096_9k6-ansteckmodem.html

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.