Bug fix from Gunter Magin <magin@skil.camelot.de>:

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.
This commit is contained in:
Joel Sherrill
1999-05-07 16:28:43 +00:00
parent f779efcba8
commit b06279dfc0

View File

@@ -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;