summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGlenn Humphrey <glenn.humphrey@oarcorp.com>2009-12-17 22:07:06 +0000
committerGlenn Humphrey <glenn.humphrey@oarcorp.com>2009-12-17 22:07:06 +0000
commita3bf3ec1dd40e6fd5f2f910f9dc34939dd659fa9 (patch)
tree81b23ae024e67207df9187373c1ef19e716c5b5c
parentc7ee08547586d127741ed426d0deac2d378ed9d8 (diff)
2009-12-17 Glenn Humphrey <glenn.humphrey@OARcorp.com>
* timer/init.c, timer_server/init.c: Simplified examples to insure consistent behavior for all cases.
-rw-r--r--led/ChangeLog5
-rw-r--r--led/timer/init.c58
-rw-r--r--led/timer_server/init.c44
3 files changed, 34 insertions, 73 deletions
diff --git a/led/ChangeLog b/led/ChangeLog
index f00f7e3..9880e1f 100644
--- a/led/ChangeLog
+++ b/led/ChangeLog
@@ -1,5 +1,10 @@
2009-12-17 Glenn Humphrey <glenn.humphrey@OARcorp.com>
+ * timer/init.c, timer_server/init.c: Simplified examples to insure
+ consistent behavior for all cases.
+
+2009-12-17 Glenn Humphrey <glenn.humphrey@OARcorp.com>
+
* delay/init.c, event_server/init.c, msg_server/init.c,
posix_cond_server/test.c, posix_delay_nanosleep/test.c,
posix_delay_sleep/test.c, posix_mutex_server/test.c, ratemon1/init.c,
diff --git a/led/timer/init.c b/led/timer/init.c
index ec38ea6..f61bd97 100644
--- a/led/timer/init.c
+++ b/led/timer/init.c
@@ -1,5 +1,5 @@
/*
- * COPYRIGHT (c) 1989-2007.
+ * COPYRIGHT (c) 1989-2009.
* On-Line Applications Research Corporation (OAR).
*
* The license and distribution terms for this file may be
@@ -14,30 +14,38 @@
#include "../led.h"
-rtems_id Timer1;
-rtems_id Timer2;
-
-#if defined(__LED_PRINTING)
volatile int led_do_print;
volatile int led_value;
-#endif
+rtems_id Timer1;
+rtems_id Timer2;
+
+void LED_Change_Routine( void ) {
+ int _led_do_print;
+ int _led_value;
+
+ /* technically the following 4 statements are a critical section */
+ _led_do_print = led_do_print;
+ _led_value = led_value;
+ led_do_print = 0;
+ led_value = 0;
+
+ if ( _led_do_print ) {
+ if ( _led_value == 1 )
+ LED_OFF();
+ else
+ LED_ON();
+ }
+}
rtems_timer_service_routine Timer_Routine( rtems_id id, void *ignored )
{
rtems_status_code status;
-#if defined(__LED_PRINTING)
if ( id == Timer1 )
led_value = 1;
else
- led_value = 0;
+ led_value = 2;
led_do_print = 1;
-#else
- if ( id == Timer1 )
- LED_ON();
- else
- LED_OFF();
-#endif
status = rtems_timer_fire_after(
id,
@@ -66,33 +74,17 @@ rtems_task Init(
fputs( "Timer2 create failed\n", stderr );
Timer_Routine(Timer1, NULL);
+ LED_Change_Routine();
status = rtems_task_wake_after( rtems_clock_get_ticks_per_second() );
Timer_Routine(Timer2, NULL);
+ LED_Change_Routine();
-#if defined(__LED_PRINTING)
while (1) {
- int _led_do_print;
- int _led_value;
-
status = rtems_task_wake_after( 10 );
-
- /* technically the following 4 statements are a critical section */
- _led_do_print = led_do_print;
- _led_value = led_value;
- led_do_print = 0;
- led_value = 0;
-
- if ( _led_do_print ) {
- if ( _led_value )
- LED_ON();
- else
- LED_OFF();
-
- }
+ LED_Change_Routine();
}
-#endif
status = rtems_task_delete( RTEMS_SELF );
}
diff --git a/led/timer_server/init.c b/led/timer_server/init.c
index 75bebe5..27ef348 100644
--- a/led/timer_server/init.c
+++ b/led/timer_server/init.c
@@ -1,5 +1,5 @@
/*
- * COPYRIGHT (c) 1989-2007.
+ * COPYRIGHT (c) 1989-2009.
* On-Line Applications Research Corporation (OAR).
*
* The license and distribution terms for this file may be
@@ -14,30 +14,17 @@
#include "../led.h"
-rtems_id Timer1;
-rtems_id Timer2;
-
-#if defined(__LED_PRINTING)
-volatile int led_do_print;
-volatile int led_value;
-#endif
+rtems_id Timer1;
+rtems_id Timer2;
rtems_timer_service_routine Timer_Routine( rtems_id id, void *ignored )
{
rtems_status_code status;
-#if defined(__LED_PRINTING)
if ( id == Timer1 )
- led_value = 1;
+ LED_OFF();
else
- led_value = 0;
- led_do_print = 1;
-#else
- if ( id == Timer1 )
LED_ON();
- else
- LED_OFF();
-#endif
status = rtems_timer_server_fire_after(
id,
@@ -80,29 +67,6 @@ rtems_task Init(
Timer_Routine(Timer2, NULL);
-#if defined(__LED_PRINTING)
- while (1) {
- int _led_do_print;
- int _led_value;
-
- status = rtems_task_wake_after( 10 );
-
- /* technically the following 4 statements are a critical section */
- _led_do_print = led_do_print;
- _led_value = led_value;
- led_do_print = 0;
- led_value = 0;
-
- if ( _led_do_print ) {
- if ( _led_value )
- LED_ON();
- else
- LED_OFF();
-
- }
- }
-#endif
-
status = rtems_task_delete( RTEMS_SELF );
}