krnl 1
Loading...
Searching...
No Matches
timedsem.ino
Go to the documentation of this file.
1#include <krnl.h>
2// eller krnl.h
3
4struct k_t *pt1,*sem1,*sem2;
5char s1[100];
6
7
8void doBlink(void) {
9 static char flag = 0;
10
11 flag = ! flag;
12 digitalWrite(13,flag);
13}
14
15void t1(void)
16{
17 int r;
18
19 while (1) {
20 // no signal timeout after 300 tick
21 // k_wait returns -1 to indicate timeout
22 r = k_wait(sem1,300);
23 doBlink();
24 }
25}
26
27struct k_t *pt2;
28char s2[100];
29void t2(void)
30{
31 int i=0,j;
32 char r;
34 while (1) {
35 Serial.println("TAK");
36 k_wait(sem2,0);
38 }
39}
40
41void setup()
42{
43 Serial.begin(9600);
44 pinMode(13,OUTPUT);
45 k_init(4,4,4);
46 pt1=k_crt_task(t1,11,s1,100);
47 pt2=k_crt_task(t2,11,s2,100);
48 sem1 = k_crt_sem(1,100);
49 sem2 = k_crt_sem(1,100);
50 k_start(10);
51}
52
53void loop()
54{
55}
56
57
58
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
struct k_t * sem2
int k_signal(struct k_t *sem)
Signal a semaphore w eventually task shift.
Definition krnl.c:636
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
int k_set_sem_timer(struct k_t *sem, int val)
attach a periodic timer to a semaphore, to be used for realtime
Definition krnl.c:586
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
volatile int j
Definition simpleisr.ino:7
void doBlink(void)
Definition timedsem.ino:8
void setup()
Definition timedsem.ino:41
void t2(void)
Definition timedsem.ino:29
void t1(void)
Definition timedsem.ino:15
void loop()
Definition timedsem.ino:53
Definition krnl.h:323