dit projekt
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
volatile int i
Definition: k02twotasks.ino:29
void k_eat_msec(unsigned int eatTime)
Definition: krnl.c:292
JDN SIGER NOGO IN SIMPLIFY VRS struct k_t * pRun
Definition: krnl.c:200
int k_sleep(int time)
Definition: krnl.c:491
struct k_t * k_crt_task(void(*pTask)(void), char prio, char *pStk, int stkSize)
Definition: krnl.c:374
int k_init(int nrTask, int nrSem, int nrMsg)
Definition: krnl.c:1152
int k_start()
Definition: krnl.c:1192
char st2[STK]
void setup()
void k_breakout()
struct k_t * p1
struct k_t * p3
char st3[STK]
#define STK
struct k_t * p2
char st1[STK]
void tgeneric()
void loop()
Definition: krnl.h:334
unsigned char nr
Definition: krnl.h:338