+++ /dev/null
-//\r
-// sleep.cc\r
-//\r
-// LEJOS-OSEK Task sleep functions\r
-//\r
-// Written 9-jan-2008 by rwk\r
-//\r
-// Copyright 2007, 2008 by Takashi Chikamasa and Robert W. Kramer\r
-//\r
-\r
-extern "C" {\r
-#include "kernel.h"\r
-#include <LejosOSEKCC.h>\r
-\r
-DeclareEvent(SensorEventMask);\r
-DeclareEvent(SleepEventMask);\r
-};\r
-bool sensorWaiting[N_SENSORS] = {0};\r
-TaskType sensorWaitID[N_SENSORS];\r
-\r
-TaskType sleeperID[N_SLEEPERS];\r
-unsigned int sleepCounter[N_SLEEPERS];\r
-bool isSleeping[N_SLEEPERS] = {0};\r
-\r
-void sensorSleep(unsigned char port) {\r
- GetTaskID(sensorWaitID+port);\r
- sensorWaiting[port] = true;\r
- \r
- WaitEvent(SensorEventMask);\r
- ClearEvent(SensorEventMask);\r
-}\r
-\r
-void sleep(unsigned int duration) {\r
- \r
- for (int i=0;i<N_SLEEPERS;i++)\r
- if (!isSleeping[i]) {\r
- isSleeping[i] = true;\r
- sleepCounter[i] = duration;\r
- GetTaskID(sleeperID+i);\r
- WaitEvent(SleepEventMask);\r
- ClearEvent(SleepEventMask);\r
- break;\r
- }\r
-}\r