Forum: Mikrocontroller und Digitale Elektronik Sirene in C(++) programmieren


von Jannik (Gast)


Lesenswert?

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?

von Karl H. (kbuchegg)


Lesenswert?

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.

von Jannik (Gast)


Lesenswert?

natürlich µC, sonst hätte ich es nicht im Forum "Mikrocontroller und 
Elektronik" gespostet

von Ben j. (scarab)


Lesenswert?

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.

von Max H. (hartl192)


Lesenswert?

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

von Klaus W. (mfgkw)


Lesenswert?

Jannik schrieb:
> natürlich µC

gut, daß es da nur einen gibt :-)

von helfer (Gast)


Lesenswert?

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.

von Lomann (Gast)


Lesenswert?

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?

von Thomas E. (thomase)


Lesenswert?

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.

von blubb (Gast)


Lesenswert?

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?

von Johannes G. (gutenberg)


Lesenswert?

"Es kann nur einen geben!"

von Jannik (Gast)


Lesenswert?

@helfer

Und wie erstelle ich die beep-Funktion? Ich hab davon leider noch nicht 
so viel Ahnung.

von Über die Schulter-Gucker (Gast)


Lesenswert?

Schon mal hier geschaut?
Beitrag "Kojak Sirene"

von ja (Gast)


Lesenswert?

Jannik schrieb:
> @helfer
>
> Und wie erstelle ich die beep-Funktion?
Mit einem Texteditor.

SCNR, bei den Angaben kann man schlecht helfen. Welcher Prozessor? 
Netiquette!

von Über die Schulter-Gucker (Gast)


Lesenswert?

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