Forum: Mikrocontroller und Digitale Elektronik PWM Timer springt (AT90CAN128)


von moo (Gast)


Lesenswert?

Hallo Leute.

Mir ist neulich etwas aufgefallen und ich wollte nun fragen, ob einer 
von euch das schon mal hatte bzw. weiß was hilft.

Es geht um folgendes:
Auf einem AT90CAN128 soll im Timer3 ein PWM-Signal für eine 
Servoansteuerung erzeugt werden. Nebenbei laufen noch 2 weitere Timer 
für andere Anwendungen.

Das PWM-Signal wird auch erzeugt und prizipiell ist auch alles ok.
Bis mir dann aufgefallen ist, dass das Signal an 2 Stellen springt und 
somit auch das Servo.
Ich habe dann allerlei Sachen probiert, was nichts brachte. Irgendwann 
habe ich nach und nach alle Timer und Interrupts (außer Timer3) 
deaktiviert.
Das brachte dann abhilfe. Allerdings brauche ich die anderen Timer.

Kann mir jemand sagen warum andere Timer und Interrupts den Timer3 so 
beieinflussen können?
Wie kann man das verhindern?

Wäre cool, wenn mir einer von euch helfen kann.

Gruß
Moo.
von Krapao (Gast)


Lesenswert?

Die PWM ohne ISR machen und statt dessen als Hardware-PWM. Gibt dieser 
AVR das her? Könnte man die PWM auf einen Timer legen der das kann?

Wenn ISR-Routinen benutzt werden, diese kürzer machen. Dann sollte es 
seltener (!) vorkommen, dass eine ISR alle anderen Interrupts blockiert.

Vermutlich hilft es auch, wenn die Timer so eingestellt sind, dass sie 
nicht zeitgleich auftreten können. D.h. sie könnten mit gleicher 
Frequenz (oder Vielfachen einer Frequenz) laufen aber mit 
unterschiedlichem Startzeitpunkt. Das kann aber schwer werden, wenn du 
außer dem Duty-Cycle auch die PWM-Frequenz ändern willst.
von moo (Gast)


Lesenswert?

Hallo und danke für die Antwort.

Ich benutze für das PWM-Servosignal bereits einen Hardwaretimer, wenn 
ich die Definition richtig verstanden habe. Es wird also ein PWM-Ausgang 
des Controllers genutzt.

Die ISR-Routinen sind bereits sehr kurz, es gibt max. 2 Anweisungen, die 
bei diesem Timer ausgeführt werden. Ich kann noch schauen, ob ich die 
Abläufe in den anderen Timern verkürzen kann, ansich steht da aber nix 
unnötiges drin..

Dein dritter Vorschlag könnte sich tatsächlich als schwierig gestalten, 
muss ich nochmal drüber nach denken.

Moo.
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.