krnl 1
Loading...
Searching...
No Matches
k01myfirsttask.ino
Go to the documentation of this file.
1#include <krnl.h>
2// one task loops and blink
3// k_sleep is used for delay - and ensure no busy waiting
4// if delay(...) is used then you use cpu time
5
6struct k_t *p;
7
8void t1()
9{
10 while (1) {
11
12 k_sleep(500); // 500 * 1 msec
13 digitalWrite(13,HIGH);
14
15 k_sleep(100);
16 digitalWrite(13,LOW);
17
18 }
19}
20
22{
23 while (1) {
24 digitalWrite(3,HIGH);
25 delay(100);
26 digitalWrite(3,LOW);
27 delay(100);
28 }
29}
30
31void setup()
32{
33 int res;
34 pinMode(13,OUTPUT);
35 k_init(1,0,0); // init with space for one task, 0 semaphores, 0 mailboxes
36
37 p = k_crt_task(t1,10,100); // t1 as task, priority 10, 100 Bytes stak
38
39 res= k_start(); // 1 milli sec tick speed
40
41
42 // you will never return from k_start if init part did succedd
43 // bad stuff can be happended and then you will come here
45
46 while (1) ;
47}
48
49void loop() {
50}
51
void setup()
void t1()
void loop()
int k_sleep(int time)
let task sleep for a number of milliseconds
Definition krnl.c:445
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
int k_init(int nrTask, int nrSem, int nrMsg)
Definition krnl.c:1108
int k_start()
Definition krnl.c:1149
struct k_t * t1
Definition krnlgen.ino:3
struct k_t * p
void emergencyBlink()
Definition krnl.h:323