/* Function returns number of ticks per second for system timer */
uint32_t  SystemTimer1_GetTicsPerSecond(LDD_TDeviceData *DeviceDataPtr)
{
    uint32_t period_ticks;

    SystemTimer1_GetPeriodTicks(DeviceDataPtr, &period_ticks);
    return SystemTimer1_GetInputFrequency(DeviceDataPtr) / period_ticks;
}
Exemple #2
0
static uint8_t get_systick_period_in_ms(void) {
	uint32_t num_clock_period = 0; //HW tick.
	uint32_t input_freq_in_hz = SystemTimer1_GetInputFrequency(NULL);
	SystemTimer1_GetPeriodTicks(NULL, &num_clock_period);

	return 1000 * num_clock_period / input_freq_in_hz;
}
Exemple #3
0
/* Function returns number of ticks per second for system timer */
uint32_t  SystemTimer1_GetTicsPerSecond(LDD_TDeviceData *DeviceDataPtr)
{
    uint32_t input_frequency;
    uint32_t period_ticks;

    /* Parameter DeviceDataPtr is not used, suppress unused argument warning */
    (void)DeviceDataPtr;
    input_frequency = SystemTimer1_GetInputFrequency(NULL);
    SystemTimer1_GetPeriodTicks(NULL, &period_ticks);
    return input_frequency / (period_ticks);
}
uint32_t system_timer_init(const void * timer_data_ptr)
{
    uint32_t hw_ticks_per_tick;
    KERNEL_DATA_STRUCT_PTR kernel_data = _mqx_kernel_data;

    /* Parameter is not used, suppress unused argument warning */
    (void)timer_data_ptr;

    SystemTimerDeviceDataPtr  = SystemTimer1_Init(NULL);

    /* Set number of system ticks per second */
    kernel_data->TICKS_PER_SECOND = SystemTimer1_GetTicsPerSecond(SystemTimerDeviceDataPtr);

    _time_set_hwtick_function((MQX_GET_HWTICKS_FPTR)&SystemTimer1_GetCounterValue, (pointer)SystemTimerDeviceDataPtr);

    /* Set number of hardware ticks per system tick */
    SystemTimer1_GetPeriodTicks(SystemTimerDeviceDataPtr, &hw_ticks_per_tick);
    _time_set_hwticks_per_tick(hw_ticks_per_tick);
    
    return MQX_OK;
}