Kommentar: Einfügen von HTML im Kommentar: Link einfügen: <a href="LINKURL" target="_blank">LINKTITEL</a> Bild einfügen: <img src="BILDURL"> Text formatieren: <b>fetter Text</b> <i>kursiver Text</i> <u>unterstrichener Text</u> Kombinationen sind auch möglich z.B.: <b><i>fetter & kursiver Text</i></b> C Quellcode formatieren: <code>Quellcode</code> BASIC Quellcode formatieren: <basic>Quellcode</basic> (Innerhalb eines Quellcodeabschnitts ist kein html möglich.) Wichtig: Bitte mache Zeilenumbrüche, bevor Du am rechten Rand des Eingabefeldes ankommst ! -> I > Hallo, > > mit dem nachfolgedem Programm habe ich versucht, die Funktion der Threads zu verstehen. > Ich verwende die C-Control Pro IDE 2.12.0.10 und das Projectboard mit der Mega32 Unit. > > Wenn man die Parameter bei thread 0 nicht angibt, wird die zeit von thread 2 nicht eingehalten. > > Gibt man die Parameter für thread 0 an (siehe unten im Prog.) erhält man für Port D7 ein Signal -> > mit einer frequenz von 20ms (50Hz). Sollte aber schneller laufen. > > Ich gehe davon aus, dass es keinen Sinn macht den 3. Parameter der #thread Anweisung kleiner -> > anzugeben als die "Thread_Delay-Zeit" innerhalb der Threadprozedur. > > Auch die Zuweisung des 2 Parameters von #thread 0 (128) wirkt sich auf die Ausführung von thread2 -> > aus. > > Weiterhin scheint es keinen Unterschied zu geben ob man Thread_Delay(0) oder Thread_Delay(1) angibt. > > Wird kein Thread_Delay angegeben, erhält man ein unsauberes Signal. (Threadwechsel erkennbar) > > Aus den Versuchen stellen sich folgende Fragen: > > -Wie schnell kann ein Thread maximal ausgeführt werden? > -Muss man den #thread 0 mit viel Speicher (Parameter 2) und kleinstmöglicher Taskwechselzeit -> > parametrieren, um sicher zu stellen, dass die anderen Threads sicher ausgeführt werden? > -Ist es Sinvoll die Taskwechselzeit(Parameter 3) mit der Thread_Delay-Zeit gleich zu halten? > -Gibt es sinnvolle Parametergrenzen, die man einhalten bzw. beachten muss? > -Wird die maximale Ausführungsgeschwindigkeit eines Threads durch eine höhere Anzahl von Threads -> > kleiner? (z.B. 10 Threads mit einer Taskwechselzeit von 10ms) > > <basic>Quellcode</basic> > '******************************************************************************* > #thread 0,128,0 > #thread 1,128,100 > #thread 2,128,1 > '******************************************************************************* > Sub thread1() > > Do While True > > Port_ToggleBit(30) 'Port D6 (LED1) > 'Port_ToggleBit(31) 'Port D7 (LED2) > > Thread_Delay(100) '100x10ms=1s > > End While > > End Sub > '******************************************************************************* > Sub thread2() > > Do While True > > 'Port_ToggleBit(30) 'Port D6 (LED1) > Port_ToggleBit(31) 'Port D7 (LED2) > > Thread_Delay(1) '1x10ms=0.01s > > End While > > End Sub > '******************************************************************************* > Sub ini() > > Port_DataDirBit(PORT_LED1,PORT_OUT) 'Port D.6 > Port_DataDirBit(PORT_LED2,PORT_OUT) 'Port D.7 > > End Sub > '******************************************************************************* > Sub main() > > ini() > > Thread_Start(1,thread1) > Thread_Start(2,thread1) > > Do While(1) > > End While > > End Sub > '*******************************************************************************