Hallo Leute,
ich habe in meiner aktuellen Steuerung das Process- und Task-System vom AVRco im Einsatz.
Im Define habe ich:
Meine Hauptroutine liegt im Main:
Selbst definierte Tasks/Processe (ohne evtl. Treiber) sind:
Um zu schauen wie oft die Hauptroutine durchlaufen wird, nutze ich einen Zähler der nach jeder Sekunde die Anzahl sichert und wieder auf 0 setzt.
Auch wenn ich die Steuerung unterschiedlich beanspruche erhalte ich immer 100 Durchläufe/Zyklen pro Sekunde.
Mich wundert hier die immer genaue "100", ich würde gerne verstehen, warum diese Anzahl mit 100 wie "Stein gemeiselt" steht?
Kann mir das Jemand erklären?
Klar ein Process kann unterbrochen werden, für Tasks usw., aber ich habe in dieser Routine rund 3.000 Programmzeilen, die nicht immer alle abgearbeitet werden. Viele werden nur alle 50 oder 100 Zyklen durchlaufen oder es gibt auch viele IF Anweisungen. Wenn die Bedingungen nicht erfüllt sind, dann müsste der Zyklus doch öfter durchlaufen, oder? Aber die "100" stehen immer!
Thorsten
ich habe in meiner aktuellen Steuerung das Process- und Task-System vom AVRco im Einsatz.
Im Define habe ich:
Code
define
OSCtype = int2MHz, PLLmul = 31, prescB = 1, prescC = 1, overdrive; // 62 MHz
...
SysTick = 10; // msec
...
OSCtype = int2MHz, PLLmul = 31, prescB = 1, prescC = 1, overdrive; // 62 MHz
...
SysTick = 10; // msec
...
Meine Hauptroutine liegt im Main:
Selbst definierte Tasks/Processe (ohne evtl. Treiber) sind:
Code
Process Main loop
Task ControlJob(iData, resumed);
process USB_RxTx (256, 512 : iData );
process LCD_Displ(256, 384 : iData; 5);
process LCD_DisplBott(180, 384 : iData; 5);
process ControlJobZKS(128, 180 : iData; 1, suspended);
Task ControlJob(iData, resumed);
process USB_RxTx (256, 512 : iData );
process LCD_Displ(256, 384 : iData; 5);
process LCD_DisplBott(180, 384 : iData; 5);
process ControlJobZKS(128, 180 : iData; 1, suspended);
Um zu schauen wie oft die Hauptroutine durchlaufen wird, nutze ich einen Zähler der nach jeder Sekunde die Anzahl sichert und wieder auf 0 setzt.
Auch wenn ich die Steuerung unterschiedlich beanspruche erhalte ich immer 100 Durchläufe/Zyklen pro Sekunde.
Mich wundert hier die immer genaue "100", ich würde gerne verstehen, warum diese Anzahl mit 100 wie "Stein gemeiselt" steht?
Kann mir das Jemand erklären?
Klar ein Process kann unterbrochen werden, für Tasks usw., aber ich habe in dieser Routine rund 3.000 Programmzeilen, die nicht immer alle abgearbeitet werden. Viele werden nur alle 50 oder 100 Zyklen durchlaufen oder es gibt auch viele IF Anweisungen. Wenn die Bedingungen nicht erfüllt sind, dann müsste der Zyklus doch öfter durchlaufen, oder? Aber die "100" stehen immer!
Thorsten