From c35e962218a943b2a11035666ff884ab3f47c8a4 Mon Sep 17 00:00:00 2001 From: Joel Sherrill Date: Mon, 24 Jul 1995 15:43:17 +0000 Subject: times reported reasonably correctly --- c/src/lib/libbsp/i386/go32/timer/timer.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) (limited to 'c') diff --git a/c/src/lib/libbsp/i386/go32/timer/timer.c b/c/src/lib/libbsp/i386/go32/timer/timer.c index b57832edb7..402fa9c334 100644 --- a/c/src/lib/libbsp/i386/go32/timer/timer.c +++ b/c/src/lib/libbsp/i386/go32/timer/timer.c @@ -35,6 +35,7 @@ static inline unsigned long long rdtsc( void ) return result; } #else +#define US_PER_ISR 250 extern rtems_isr timerisr(); static rtems_isr_entry Old_Ticker; #endif @@ -83,10 +84,10 @@ void Timer_initialize() while ( Ttimer_val == 0 ) continue; - /* load timer for 250 microsecond period */ + /* load timer for US_PER_ISR microsecond period */ outport_byte( TIMER_MODE, TIMER_SEL0|TIMER_16BIT|TIMER_RATEGEN ); - outport_byte( TIMER_CNTR0, US_TO_TICK(250) >> 0 & 0xff ); - outport_byte( TIMER_CNTR0, US_TO_TICK(250) >> 8 & 0xff ); + outport_byte( TIMER_CNTR0, US_TO_TICK(US_PER_ISR) >> 0 & 0xff ); + outport_byte( TIMER_CNTR0, US_TO_TICK(US_PER_ISR) >> 8 & 0xff ); #endif /* PENTIUM */ } #if defined(pentium) @@ -117,7 +118,7 @@ int Read_timer() inport_byte( TIMER_CNTR0, lsb ); inport_byte( TIMER_CNTR0, msb ); clicks = msb << 8 | lsb; - total = Ttimer_val + 250 - TICK_TO_US( clicks ); + total = (Ttimer_val * US_PER_ISR) + (US_PER_ISR - TICK_TO_US( clicks )); #endif /* pentium */ if ( Timer_driver_Find_average_overhead == 1 ) -- cgit v1.2.3