Всем привет !
У меня системная частота всё время меняется для экономии энергии, поэтому хочу использовать в качестве systic прерывание от таймера, привязанного к внешнему кварцу 32768 . Если кто-нибудь делал, прокомментируйте ход мыслей . Всё что я написал, необходимо и достаточно ? Ничего не забыл ?
1) В freeRTOSconfig.h нужно заменить дефайн
#define xPortSysTickHandler SysTick_Handler
на нужный мне источник прерывания.
2) Функция, в которой настраивается systick
#if configOVERRIDE_DEFAULT_TICK_CONFIGURATION == 0
void vPortSetupTimerInterrupt( void )
{
..............
Заботливо взята в дефайн configOVERRIDE_DEFAULT_TICK_CONFIGURATION , и выставив этот дефайн в 1 можно определять свою функцию vPortSetupTimerInterrupt
3) Однако, функция для усыпления системы
__weak void vPortSuppressTicksAndSleep( TickType_t xExpectedIdleTime )
содержит строчки вроде
portNVIC_SYSTICK_CTRL_REG &= ~portNVIC_SYSTICK_ENABLE_BIT;
т.е. работает напрямую с systic таймером , без возможности выбрать его через дефайн, и стало быть её надо поправить руками.
Заранее спасибо за советы !