krnl
1
Loading...
Searching...
No Matches
examples
oldexamples
rt-arduino-periodic-delay
rt-arduino-periodic-delay.ino
Go to the documentation of this file.
1
2
#include <
krnl.h
>
3
//Jens 2021
4
5
6
7
// k_task_periodic_delay - for sampling etc
8
9
// return 0: ok and have been waiting - was arriving in good time
10
// 1: ok just on time - no wait
11
// 2: behind - no wait
12
// -1 Time parameter above 60000
13
14
15
void
wr
(
void
)
16
{
17
int
i
= 0,ee;
18
unsigned
long
ii,
x
;
19
20
// similar o freertos' vTaskdDelayUntil
21
i
=
k_millis
();
// get curren tick from kernel as starting point
22
23
while
(1) {
24
ee = k_task_periodic_delay(&ii, 100);
//sleep( random(100, 1000)); // NB k_sleep and not k_eat_ticks bq then you will never release CPU
25
DI
();
26
x
=
k_millis_counter
;
27
EI
();
28
Serial.print(ee); Serial.print(
" "
);
29
Serial.println(
x
);
30
k_sleep
( random(90, 105));
31
}
32
}
33
34
void
setup
()
35
{
36
Serial.begin(115200);
// for output from task 1
37
delay(2000);
38
Serial.print(
"RW START"
);
39
k_init
(1, 0, 0);
40
k_crt_task
(
wr
, 12, 200);
41
42
k_start
(1);
// start kernel with tick speed 1 milli seconds
43
Serial.println(
"if coming hre then init went wrong"
);
44
}
45
46
void
loop
() {
47
/* loop will never be called */
48
}
i
volatile int i
Definition
k02twotasks.ino:29
x
int x
Definition
k04periodic-clip.ino:11
k_millis
unsigned long k_millis(void)
return no of millisec sincs start NB no leap seconds - its clean
Definition
krnl.c:1247
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
DI
#define DI()
Definition
krnl.h:478
EI
#define EI()
Definition
krnl.h:479
k_millis_counter
unsigned long k_millis_counter
Definition
krnl.c:161
setup
void setup()
Definition
rt-arduino-periodic-delay.ino:34
wr
void wr(void)
Definition
rt-arduino-periodic-delay.ino:15
loop
void loop()
Definition
rt-arduino-periodic-delay.ino:46
Generated by
1.15.0