51 lines
1.5 KiB
C
51 lines
1.5 KiB
C
/*==============================================================================
|
||
* Инициализация тактирования с использованием бибилотеки PLIB035
|
||
*------------------------------------------------------------------------------
|
||
* ЦНИИ СЭТ, Разваляев Алексей <wot890089@mail.ru>
|
||
*==============================================================================
|
||
* ЦНИИ СЭТ
|
||
*==============================================================================
|
||
*/
|
||
|
||
//-- Includes ------------------------------------------------------------------
|
||
#include "periph_config.h"
|
||
|
||
__IO uint32_t uwTick; // Milliseconds ticks
|
||
//-- Defines -------------------------------------------------------------------
|
||
|
||
//-- Peripheral init functions -------------------------------------------------
|
||
void sysclk_init(void)
|
||
{
|
||
OperationStatus status;
|
||
status = RCU_PLL_AutoConfig(SYSCLK_CORE_CLOCK_MHZ*__MHZ, SYSCLK_Oscil_Type);
|
||
if (status == ERROR)
|
||
{
|
||
Error_Handler();
|
||
}
|
||
SystemCoreClockUpdate();
|
||
RCU_ClkOutConfig(RCU_SysPeriphClk_PLLClk, 1, ENABLE);
|
||
RCU_ClkOutCmd(ENABLE);
|
||
|
||
/* Прерывание должно быть каждую миллисекунду:
|
||
Для тактирования N Гц это каждый N / 1000 тик */
|
||
SysTick_Config(SYSCLK_CORE_CLOCK_MHZ*__MHZ/1000);
|
||
}
|
||
|
||
|
||
uint32_t millis(void)
|
||
{
|
||
return uwTick;
|
||
}
|
||
void millis_inc(void)
|
||
{
|
||
uwTick++;
|
||
}
|
||
uint32_t micros(void)
|
||
{
|
||
return 0;
|
||
}
|
||
void micros_inc(void)
|
||
{
|
||
uwTick++;
|
||
}
|