krnl 1
Loading...
Searching...
No Matches
k01.ino
Go to the documentation of this file.
1/* k01
2 One task printing own usage of stak
3*/
4
5#include <krnl.h>
6
7#define STKSIZE 100
8
9#define TASKPRIO 10
10
12struct k_t * pStak;
13
14void task()
15{
16char flipflop=0;
17 while (1) {
18 k_eat_time(10); // consume 10 millisec of CPU time
19 k_sleep(300); // sleep 100 ticks - replacement for delay bq k_seelp releases CPU
20 if (flipflop) {
21 flipflop = 0;
22 digitalWrite(13,HIGH);
23 }
24 else {
25 flipflop = 1;
26 digitalWrite(13,LOW);
27 }
28}
29}
30
31void setup() {
32
33 Serial.begin(9600); // if you dont use serial port then avoid initializing bq it takse memory
34
35 pinMode(13,OUTPUT);
36
37 k_init(1, 0, 0); // 1 task, 0 semaphores, 0 messaegQueues */
38
40
41 k_start(1); /* start krnl timer speed 1 milliseconds*/
42
43 Serial.println("If you see this then krnl didnt start :-( ");
44}
45
46void loop() {}
#define STKSIZE
Definition k02.ino:8
char stak[100]
Definition k02.ino:12
#define TASKPRIO
Definition k08isrsem.ino:14
int k_sleep(int time)
let task sleep for a number of milliseconds
Definition krnl.c:445
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_init(int nrTask, int nrSem, int nrMsg)
Definition krnl.c:1108
int k_start()
Definition krnl.c:1149
void setup()
Definition k01.ino:31
void task()
Definition k01.ino:14
struct k_t * pStak
Definition k01.ino:12
void loop()
Definition k01.ino:46
struct k_t * task
Definition krnl.h:323