123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384 |
- #include "sysctrl.h"
- #include "flash.h"
- static volatile uint32_t sys_ticks = 0;
- //systick中断函数
- void SysTick_IRQHandler(void)
- {
- // static boolean_t bFlag = TRUE;
- //
- // if(TRUE == bFlag)
- // {
- // bFlag = FALSE;
- // Gpio_WriteOutputIO(STK_Module_LED_PORT, STK_Module_LED_PIN, TRUE); //LED 引脚输出高电平
- // }
- // else
- // {
- // bFlag = TRUE;
- // Gpio_WriteOutputIO(STK_Module_LED_PORT, STK_Module_LED_PIN, FALSE); //LED引脚输出低电平
- // }
-
- sys_ticks++;
-
- }
- uint32_t sys_tick_get(void)
- {
- return sys_ticks;
- }
- //时钟初始化配置
- void board_sysclkInit(void)
- {
- stc_sysctrl_clk_cfg_t stcCfg;
-
- ///< 开启FLASH外设时钟
- Sysctrl_SetPeripheralGate(SysctrlPeripheralFlash, TRUE);
-
- ///<========================== 时钟初始化配置 ===================================
- ///< 因要使用的时钟源HCLK小于24M:此处设置FLASH 读等待周期为0 cycle(默认值也为0 cycle)
- Flash_WaitCycle(FlashWaitCycle0);
-
- ///< 时钟初始化前,优先设置要使用的时钟源:此处设置RCH为4MHz
- Sysctrl_SetRCHTrim(SysctrlRchFreq4MHz);
-
- ///< 选择内部RCH作为HCLK时钟源;
- stcCfg.enClkSrc = SysctrlClkRCH;
- ///< HCLK SYSCLK/1
- stcCfg.enHClkDiv = SysctrlHclkDiv1;
- ///< PCLK 为HCLK/1
- stcCfg.enPClkDiv = SysctrlPclkDiv1;
- ///< 系统时钟初始化
- Sysctrl_ClkInit(&stcCfg);
- }
- //将时钟从RCH4MHz切换至RCH24MHz,
- void board_Rch4MHzTo24MHz(void)
- {
- ///<============== 将时钟从RCH4MHz切换至RCH24MHz ==============================
- ///< RCH时钟不同频率的切换,需要先将时钟切换到RCL,设置好频率后再切回RCH
- Sysctrl_SetRCLTrim(SysctrlRclFreq32768);
- Sysctrl_ClkSourceEnable(SysctrlClkRCL, TRUE);
- Sysctrl_SysClkSwitch(SysctrlClkRCL);
-
- ///< 加载目标频率的RCH的TRIM值
- Sysctrl_SetRCHTrim(SysctrlRchFreq24MHz);
- ///< 使能RCH(默认打开,此处可不需要再次打开)
- //Sysctrl_ClkSourceEnable(SysctrlClkRCH, TRUE);
- ///< 时钟切换到RCH
- Sysctrl_SysClkSwitch(SysctrlClkRCH);
- ///< 关闭RCL时钟
- Sysctrl_ClkSourceEnable(SysctrlClkRCL, FALSE);
- }
|