krnl 1
Loading...
Searching...
No Matches
semsync.ino
Go to the documentation of this file.
1#include <krnl.h>
2
3struct k_t *pt1,*sem1;
4char s1[200];
5struct k_t *pt2;
6char s2[200];
7
8void doBlink(void) {
9static char flag = 0;
10 flag = !flag;
11 digitalWrite(13,flag);
12}
13
14void t1(void)
15{
16 int i=0;
17 char r;
18 while (1) {
19 doBlink();
20 k_wait(sem1,0);
21 i++;
22 Serial.println("w");
23 }
24}
25
26void t2(void)
27{
28 while (1) {
29 k_sleep(30);
31 }
32}
33
34void setup()
35{
36 Serial.begin(9600);
37 k_init(3,3,3);
38 pinMode(13,OUTPUT);
39 pt1=k_crt_task(t1,11,s1,200);
40 pt2=k_crt_task(t2,11,s2,200);
41 sem1 = k_crt_sem(1,100);
42 k_start(10);
43}
44
45void loop()
46{
47}
48
49
volatile int i
struct k_t * pt2
struct k_t * pt1
unsigned char s2[110]
Definition k03asleep.ino:25
unsigned char s1[110]
Definition k03asleep.ino:25
struct k_t * sem1
int k_signal(struct k_t *sem)
Signal a semaphore w eventually task shift.
Definition krnl.c:636
int k_sleep(int time)
let task sleep for a number of milliseconds
Definition krnl.c:445
int k_wait(struct k_t *sem, int timeout)
stand wait on semaphore call with timeout facility
Definition krnl.c:683
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
struct k_t * k_crt_sem(int init_val, int maxvalue)
change task priority and reinserts it in task Q and do a task shift
Definition krnl.c:544
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 * t2
Definition krnlgen.ino:3
void doBlink(void)
Definition semsync.ino:8
void setup()
Definition semsync.ino:34
void t2(void)
Definition semsync.ino:26
void t1(void)
Definition semsync.ino:14
void loop()
Definition semsync.ino:45
Definition krnl.h:323