1 | /* Include type and function declarations for RTX */
|
2 | #include "RTL.h"
|
3 |
|
4 | /* id1, id2 will contain task identifications at run-time */
|
5 | OS_TID id1, id2;
|
6 |
|
7 | /* Forward reference. */
|
8 | __task void task1 (void);
|
9 | __task void task2 (void);
|
10 |
|
11 | __task void task1 (void) {
|
12 | /* Obtain own system task identification number */
|
13 | id1 = os_tsk_self ();
|
14 | /* Assign system identification number of task2 to id2 */
|
15 | id2 = os_tsk_create (task2, 0);
|
16 | for (;;) { /* do-this */
|
17 | /* Indicate to task2 completion of do-this */
|
18 | os_evt_set (0x0004, id2);
|
19 | /* Wait for completion of do-that (0xffff means no time-out)*/
|
20 | os_evt_wait_or (0x0004, 0xffff);
|
21 | /* Wait now for 50 ms */
|
22 | os_dly_wait (5);
|
23 | }
|
24 | }
|
25 |
|
26 | __task void task2 (void) {
|
27 | for (;;) {
|
28 | /* Wait for completion of do-this (0xffff means no time-out) */
|
29 | os_evt_wait_or (0x0004, 0xffff); /* do-that */
|
30 | /* Pause for 20 ms until signaling event to task1 */
|
31 | os_dly_wait (2);
|
32 | /* Indicate to task1 completion of do-that */
|
33 | os_evt_set (0x0004, id1);
|
34 | }
|
35 | }
|
Habe ich das richtig verstanden?
speichert die ID des laufenden Tasks!?
1 | id2 = os_tsk_create (task2, 0);
|
startet den Task2 und speichert seine ID? Was bedeutet genau der Wert in
der Klammer (task2, 0);
1 | os_evt_set (0x0004, id2);
|
Setzt das Event-Flag Bit 4 des Tasks mit der id2??
Was nützt mir dieses Event-Flag Bit? Task2 ist der Event 4??
1 | os_evt_wait_or (0x0004, 0xffff);
|
Es wird mit der Ausführung des Events 4 gewartet, bis das Wait-Flag 4
gesetzt wurde oder 0xffff systemticks abgelaufen sind ??
kann ich das Wait und event Flagbit auch abfragen?
danke und gruss!
M.B.