1.43 CLASSB_ClockTest
Function
CLASSB_TEST_STATUS CLASSB_ClockTest(uint32_t cpu_clock_freq, uint8_t error_limit, uint16_t clock_test_tmr1_cycles, bool running_context);
Summary
This self-test checks whether the CPU clock frequency is within the permissible limit.
Description
This self-test uses TMR1 and SysTick to measure the CPU clock frequency. The TMR1 is clocked at 32768 Hz from the external crystal and CPU clock can be from any other high frequency oscillator. If the CPU clock frequency is within specified error limit, it returns PASS. The test duration is defined by the value of tmr1_cycles. The TMR1 is configured to take clock from an external 32.768 kHz accurate crystal.
Precondition
None.
Parameters
cpu_clock_freq - Expected CPU clock frequency.
error_limit - Permissible error limit (eg; 5 means +-5 percent).
clock_test_tmr1_cycles - The test duration in terms of TMR1 cycles.
running_context - False for startup test. True for run-time test.
Returns
CLASSB_TEST_STATUS - Status of the test.
Example
CLASSB_TEST_STATUS classb_test_status = CLASSB_TEST_NOT_EXECUTED; // Perform run-time test of the CPU clock classb_test_status = CLASSB_ClockTest(120000000, 5, 500, true);
Remarks
This self-test can be used during startup as well as run-time. This self-test shall be used only if there is an external 32.768 kHz accurate crystal connected to the XOSC32K of the microcontroller.