Ich möchte eine Sirene in C (oder C++) programmieren. Wie geht das? ich habe mal was von beep gehört. Es sollten 2 Töne abwechselnd gespielt werden (2000Hz und 1500Hz) in einem Abstand von 1 Sekunde. Wie mache ich das?
Auf welchem Computer. Gib bitte immer mit an, auf welchem Computer du etwas entwickeln willst. Es ist ein Unterschied, ob das auf einem PC oder einem µC laufen soll.
natürlich µC, sonst hätte ich es nicht im Forum "Mikrocontroller und Elektronik" gespostet
grober Fahrplan: Sinus für eine viertel Periode für beide Frequenzen berechnen, in Array speichern und über PWM ausgeben. Du solltest dabei die Werte nur für die Hälfte der Dynamik des entsprechenden Zahlenbereichs berechnen damit du negative und positive Halbwelle unterkriegst. Also bei 8Bit ist die Amplitude 127, und Offset ebenfalls.
Ich würde zwei for-Schleife mache die jeweils einen Ton für 1 sekunde abspielt und diese dann in einer dritten Schleife hintereinander ausführen
while (1) { beep(2000); _delay_ms(1000); beep(1500); _delay_ms(1000); } Die beep Funktion musst du selbst schreiben, passend für deine Beschaltung. Im einfachsten Fall erzeugt sie eine PWM mit angegebener Frequenz. Timer eignen sich bei den AVR sehr gut dafür, siehe Datenblatt deines MC und im Wiki.
Klaus Wachtler schrieb: > gut, daß es da nur einen gibt :-) Was? Es gibt doch schon alleine von Atmel verschiedene, wie z.B. ATMega oder ATTiny. Oder habe ich da etwas falsch verstanden?
Lomann schrieb: > Oder habe ich da etwas falsch verstanden? Alles. Es gibt nur einen. Sonst hätte Klaus das ja nicht geschrieben. Jannik schrieb: > natürlich µC, Was für einen willst du denn nehmen und mit welchen kennst du dich aus? mfg.
Lomann schrieb: > Klaus Wachtler schrieb: >> gut, daß es da nur einen gibt :-) > > Was? Es gibt doch schon alleine von Atmel verschiedene, wie z.B. ATMega > oder ATTiny. Oder habe ich da etwas falsch verstanden? Bist du Ironie-Legastheniker?
@helfer Und wie erstelle ich die beep-Funktion? Ich hab davon leider noch nicht so viel Ahnung.
Jannik schrieb: > @helfer > > Und wie erstelle ich die beep-Funktion? Mit einem Texteditor. SCNR, bei den Angaben kann man schlecht helfen. Welcher Prozessor? Netiquette!
Thomas Eckmann schrieb: > Jannik schrieb: > >> natürlich µC, > > Was für einen willst du denn nehmen und mit welchen kennst du dich aus? Der peilt noch gar nix, aber thread-Parallelverarbeitung kann er schon ...
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.