Timer0: Frequenz und Amplitude einstellen

Gast #1655066
Lesenswert?

Hallo zusammen,
habe einen ATmega644, der mit Timer0 ein Rechtecksignal mit
einer festen Freq. von ca. 50Hz erzeugt. Die Amplitude kann
bisher von 0%..100% eingestellt werden. Verwende den Timer0
im FastPWM-Mode.

Jetzt soll zusätzlich die Frequenz einstellbar sein; im
Bereich von 40Hz..90Hz und das ohne Hardware-Änderung.

Mir fällt nicht wirklich ein, wie ich die Amplitude und
die Frequenz mit Timer0 gleichzeitig einstellen kann.

Vielleicht kann mir hier jemand weiterhelfen.

Danke, Pepe.
Gast #1655073
Lesenswert?

Pepe schrieb:
> Die Amplitude kann bisher von 0%..100% eingestellt werden.
bist du dir da sicher? Wenn es ein Rechtecksignal ist dann ist die 
Amplitude konstant. Sonst müsstest du ja ein Analogausgang haben.
Gast #1655103
Lesenswert?

Sorry, hab mich nicht klar ausgedrückt:
Amplitude = Einschaltverhältnis.

Am Ausgang hängt ein Magnet, der vibriert.
Ich ändere das Einschaltverhältnis über
einen geänderten Wert in OCR0.
Über das geänderte Einschaltverhältnis ändert
sich die Auslenkung des Magneten -> Amplitude.

( Man sollte doch erst denken und dann schreiben :-) )

Pepe
Gast #1655107
Lesenswert?

Die Frequenz änderst du, indem du den TOP-Wert des Timers änderst.
Das geht in allen Timer-Modi, bei denen man diesen Wert variieren kann.
Durch das Ändern der oberen Grenze ändert sich aber auch das 
Tastverhältnis, wenn man den Umschaltpunkt nicht auch gleichzeitig 
ändert.
Gast #1655125
Lesenswert?

Nur Timer0 hat nur OCR0 und kein ICR0-Register.
Also kann ich zwat den Umschaltpunkt verändern,
aber doch nicht TOP.
Außer ich durchblicke die ganze Geschichte nicht.
Habe die Waveform-Tabelle gleich mal angehängt.
Angehängte Dateien:

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