PWM Signal erzeugen

Gast #1686711
Lesenswert?

Hallo Leute,

ich möchte ein PWM Signal erzeugen. Dabei soll es so sein, daß ich 
verschiedene Puls/Pausenverhältnisse machen möchte, also auf Knopfdruck 
verschiedene Stufen erzeugen möchte.

Meine Periodendauer des PWM-Signals beträgt 2ms

Ich habe mir das jetzt so gedacht:

Mein CPU ist mit 20MHz getaktet. Das führt zu einer Periodendauer von 
50ns.

Mein Timer hat einen Prescaler von Fcpu/8 (Resolution 0.400 us)

Das bedeutet doch jetzt, daß der Timer alle 0.400 us zeinen Zählerstand 
um 1 erhöht.

Da mein Signal 2ms lang sein soll, rechne ich also 2ms/0.400us = 5000.

Nach 5000 Takten also hätte ich 2ms zusammen.

5000 entspricht 0x1388 in Hexadezimaler Darstellung.

Also würde ich doch meinen Timer mit 0x1388 reloaden.

Der Timer würde also zum Zeitpunkt 0 hochlaufen mit 0x1388 und dann 
wieder bei 0 beginnen und immer beim Überlauf einen Interrupt machen.

Wenn ich nun sage er soll mit 1/10 den Motor fahren würde er im Timer 
schauen welchen wert er gerade hat, würde den für die Pausenzeit nötigen 
Wert hinzuaddieren und wenn er diesen WErt erreicht hat das Signal vom 
Ausgang nehmen, anschließend für den Rest bis 2 ms den Ausgang auf 0 
halten.

Da ich sowas noch nie gemacht habe wäre es nett wenn mir jemand sagen 
könnte, ob meine Überlegung mit dem Timer so zutreffend ist, oder ob das 
Quatsch ist.

Danke
Wachtl

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren