From b06279dfc01d46226c081570607096a8095ff00e Mon Sep 17 00:00:00 2001 From: Joel Sherrill Date: Fri, 7 May 1999 16:28:43 +0000 Subject: Bug fix from Gunter Magin : in libcpu/powerpc/mpc860/clock/clock.c:InstallClock() the reload value for the PIT is defined as: pit_value = (BSP_Configuration.microseconds_per_tick * Cpu_table.clicks_per_usec) - 1 ; What exactly is a tick, and what is a click? My confusion stems from the fact, that Jay defines clicks_per_usec to 1 which is correct for his configuration, where a 4MHz clock is predivided by 4 and then fed to the PIT. So I assume a "click" is just the period of the PIT input frequency. However, our HW config seems to have 32.768 kHz crystal input for PIT. Mandatory division by 4 means 8.196kHz (122usec) at the PIT. I think, the above assignment should read: pit_value = (BSP_Configuration.microseconds_per_tick / Cpu_table.clicks_per_usec) - 1; where I can define Cpu_table.clicks_per_usec in bspstart.c to 122 (clicks_per_usec). That would lead to a PIT reload value of 10000/122 - 1 = 81 to reach a 10ms "tick" period. --- c/src/lib/libcpu/powerpc/mpc860/clock/clock.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'c/src/lib/libcpu') diff --git a/c/src/lib/libcpu/powerpc/mpc860/clock/clock.c b/c/src/lib/libcpu/powerpc/mpc860/clock/clock.c index 928c9e5a96..d63cd5a5cf 100644 --- a/c/src/lib/libcpu/powerpc/mpc860/clock/clock.c +++ b/c/src/lib/libcpu/powerpc/mpc860/clock/clock.c @@ -74,7 +74,7 @@ void Install_clock(rtems_isr_entry clock_isr) Clock_driver_ticks = 0; - pit_value = BSP_Configuration.microseconds_per_tick * + pit_value = BSP_Configuration.microseconds_per_tick / Cpu_table.clicks_per_usec; if (pit_value == 0) { pit_value = 0xffff; -- cgit v1.2.3