PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Speaker betreiben



JellbieO
11.02.2009, 16:14
Hallo Leute,

Ich hab bereits die ForenSuche benutzt und gidf.de hat mich leider auch nicht viel weitergebracht.

Ich finde zwar sämltiche Beispiele unter Bascom wie man einen Piezo-Schallwandler programmiert aber unter der Programmiersprache C finde ich nichts.

Will auf dem ATmega644 einfach an Port D0 nen Speaker betreiben.

Wäre für jede Hilfe dankbar.
Ich danke schonmal im vorraus

//Hat denn keiner eine Idee?

Besserwessi
11.02.2009, 18:15
Extra befehle für eine Speaker hat C nicht. Das muß man von Hand Profgrammieren. Am einfachten sollte es gehen wenn man einen Hardware PWM Ausgang nutzt, bevorzugt von timer 1.

Wenn es mehr als einfach nur grelle pieptöne sein sollen könnte man den PWM Ausgang auch als einfach DA Wadnler nehmen und eine mehr oder weniger beliebige Wellenform ausgeben. Das braucht dann aber relativ viel Rechenzeit.

Hubert.G
11.02.2009, 18:17
Eine *.lib wirst du nicht finden.
Aber du musst doch den Port an dem der Speaker hängt nur in entsprechender Geschwindigkeit zwischen high und low hin und her schalten.
Geht ganz einfach mit einem Timer.

JellbieO
11.02.2009, 18:26
Hab von Timern noch nicht wirklich so viel Ahnung wenn ich ehrlich bin.

Wie ist das denn zu genau zu verstehen mit dem High & low schalten in gewisser geschwindigkeit?
Könnte ich dann nicht auch einfach stumpf eine For-Schleife programmieren?

Gruß JellbieO

Hubert.G
11.02.2009, 18:35
Natürlich kannst du auch verschachtelte Schleifen durchlaufen lassen, denn wie du die Zeit zwischen dem Umschalten verzögerst ist deine Sache. Ob es sinnvoll ist eine andere. Du kannst auch _delay nehmen.
Der Kontroller sollte arbeiten und nicht warten.

JellbieO
11.02.2009, 18:54
soweit so gut das ganze mit dem Timern aber irgendwie werde ich aus dem ganzen nicht schlau.
Hätte ich nun doch den Speaker an nem PWM-Pin anschließen sollen?

Mir fehlt völlig die herangehensweise.
Hat vielleicht einer ein simples Beispiel parat? Weil durch Quelltexte die im RN zu finden sind komme ich bei meinem Problem nicht weiter.