#include "osp.h" #include "osp.c" int led = 13; void taskIdle(void); void task0(void); void task1(void); void taskIdle(void) { osTaskPreempt(); delay(1000); osSemV(0); for(;;) { osTaskPreempt(); if (serialEventRun) serialEventRun(); //delay(100); } } void task0(void){ for(;;) { osTaskPreempt(); osSemP(0); digitalWrite(led, HIGH); delay(500); digitalWrite(led, LOW); delay(200); delay(1000); osSemV(1); osSemP(0); //delay(5000); osSemV(1); } } void task1(void){ for(;;) { osTaskPreempt(); osSemP(1); digitalWrite(led, HIGH); delay(200); digitalWrite(led, LOW); delay(200); osSemV(0); osSemP(1); digitalWrite(led, HIGH); delay(200); digitalWrite(led, LOW); delay(200); delay(1000); osSemV(0); } } void setup(void){ } void loop( void ){ osInit(); osSemInit(0, 0); osSemInit(1, 0); osTaskCreate(0, taskIdle); osTaskCreate(1, task0); osTaskCreate(2, task1); // osBegin will never return ! osBegin(); } // the standard arduino main function we need to think about /* int main(void) { init(); #if defined(USBCON) USBDevice.attach(); #endif setup(); for (;;) { loop(); if (serialEventRun) serialEventRun(); } return 0; } */