mikrocontroller.net

Forum: Compiler & IDEs PWM Capture und Generate


Autor: Tom (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo zusammen,

ich benötige eure Hilfe. Ich versuche ein Board zu bauen, dass PWM
Signale auswerten kann und generieren kann. Nun habe ich mir durch
diverse Beiträge gelesen, allerdings findet man immer wieder andere
Ansätze.
Ich fass das mal zusammen. Ich will einen ATMega8 benutzen. Den
Standard PWM Kannal kann ich nicht nehmen denn ich will die Frequenz
des Signals verändern können. Also muss ich den 16bit Timer benutzen.
Richtig ???
Für das auswerten der Signale muss ich zwei Counter benutzen. Der eine
zählt die Zeit in der das Signal high ist, der andere wenn es Low ist.
Kann man sich da was aus den verbeleibenden Timern zusammenbauen oder
sollte man dies durch externe Counter(74HC590) realisieren.
Ich wollte dieses Projekt in C proggen. Ich habe allerdings noch nicht
so oft C benutzt. Kann man die Zählerstände und die Zeiten einfach
multiplizieren und z.B. an ein LCD senden.

Grüße Tom

Autor: Alex (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Datenblatt Seite 97.
Modus 14 dürfte bspw. von Interesse sein. Der bietet variable Frequenz
und Pulsdauer.

Autor: Tom (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Alex,

ich hab mir den Modus 14 mal genauer angeschaut. Habe ich das richtig
verstanden, dass man den TOP value verändern kann und der COMPARE value
nur kleiner sein muss. Das ist ja schonmal nicht schlecht. Kann man dann
auch noch die Sache mit dem Vorteiler nutzten oder läuft der Prozessor
dann mit voller Taktfrequenz??

Grüße Tom

Autor: Markus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi Tom. Den Vorteiler kannst du immer verwenden.

Autor: Jörg Wunsch (dl8dtl) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Für das auswerten der Signale muss ich zwei Counter benutzen. Der
> eine zählt die Zeit in der das Signal high ist, der andere wenn es
> Low ist.

Einer genügt, das lässt sich bei geschickter Programmierung mit dem
input capture Interrupt erledigen.  Du musst die Flanke dabei
umschalten, da solltest du noch drauf achten, dass der Impuls nicht so
schmal war, dass die entgegengesetzte Flanke schon wieder vorbei ist.

> Kann man sich da was aus den verbeleibenden Timern zusammenbauen
> ...?

Das hängt ganz von deinem Controller ab.  Ein ATmega640 zum Beispiel
hat 2 8-bit- und 4 16-bit-Timer/Zähler. ;-)

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.