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.
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.
@peter das geht wenn man im 50 Hz Rhytmus 2 passende PWM Werte benutzt. @pepe Zeig mal deinen jetzigen Code sonst nur Nebelgestochere.
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
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.
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.
Hi >Also kann ich zwat den Umschaltpunkt verändern, >aber doch nicht TOP. Im Mode 2,5,7 ist OCR0A Top und OCR0B dein Comparewert. Also lässt sich beides verstellen. MfG Spess
Ganz ehrlich: Klingt logisch. Danke für die Hilfe. Pepe
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.