diff options
author | Glenn Humphrey <glenn.humphrey@oarcorp.com> | 2009-12-17 22:07:06 +0000 |
---|---|---|
committer | Glenn Humphrey <glenn.humphrey@oarcorp.com> | 2009-12-17 22:07:06 +0000 |
commit | a3bf3ec1dd40e6fd5f2f910f9dc34939dd659fa9 (patch) | |
tree | 81b23ae024e67207df9187373c1ef19e716c5b5c | |
parent | c7ee08547586d127741ed426d0deac2d378ed9d8 (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/ChangeLog | 5 | ||||
-rw-r--r-- | led/timer/init.c | 58 | ||||
-rw-r--r-- | led/timer_server/init.c | 44 |
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 ); } |