Forum: Mikrocontroller und Digitale Elektronik MelodieGenerator


von Lee (Gast)


Lesenswert?

Hallo,

ich muss ein MelodieGenerator in C Programmieren für den atmega 88.
Ich habe den Timer 1 getoggelt so das ich einen Ton rausbekomme.
Mein Problem ist, ich weiss nicht wie ich jetzt verschiedene Töne 
rausbekomme.
Ich kann es ohne toggeln machen mit einer schleife und interrupt aber 
die Frequenzen sind dann ungenau.
Also brauch ich die Einstellung von Timer1 um verschiedene Töne zu 
bekommen.

Meine Einstellung:

void Timer_Init1(void)
{
  TCCR1A |= (1<<COM1B0);    // COM1B0 zum toggeln
  TCCR1B |= (1<<CS10);    //ohne Vorverteiler
  OCR1A = 10;      //Frequenz des Tones
  OCR1B = 10;//4608
}

Bei OCR1A sollte ich dann eigentlich die höhe des Tones einstellen 
können, es funktioniert aber nicht, wo liegt mein Fehler?

Meine zweite Frage:
Wenn ich das dann einstellen kann, wie überschreibe ich den OCR1A damit 
ich ein Lied abspielen kann.

Mit einem Array und einer Schleife aber da hatte ich auch einen Fehler.

Wäre dankbar für Hilfe :)

: Verschoben durch User
von Jörg (Gast)


Lesenswert?

Such mal nach dem Stichwort DDS. Das ist es, was Du brauchst...

;-)

von Jörg (Gast)


Lesenswert?

... oder:

http://elm-chan.org/works/mxb/report.html

- wenn Du direkt abschreiben willst!

von Lee (Gast)


Lesenswert?

Hii Jörg,

vielen Dank.

Könntest du noch vlt den Code Posten.
Wäre echt nett.

von Guest (Gast)


Lesenswert?

Lee schrieb:
> Hii Jörg,
>
> vielen Dank.
>
> Könntest du noch vlt den Code Posten.
> Wäre echt nett.

Hallo! Ich soll eine Aufgabe bearbeiten, die mir offensichtlich von 
jemandem gestellt wurde. Da ich keine Lust habe mich einzuarbeiten, 
frage ich nun in einem Forum nach Hilfe. Dort wurde mir zwar ein Link 
gezeigt, allerdings war es keine Facebook Seite und überhaupt war dort 
mehr Text als Bilder. Offensichtlich habe ich die Seite also sofort 
wieder zugemacht, und frage jetzt, ob mir jemand nicht vielleicht noch 
beim Copy-Pasten helfen kann, weil mir das auch zu viel Arbeit ist.

Protipp: Der Code ist auf der Seite von Elm-Chan verlinkt.

Wieso machst du überhaupt etwas technisches wenn du davon offensichtlich 
keine Ahnung hast und auch 0 Lust dich zu informieren?

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Lee schrieb:
> ich muss ein MelodieGenerator in C Programmieren für den atmega 88.
Das ist wirklich mal eine schöne einfache und skalierbare Hausaufgabe. 
Fang einfach mal an, 1 Ton zu erzeugen, und dann probierst du eine 
Tonfolge zu machen und fragst, wenn es konkrete Probleme gibt.

Lee schrieb:
> es funktioniert aber nicht,
WAS funktioniert nicht?
WAS hast du erwartet und WAS hast du bekommen?
WAS könnte der Grund für die Differenz sein?
Wenn du dir diese Gedanken machst und uns mitteilst, dann kann dir eine 
helfen. Es wird sich aber keiner dafür hergeben, dir deine 
Hausaufgaben zu machen. Das ist dir hoffentlich klar, oder?

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
Noch kein Account? Hier anmelden.