Initializes and installs a simple timecounter.
A simple timecounter can be used if the hardware provides no free running counter. A periodic hardware counter must be provided. The counter period must be synchronous to the clock tick. The counter ticks per clock tick is scaled up to the next power of two.
{
return some.value;
}
{
return some.is_pending;
}
static uint32_t some_tc_get_timecount(
struct timecounter *tc )
{
return rtems_timecounter_simple_downcounter_get(
tc,
some_tc_get,
some_tc_is_pending
);
}
static void some_tc_tick( void )
{
rtems_timecounter_simple_downcounter_tick( &some_tc, some_tc_get );
}
void some_tc_init( void )
{
uint64_t us_per_tick;
uint32_t counter_frequency_in_hz;
uint32_t counter_ticks_per_clock_tick;
counter_frequency_in_hz = some_tc_get_frequency();
counter_ticks_per_clock_tick =
(uint32_t) ( counter_frequency_in_hz * us_per_tick ) / 1000000;
some_tc_init_hardware( counter_ticks_per_clock_tick );
some_tc_init_clock_tick_interrupt( some_tc_tick );
&some_tc,
counter_frequency_in_hz,
counter_ticks_per_clock_tick,
some_tc_get_timecount
);
}
void rtems_timecounter_simple_install(rtems_timecounter_simple *tc, uint32_t counter_frequency_in_hz, uint32_t counter_ticks_per_clock_tick, timecounter_get_t *get_timecount)
Initializes and installs a simple timecounter.
Definition: tcsimpleinstall.c:43
#define rtems_configuration_get_microseconds_per_tick()
Gets the number of microseconds per clock tick configured for this application.
Definition: config.h:527
Simple timecounter to support legacy clock drivers.
Definition: timecounter.h:107
This header file provides the Timecounter Support API.