diff options
author | Joel Sherrill <joel.sherrill@OARcorp.com> | 1995-07-21 20:10:49 +0000 |
---|---|---|
committer | Joel Sherrill <joel.sherrill@OARcorp.com> | 1995-07-21 20:10:49 +0000 |
commit | 1690c6b636dad196f1327021e00a721cebc1f264 (patch) | |
tree | 2df7eadaa8c2a30c839969ac1d5df34317816e47 /c/src/lib/libbsp/i386/go32 | |
parent | updating go32 to make timer more accurate (diff) | |
download | rtems-1690c6b636dad196f1327021e00a721cebc1f264.tar.bz2 |
after testing go32 and cvme961
Diffstat (limited to 'c/src/lib/libbsp/i386/go32')
-rw-r--r-- | c/src/lib/libbsp/i386/go32/timer/timer.c | 11 | ||||
-rw-r--r-- | c/src/lib/libbsp/i386/go32/timer/timerisr.s | 2 |
2 files changed, 8 insertions, 5 deletions
diff --git a/c/src/lib/libbsp/i386/go32/timer/timer.c b/c/src/lib/libbsp/i386/go32/timer/timer.c index a7f911baee..725aaac0f9 100644 --- a/c/src/lib/libbsp/i386/go32/timer/timer.c +++ b/c/src/lib/libbsp/i386/go32/timer/timer.c @@ -40,6 +40,9 @@ static void restore_timer( void ) } #else /* pentium */ rtems_isr timerisr(); + +#define TIMER_ISR_US 10000 + #endif /* pentium */ void Timer_initialize() @@ -74,10 +77,10 @@ void Timer_initialize() /* Wait for ISR to be called at least once */ WAIT(); - /* load timer for 250 microsecond period */ + /* load timer for TIMER_ISR_US 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(TIMER_ISR_US) >> 0 & 0xff); + outport_byte( TIMER_CNTR0, US_TO_TICK(TIMER_ISR_US) >> 8 & 0xff); } /* Wait for ISR to be called at least once */ @@ -101,7 +104,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 * TIMER_ISR_US) + (TIMER_ISR_US - TICK_TO_US( clicks )); #endif /* pentium */ if ( Timer_driver_Find_average_overhead == 1 ) diff --git a/c/src/lib/libbsp/i386/go32/timer/timerisr.s b/c/src/lib/libbsp/i386/go32/timer/timerisr.s index ef4fa51728..cbd6b5cb6d 100644 --- a/c/src/lib/libbsp/i386/go32/timer/timerisr.s +++ b/c/src/lib/libbsp/i386/go32/timer/timerisr.s @@ -27,7 +27,7 @@ PUBLIC(timerisr) SYM (timerisr): - addl $250,_Ttimer_val # another 250 microseconds + addl $1,_Ttimer_val # another tick push edx push eax movw $0x20,dx |