Forum: Compiler & IDEs PWM Capture und Generate


von Tom (Gast)


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

von Alex (Gast)


Lesenswert?

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

von Tom (Gast)


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

von Markus (Gast)


Lesenswert?

Hi Tom. Den Vorteiler kannst du immer verwenden.

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


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. ;-)

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.