Tonerzeugung mit AVR

Gast #6251211
Lesenswert?
• ▲
▼
Hallo Forum
Habe in einem Programm das gefunden:
1
// Diese Werte berechnen sich aus "8MHz / Frequenz des Tones / 2" Sollte ein anderer CPU-// Takt verwendet werden muessen die Werte neu berechnet werden.
2

3
#define TON_C    15152l
4
#define TON_CIS  14545l
5
#define TON_D    13468l
6
#define TON_ES  12618l
7
#define TON_E    12121l
habe versucht das ganze nachzurechnen. Leider komme ich nicht auf das 
Ergebnis. Falsche Anleitung oder wie kann ich die Frequenz berechnen um 
einen Ton auszugeben?
Wie kann ich die Tonhöhe berechnen, z.B. 440Hz mit delay?
Kennt jemand eine gute Beschreibung dazu?
LG Klaus
#6251293
Lesenswert?
• ▲
▼
Hallo Klaus


Klaus schrieb:
> Wie kann ich die Tonhöhe berechnen, z.B. 440Hz mit delay?
> Kennt jemand eine gute Beschreibung dazu?

Einen einzelnen Ton kann man wie folgt berechnen bzw. erzeugen:

440Hz entspricht einer Periodendauer von ca. 2,273ms (1/440).
Du musst also einen Ausgangspin in einer schleife für die halbe Zeit, 
also  1,1365 ms einschalten und 1,1365 ms ausschalten.

Grüße
Manfred

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.