dit projekt
examples
krnlsimpledebugled
krnlsimpledebugled.ino
Go to the documentation of this file.
1
//220216
2
#include <
krnl.h
>
3
4
/*
5
* LED on dig pin 8,9,10
6
* D8 dummy running
7
* D9 first task created running
8
* D10 second ...
9
*
10
*/
11
#define STK 110
12
struct
k_t
*
p1
, *
p2
, *
p3
;
13
char
st1
[
STK
],
st2
[
STK
],
st3
[
STK
];
14
15
void
tgeneric
()
16
{
17
while
(1) {
18
k_eat_msec
(
pRun
->
nr
* 100);
// tasks has 1,2,3 so mul by 100 gives 100msec,...
19
k_sleep
(1000);
20
}
21
}
22
23
void
setup
()
24
{
25
26
Serial.begin(115200);
27
28
for
(
int
i
= 8;
i
< 14;
i
++)
// using PORTB 0..5: d8..d13
29
pinMode(
i
, OUTPUT);
30
/* MEGA PORTA (int i=22; i < 30; i++) pinMode(i,OUTPUT); */
31
32
k_init
(3, 0, 0);
// init with space for three tasks2
33
34
// priority low number higher priority than higher number
35
//Task 1
36
p1
=
k_crt_task
(
tgeneric
, 10,
st1
,
STK
);
// t1 as task, priority 10, 100 B stak
37
//Task 2
38
p2
=
k_crt_task
(
tgeneric
, 11,
st2
,
STK
);
// t1 as task, priority 10, 100 B stak
39
//Task 3
40
p3
=
k_crt_task
(
tgeneric
, 12,
st3
,
STK
);
// t1 as task, priority 10, 100 B stak
41
42
k_start
();
// 1 milli sec tick speed
43
}
44
45
void
loop
() {}
46
47
extern
"C"
{
48
49
void
k_breakout
()
// called every task shift from dispatcher
50
{
51
PORTB = (1 <<
pRun
->
nr
);
// D8: dummy running, D9 first task created running,...
52
// on MEGA use PORTA
53
}
54
}
55
56
// D8 ON dummy eating cpu
57
// D9 ON Task 1 (the first created
58
// D10 ON Task 2
59
// ...
60
// only one led ON at a time
61
// dont use led 13 for othe stuff bq it s cleared her
62
// can be fixed - just ask me
i
volatile int i
Definition:
k02twotasks.ino:29
k_eat_msec
void k_eat_msec(unsigned int eatTime)
Definition:
krnl.c:292
pRun
JDN SIGER NOGO IN SIMPLIFY VRS struct k_t * pRun
Definition:
krnl.c:200
k_sleep
int k_sleep(int time)
Definition:
krnl.c:491
k_crt_task
struct k_t * k_crt_task(void(*pTask)(void), char prio, char *pStk, int stkSize)
Definition:
krnl.c:374
k_init
int k_init(int nrTask, int nrSem, int nrMsg)
Definition:
krnl.c:1152
k_start
int k_start()
Definition:
krnl.c:1192
krnl.h
st2
char st2[STK]
Definition:
krnlsimpledebugled.ino:13
setup
void setup()
Definition:
krnlsimpledebugled.ino:23
k_breakout
void k_breakout()
Definition:
krnlsimpledebugled.ino:49
p1
struct k_t * p1
Definition:
krnlsimpledebugled.ino:12
p3
struct k_t * p3
Definition:
krnlsimpledebugled.ino:12
st3
char st3[STK]
Definition:
krnlsimpledebugled.ino:13
STK
#define STK
Definition:
krnlsimpledebugled.ino:11
p2
struct k_t * p2
Definition:
krnlsimpledebugled.ino:12
st1
char st1[STK]
Definition:
krnlsimpledebugled.ino:13
tgeneric
void tgeneric()
Definition:
krnlsimpledebugled.ino:15
loop
void loop()
Definition:
krnlsimpledebugled.ino:45
k_t
Definition:
krnl.h:334
k_t::nr
unsigned char nr
Definition:
krnl.h:338
Generated by
1.9.1