Forum: Mikrocontroller und Digitale Elektronik Timer in einem anderen Timer aufrufen?


von daruse (Gast)


Lesenswert?

Hallo,
ich habe folgendes Problem.
Ich habe FreeRTOS als Echtzeitbetriebssystem auf meinem µC (V850E/PH03) 
laufen, hierfür habe ich den Timer S benutzt, welcher mir jede Sekunde 
die Task aufruft. Nun Wollte ich in der Task eine Hardware PWM 
programmieren, geht auch alles nur "flackert" mir die PWM.
Schreibe ich die PWM in die main schleife, sprich außerhalb des Timer S, 
funktioniert diese einwandfrei.
Nun zu meiner Frage, geht es prinzipiell das ich in einem Timer einen 
andern Timer aufrufe?
Denn langsam weiß ich nicht mehr was ich noch versuchen soll
Vielen Dank

Gruß daruse
von Läubi .. (laeubi) Benutzerseite


Lesenswert?

daruse schrieb:
> Denn langsam weiß ich nicht mehr was ich noch versuchen soll

Wieso nicht schreib es doch in die Main wenn es da funktioniert, oder 
nutze eine Hardware PWM... Einen Timer "ruft" man nicht auf sondern 
konfiguriert ihn bestenfalls.
von Achim M. (minifloat)


Lesenswert?

Läubi .. schrieb:
> Einen Timer "ruft" man nicht auf sondern
> konfiguriert ihn bestenfalls.

Bei einem RTOS ist das aber so. Ich rufe z.B. eine "Funktion"
timerreturn_in_seconds(3); auf und die Task läuft z.B. erst nach 3 
sekunden wieder. Der Scheduler wird aufgerufen und macht in dieser Zeit 
andere anstehende Sachen.

@TO: Realtime heißt nur, dass die gesamte Datenverarbeitung sicher 
innerhalb von planbaren Zeiträumen stattfindet. Es gibt aber keinesfalls 
soetwas wie eine starre Taktzyklengenauigkeit. Du solltest auf 
PWM-Erzeugung durch Hardware ausweichen.

mfg mf
von Läubi .. (laeubi) Benutzerseite


Lesenswert?

Mini Float schrieb:
> Bei einem RTOS ist das aber so. Ich rufe z.B. eine "Funktion"
> timerreturn_in_seconds(3); auf und die Task läuft z.B. erst nach 3
> sekunden wieder.

Naja... Das würde ich eher als timed wait interpretieren, ist ja 
letztlich egal, so wie du schriebst ist für PWM das Verfahren zumindest 
nicht so wirklich gut geeignet, allein schon wegen dem ganzem overhead.
von daruse (Gast)


Lesenswert?

@Läubi
in die main kann ich es nicht schreiben, da sonst nicht mehr meine Task 
aufgerufen wird.
@mini Float
wie darf ich "starre Taktzyklengenauigkeit" verstehen.
Ich dachte wenn ein compare match des Timers vorkommt ruft mir dieser 
über einen Interrupt die Task auf. Das sollte ja immer die gleiche zeit 
sein, oder nicht!?

Gruß daruse
von Peter D. (peda)


Lesenswert?

Eine HW-PWM muß nicht ständig was ausführen, deshalb heißt es ja HW-PWM.
Ein Zugriff ist nur notwendig, wenn sich der PWM-Wert ändern soll.

Allerdings wird Dein RTOS den Timer blockieren, d.h. die HW-PWM muß 
einen der anderen Timer benutzen.


Peter
von daruse (Gast)


Lesenswert?

@Peter
Meiner PWM hab ich den Timer T spendiert, hab jetzt gerade auch den 
Timer AA probiert -> gleiches Problem.
Habe aber jetzt schon festgestellt, dass die Zykluszeit konstant ist. 
Jedoch invertiert er mir in regelmäßigen Abständen die PWM, daraus folgt 
der Jitter.
Sehr komisch...

Gruß daruse
von daruse (Gast)


Lesenswert?

sorry, die PWM wird niht invertiert. Er lässt sie mir nur länger auf 
logisch 1

Beispiel:
Zyklus: 500µs
auf 1: 170µs

Fehler ist dann
Zyklus: 500µs
auf 1: 330µs

Gruß daruse
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.