Hallo kann mir einer veraten wie man ein Martinshorn nachahmt über PWM Timer???? Danke
Man nehme einen Timer und lase ihn mit einer bestimmten Frequenz einen Ausgang togglen (machen einige Timer ohne grossen Softwareaufwand). Dann zählt man die Timerdurchläufe und schaltet nach einer bestimmten Anzahl von Durchläufen die Frequenz um, indem man den Reolad-bzw. OC-Wert neu setzt. Wenn man das hübscher haben will, nimmt man noch einen weiteren Timer, der in bestimmten Intervallen die Frequenz umschaltet.
Hi, vielleicht hilft Dir das hier: http://www.nordwest.net/mikromodell/tinyfree.html [EDIT] Habe leider auf die Schnelle nicht richtig geschaut. Auf der Seite gibt es nur die HEX-Files. Gruss Andreas
JA diesen Link habe ich auch gefunden. Nur leider ohne Code Danke
Hi, ich hab mal gerade das alte Buch über den NE555 herausgekramt. Da gabs so ein Elektronisches "Zweiklang Horn". Das schaltet einfach im 2 Hz Rhythmus zwischen 2 Frequenzen um. Also muss man im AVR lediglich zwei PWM-Werte für die Frequenzen nehmen und dann in einer bestimmten Zeit diese Werte umschalten (wie oben bereits von STK500-Besitzer beschrieben). Wenn man das hat, kann man dann an das Fein Tuning gehen. Ich habe mal als Testprogramm für das Pollinboard den folgenden Code geschrieben:
1 | if (timeout > 100) |
2 | {
|
3 | cli(); |
4 | timeout = 0; |
5 | sei(); |
6 | LED_PORT ^= (1<<LED_RED1); |
7 | if (status & (1<<SFL_BUZZER_ON)) |
8 | {
|
9 | if (OCR2 == 80) |
10 | {
|
11 | OCR2 = 0xA0; |
12 | }
|
13 | else
|
14 | {
|
15 | OCR2 = 0x50; |
16 | }
|
17 | }
|
18 | }// if (timeout > 100) |
Dabei wird der Timeout durch den sowieso vorhanden allgemeinen Timer erzeugt. Der PWM Timer ist dann separat. Gruss Andreas
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.