Forum: Mikrocontroller und Digitale Elektronik PWM Signal erzeugen


von Alte_Wachtl (Gast)


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

von spess53 (Gast)


Lesenswert?

Hi

Welcher Controller?

MfG Spess

von Alte_Wachtl (Gast)


Lesenswert?

Es handelt sich um einen C164CI

Gruß
Wachtl

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.