krnl
1
Loading...
Searching...
No Matches
examples
oldexamples
k012twotasks
k01twotasks.ino
Go to the documentation of this file.
1
#include <
krnl.h
>
2
// one task loops and blink
3
// one task loops and print
4
5
struct
k_t
*
p1
, *
p2
;
6
7
void
t1
()
8
{
9
while
(1) {
10
k_sleep
(500);
11
digitalWrite(13,HIGH);
12
13
k_sleep
(100);
14
digitalWrite(13,LOW);
15
}
16
}
17
18
void
t2
()
19
{
20
int
i
= 0;
21
while
(1) {
22
k_sleep
(300);
23
Serial.println(
i
++);
24
}
25
}
26
27
28
void
setup
()
29
{
30
int
res;
31
Serial.begin(9600);
32
while
(! Serial) ;
33
pinMode(13,OUTPUT);
34
35
k_init
(2,0,0);
// init with space for one task
36
// |--- no of mg Queues (0)
37
// |----- no of semaphores (0)
38
// |------- no of tasks (2)
39
40
// priority low number higher priority than higher number
41
p1
=
k_crt_task
(
t1
,10,100);
// t1 as task, priority 10, 100 B stak
42
p2
=
k_crt_task
(
t2
,10,100);
// t2 as task, priority 10, 100 B stak
43
res=
k_start
(1);
// 1 milli sec tick speed
44
// you will never return from k_start
45
Serial.print(
"ups an error occured: "
); Serial.println(res);
46
while
(1) ;
47
}
48
49
void
loop
() {}
setup
void setup()
Definition
k01twotasks.ino:28
t2
void t2()
Definition
k01twotasks.ino:18
t1
void t1()
Definition
k01twotasks.ino:7
loop
void loop()
Definition
k01twotasks.ino:49
i
volatile int i
Definition
k02twotasks.ino:29
p1
struct k_t * p1
Definition
k03asleep.ino:22
p2
struct k_t * p2
Definition
k03asleep.ino:22
k_sleep
int k_sleep(int time)
let task sleep for a number of milliseconds
Definition
krnl.c:445
k_crt_task
struct k_t * k_crt_task(void(*pTask)(void), char prio, char *pStk, int stkSize)
create a task - only to be called before k_start creates a task and put it in the active Q
Definition
krnl.c:328
k_init
int k_init(int nrTask, int nrSem, int nrMsg)
Definition
krnl.c:1108
k_start
int k_start()
Definition
krnl.c:1149
krnl.h
t1
struct k_t * t1
Definition
krnlgen.ino:3
t2
struct k_t * t2
Definition
krnlgen.ino:3
k_t
Definition
krnl.h:323
Generated by
1.15.0