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
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.
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
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.
@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
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
@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
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.