26#if defined (__AVR_ATmega2560__) || defined (__AVR_ATmega1280__) || defined(__AVR_ATmega2561__)
27ISR(INT4_vect, ISR_NAKED) {
31#if defined(__AVR_ATmega168__) || defined(__AVR_ATmega328P__) || defined(__AVR_ATmega328__) || defined(__AVR_ATmega32U4__)
32 ISR(INT0_vect, ISR_NAKED) {
57 Serial.print(
"timeout "); Serial.print(miss); Serial.print(
" "); Serial.println(
ISRoverflow);
61 Serial.print(
"get kick no "); Serial.print(
i); Serial.print(
" "); Serial.println(
ISRoverflow);
73 Serial.println(
"timeout222 ");
88 Serial.println(
"just bef init part");
97 Serial.println(
"just bef k_start");
100 pinMode(2, INPUT_PULLUP);
106 __asm__
volatile (
"cli");
108#if defined (__AVR_ATmega2560__) || defined (__AVR_ATmega1280__) || defined(__AVR_ATmega2561__)
109 EICRB |= (1 << ISC41);
110 EIMSK |= (1 << INT4);
112 Serial.println(EICRB, HEX);
113 Serial.println(EIMSK, HEX);
117#if defined(__AVR_ATmega168__) || defined(__AVR_ATmega328P__) || defined(__AVR_ATmega328__) || defined(__AVR_ATmega32U4__)
118 EICRA |= (1 << ISC01);
119 EIMSK |= (1 << INT0);
122 __asm__
volatile (
"sei");
126 Serial.println(
"If you see this then krnl didnt start :-( ");
int ki_signal(struct k_t *sem)
signal a semaphore from AN ISR - no task shift , do not enable intr,...
int k_sleep(int time)
let task sleep for a number of milliseconds
int k_wait(struct k_t *sem, int timeout)
stand wait on semaphore call with timeout facility
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
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
int k_init(int nrTask, int nrSem, int nrMsg)
ISR(INT0_vect, ISR_NAKED)