OSDN Git Service

Update lejos_osek to nxtOSEK_v205b0.zip
[nxt-jsp/etrobo-atk.git] / nxtOSEK / samples_c / rcxtest / rcxtest.c
1 /* rcxtest.c */ \r
2 #include "kernel.h"\r
3 #include "kernel_id.h"\r
4 #include "ecrobot_interface.h"\r
5 \r
6 /* OSEK declarations */\r
7 DeclareCounter(SysTimerCnt);\r
8 DeclareTask(Task1);\r
9 \r
10 /* LEJOS OSEK hooks */\r
11 void ecrobot_device_initialize()\r
12 {\r
13         ecrobot_set_RCX_power_source(NXT_PORT_S1);\r
14         ecrobot_set_RCX_power_source(NXT_PORT_S4);\r
15 }\r
16 void ecrobot_device_terminate()\r
17 {\r
18         ecrobot_term_RCX_power_source(NXT_PORT_S1);\r
19         ecrobot_term_RCX_power_source(NXT_PORT_S4);\r
20 }\r
21 \r
22 /* LEJOS OSEK hook to be invoked from an ISR in category 2 */\r
23 void user_1ms_isr_type2(void)\r
24 {\r
25   StatusType ercd;\r
26 \r
27   ercd = SignalCounter(SysTimerCnt); /* Increment OSEK Alarm Counter */\r
28   if(ercd != E_OK)\r
29   {\r
30     ShutdownOS(ercd);\r
31   }\r
32 }\r
33 \r
34 /* Task1 executed every 500msec */\r
35 TASK(Task1)\r
36 {\r
37   S16 light_sensor;\r
38   S16 rev_sensor;\r
39   U8  touch_sensor;\r
40         \r
41   light_sensor = ecrobot_get_RCX_sensor(NXT_PORT_S1);\r
42   touch_sensor = ecrobot_get_RCX_touch_sensor(NXT_PORT_S2);\r
43   rev_sensor   = ecrobot_get_RCX_sensor(NXT_PORT_S4);\r
44         \r
45   display_clear(0);\r
46 \r
47   display_goto_xy(0, 0);\r
48   display_string("RCX Test");\r
49 \r
50   display_goto_xy(0, 2);\r
51   display_string("Light: ");\r
52   display_int(light_sensor, 0);\r
53 \r
54   display_goto_xy(0, 3);\r
55   display_string("Touch: ");\r
56   display_int(touch_sensor, 0);\r
57 \r
58   display_goto_xy(0, 4);\r
59   display_string("  Rev: ");\r
60   display_int(rev_sensor, 0);\r
61 \r
62   display_update();\r
63 \r
64   TerminateTask();\r
65 }\r