www.mikrocontroller.net

Forum: Compiler & IDEs Martinshorn über Port B5 Mega 128


Autor: Matthias w (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo

kann mir einer veraten wie man ein Martinshorn nachahmt über PWM 
Timer????


Danke

Autor: STK500-Besitzer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: Andreas Hesse (asmhesse)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Matthias w (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
JA diesen Link habe ich auch gefunden.


Nur leider ohne Code

Danke

Autor: Andreas Hesse (asmhesse)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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:
if (timeout > 100)
{
  cli();
  timeout = 0;
  sei();
  LED_PORT ^= (1<<LED_RED1);
  if (status & (1<<SFL_BUZZER_ON))
  {
     if (OCR2 == 80)
    {
        OCR2 = 0xA0;
    }
    else
    {
       OCR2  = 0x50;
    }
  }  
}// if (timeout > 100)

Dabei wird der Timeout durch den sowieso vorhanden allgemeinen Timer 
erzeugt.
Der PWM Timer ist dann separat.

Gruss
Andreas

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.