krnl
1
Loading...
Searching...
No Matches
examples
oldexamples
krnlsimpledebugled
krnlsimpledebugled.ino
Go to the documentation of this file.
1
//220216
2
#include <
krnl.h
>
3
4
#define STK 110
5
struct
k_t
*
p1
, *
p2
, *
p3
;
6
char
st1
[
STK
],
st2
[
STK
],
st3
[
STK
];
7
8
void
tgeneric
()
9
{
10
while
(1) {
11
k_eat_msec
(
pRun
->nr * 100);
// tasks has 1,2,3 so mul by 100 gives 100msec,...
12
k_sleep
(1000);
13
}
14
}
15
16
void
setup
()
17
{
18
19
Serial.begin(115200);
20
21
for
(
int
i
= 8;
i
< 14;
i
++)
// using PORTB 0..5: d8..d13
22
pinMode(
i
, OUTPUT);
23
/* MEGA PORTA (int i=22; i < 30; i++) pinMode(i,OUTPUT); */
24
25
k_init
(3, 0, 0);
// init with space for three tasks2
26
27
// priority low number higher priority than higher number
28
//Task 1
29
p1
=
k_crt_task
(
tgeneric
, 10,
st1
,
STK
);
// t1 as task, priority 10, 100 B stak
30
//Task 2
31
p2
=
k_crt_task
(
tgeneric
, 11,
st2
,
STK
);
// t1 as task, priority 10, 100 B stak
32
//Task 3
33
p3
=
k_crt_task
(
tgeneric
, 12,
st3
,
STK
);
// t1 as task, priority 10, 100 B stak
34
35
k_start
();
// 1 milli sec tick speed
36
}
37
38
void
loop
() {}
39
40
extern
"C"
{
41
42
void
k_breakout
()
// called every task shift from dispatcher
43
{
44
PORTB = (1 <<
pRun
->nr);
// D8: dummy running, D9 first task created running,...
45
// on MEGA use PORTA
46
}
47
}
48
49
// D8 ON dummy eating cpu
50
// D9 ON Task 1 (the first created
51
// D10 ON Task 2
52
// ...
53
// only one led ON at a time
54
// dont use led 13 for othe stuff bq it s cleared her
55
// can be fixed - just ask me
STK
#define STK
Definition
k00hacksPWM.ino:7
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
st2
char st2[110]
Definition
k04periodic-clip.ino:7
st1
char st1[110]
Definition
k04periodic-clip.ino:7
k_eat_msec
void k_eat_msec(unsigned int eatTime)
eat milliseconds - to mimik time consuming code
Definition
krnl.c:246
pRun
struct k_t * pRun
Definition
krnl.c:148
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
st3
char st3[110]
Definition
krnldebugled13.ino:8
p3
struct k_t * p3
Definition
krnldebugled13.ino:5
setup
void setup()
Definition
krnlsimpledebugled.ino:23
k_breakout
void k_breakout()
Definition
krnlsimpledebugled.ino:49
tgeneric
void tgeneric()
Definition
krnlsimpledebugled.ino:15
loop
void loop()
Definition
krnlsimpledebugled.ino:45
k_t
Definition
krnl.h:323
Generated by
1.15.0