-
-
Erfahrener Benutzer
Roboter Experte
Frage zu Timern und Interrupts
Ich möchte auf dem Mega32 an Pin OC1A 65.536 Takte für einen externen IC erzeugen.
Also die 10-Bit-PWM 64x durchlaufen lassen und fertig sind die Takte.
Wie finde ich aber raus, dass die PWM-Periode durch ist? Wird da ein Interrupt gesetzt? Und wenn ja, welcher?
Zusatzfrage:
Welches ist die schnellste Methode um externe Takte (mithilfe eines Hardware-Timers) zu erzeugen?
Und wie hoch kann der Takt maximal sein? 1:1, 1:2 oder noch schlechter?
-
Erfahrener Benutzer
Robotik Visionär
Einen externen Takt erzeugt man am einfachsten an einem der OC... Pins. Die Höchste Frequenz sollte wohl die halbe Taktfrequenz sein. Entweder den Timer im CTC mode bis eins zählen lassen und dann den Ausgang invertieren, oder ein PWM Signal 2 Takte lang mit Pulslänge ein takt. Den vollen Takt kann man bei einigen der neueren AVRs auch direkt ungeteilt auf einen speziellen Pin ausgeben, dann aber nicht so einfach abstellen.
Bei der PWM Periode kann ein Interrupt ausgelöst werden. In jedem Fall geht der output compare Interrupt. Bei einigen Modes könnte auch der Overflow Interrupt gehen.
-
Erfahrener Benutzer
Roboter Genie
Bei einem CTC-Timer auf Prescaler 2 ist eine '1' als Zielwert nicht möglich. Das haben wir durch Ausprobieren festgestellt. Das ist aber sowieso technisch schwierig, den Interrupt jeden 2. Takt aufzurufen^^..
-
Erfahrener Benutzer
Robotik Visionär
Man muß ja auch nicht den Interrupt so oft aufrufen. Es ginge nur um den Timer. Die Information ist aber schon interessant wie weit man runter gehen kann im CTC modus.
EDIT:
Nach dem Datenbaltt (Mega48P, sollte aber für mehrere gelten) soll sogar ein OC Wert von 0 gehen und dann im Toggle mode gerade f/2 am Ausgang liefern.
-
Erfahrener Benutzer
Roboter Genie
Das glaube ich erst, wenn ich es sehe...
Aber theoretisch sollte es möglich sein, wenn man eben keinen Interrupt dazu aufruft, das stimmt.
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- Anhänge hochladen: Nein
- Beiträge bearbeiten: Nein
-
Foren-Regeln
Lesezeichen