⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 rccu.h

📁 STR71X ARM 启动代码, 与网上的大多数移植代码有些不一样
💻 H
📖 第 1 页 / 共 2 页
字号:
;**------------------------------------------------------------------------------------------------------
;********************************************************************************************************/
RCCU_RCLK_CLOCKS_T RCCU_RCLKObtain(void);

/*********************************************************************************************************
;** 函数名称: RCCU_MCLKConfig
;** 功能描述: Selects the division factor for RCLK to obtain the MCLK clock for the CPU
;** 
;** 参    数: new_clock:RCCU_DEFAULT, RCCU_RCLK_2, RCCU_RCLK_4, RCCU_RCLK_8
;**  
;** 返 回 值: 无
;**         
;** 作   者: 罗辉联
;** 日   期: 2006年5月10日
;**-------------------------------------------------------------------------------------------------------
;** 修 改 人: 
;** 日   期: 
;**------------------------------------------------------------------------------------------------------
;********************************************************************************************************/
inline void RCCU_MCLKConfig(RCCU_CLOCK_DIV_T new_clock)
{
  PCU_MDIVR = (PCU_MDIVR & ~RCCU_FACT_MASK) | new_clock;
}
/*********************************************************************************************************
;** 函数名称: RCCU_FCLKConfig
;** 功能描述: Selects the division factor for RCLK to obtain the FCLK clock for the APB1 fast peripherals (PCLK1).
;** 
;** 参    数: new_clock:RCCU_DEFAULT, RCCU_RCLK_2, RCCU_RCLK_4, RCCU_RCLK_8
;**  
;** 返 回 值: 无
;**         
;** 作   者: 罗辉联
;** 日   期: 2006年5月10日
;**-------------------------------------------------------------------------------------------------------
;** 修 改 人: 
;** 日   期: 
;**------------------------------------------------------------------------------------------------------
;********************************************************************************************************/
inline void RCCU_FCLKConfig(RCCU_CLOCK_DIV_T  new_clock)
{
  PCU_PDIVR = (PCU_PDIVR & ~RCCU_FACT1_MASK) | new_clock;
}
/*********************************************************************************************************
;** 函数名称: RCCU_PCLKConfig
;** 功能描述: Selects the division factor for RCLK to obtain the PCLK clock for the APB2 peripherals (PCLK2).
;** 
;** 参    数: new_clock:RCCU_DEFAULT, RCCU_RCLK_2, RCCU_RCLK_4, RCCU_RCLK_8
;**  
;** 返 回 值: 无
;**         
;** 作   者: 罗辉联
;** 日   期: 2006年5月10日
;**-------------------------------------------------------------------------------------------------------
;** 修 改 人: 
;** 日   期: 
;**------------------------------------------------------------------------------------------------------
;********************************************************************************************************/
inline void RCCU_PCLKConfig (RCCU_CLOCK_DIV_T  new_clock)
{
  PCU_PDIVR =(PCU_PDIVR & ~RCCU_FACT2_MASK)|(new_clock << RCCU_FACT2_INDEX);
}

/*********************************************************************************************************
;** 函数名称: RCCU_PLL2Config
;** 功能描述: 配置 PLL2的 div 和 mul 系数
;** 
;** 参    数: new_mul:(RCCU_MUL_12, RCCU_MUL_16, RCCU_MUL_20, RCCU_MUL_28)
;**           new_div:(RCCU_DIV_1, RCCU_DIV_2, RCCU_DIV_3, RCCU_DIV_4, RCCU_DIV_5, RCCU_DIV_6, RCCU_DIV_7)
;**  
;** 返 回 值: 无
;**         
;** 作   者: 罗辉联
;** 日   期: 2006年5月10日
;**-------------------------------------------------------------------------------------------------------
;** 修 改 人: 
;** 日   期: 
;**------------------------------------------------------------------------------------------------------
;********************************************************************************************************/
void RCCU_PLL2Config (RCCU_PLL_MUL_T new_mul, RCCU_PLL_DIV_T new_div);
/*********************************************************************************************************
;** 函数名称: RCCU_USBCLKConfig
;** 功能描述: Selects the USB source clock
;** 
;** 参    数: new_clock:RCCU_PLL2_OUTPUT, RCCU_USBCK
;**  
;** 返 回 值: 无
;**         
;** 作   者: 罗辉联
;** 日   期: 2006年5月10日
;**-------------------------------------------------------------------------------------------------------
;** 修 改 人: 
;** 日   期: 
;**------------------------------------------------------------------------------------------------------
;********************************************************************************************************/
inline void RCCU_USBCLKConfig (RCCU_USB_CLOCKS_T  new_clock)
{
  PCU_PLL2CR = (PCU_PLL2CR & ~RCCU_USBEN_MASK)|(new_clock << RCCU_USBEN_INDEX);
}
/*********************************************************************************************************
;** 函数名称: RCCU_USBCLKObtain
;** 功能描述: 获取USB选择的时钟源
;** 
;** 参    数: 无
;**  
;** 返 回 值: RCCU_USBCK RCCU_PLL2_OUTPUT
;**         
;** 作   者: 罗辉联
;** 日   期: 2006年5月10日
;**-------------------------------------------------------------------------------------------------------
;** 修 改 人: 
;** 日   期: 
;**------------------------------------------------------------------------------------------------------
;********************************************************************************************************/
RCCU_USB_CLOCKS_T RCCU_USBCLKObtain (void);

/*********************************************************************************************************
;** 函数名称: RCCU_AnyClockObtain
;** 功能描述: 获得任何内部时钟频率
;** 
;** 参    数: new_clock:(RCCU_CLK2, RCCU_RCLK, RCCU_MCLK, RCCU_PCLK, RCCU_FCLK)
;**  
;** 返 回 值: 无
;**         
;** 作   者: 罗辉联
;** 日   期: 2006年5月10日
;**-------------------------------------------------------------------------------------------------------
;** 修 改 人: 
;** 日   期: 
;**------------------------------------------------------------------------------------------------------
;********************************************************************************************************/
UWORD32 RCCU_AnyClockObtain(RCCU_ClOCKS_T internal_clk);

/*********************************************************************************************************
;** 函数名称: RCCU_ITConfig
;** 功能描述: Configures the RCCU interrupts
;** 
;** 参    数: RCCU_it:RCCU_CK2_16_IT, RCCU_CKAF_IT RCCU_PLL1_LOCK_IT
;**           new_status: EANBLE or DISABLE
;**  
;** 返 回 值: 无
;**         
;** 作   者: 罗辉联
;** 日   期: 2006年5月10日
;**-------------------------------------------------------------------------------------------------------
;** 修 改 人: 
;** 日   期: 
;**------------------------------------------------------------------------------------------------------
;********************************************************************************************************/
inline void RCCU_ITConfig (RCCU_INTERRUPTS_T  RCCU_it, CONFIG_STATUS_T new_status)
{
  if (new_status == ENABLE) 
  	RCCU_CCR |= RCCU_it; 
  else 
  	RCCU_CCR &= ~RCCU_it;
}
/*********************************************************************************************************
;** 函数名称: RCCU_FlagBitObtain
;** 功能描述: Checks the RCCU clock flag register status
;** 
;** 参    数: RCCU Flags : RCCU_CK2_16, RCCU_CKAF, RCCU_PLL1_LOCK
;**  
;** 返 回 值: 			   SET or RESET
;**         
;** 作   者: 罗辉联
;** 日   期: 2006年5月10日
;**-------------------------------------------------------------------------------------------------------
;** 修 改 人: 
;** 日   期: 
;**------------------------------------------------------------------------------------------------------
;********************************************************************************************************/
inline FLAG_STATUS_T RCCU_FlagBitObtain (RCCU_FLAGS_T RCCU_flag )
{
  return (RCCU_CFR & RCCU_flag) == 0 ? RESET : SET;
}
/*********************************************************************************************************
;** 函数名称: RCCU_FlagClear
;** 功能描述: Clears a specified flag in the RCCU registers
;** 
;** 参    数: RCCU Flags : RCCU_CK2_16, RCCU_CKAF, RCCU_PLL1_LOCK
;**  
;** 返 回 值: 无
;**         
;** 作   者: 罗辉联
;** 日   期: 2006年5月10日
;**-------------------------------------------------------------------------------------------------------
;** 修 改 人: 
;** 日   期: 
;**------------------------------------------------------------------------------------------------------
;********************************************************************************************************/
inline void RCCU_FlagClear (RCCU_INTERRUPTS_T RCCU_it)
{
  RCCU_CFR |= RCCU_it;
}

/*********************************************************************************************************
;** 函数名称: RCCU_ResetSource
;** 功能描述: Return the source of the system reset
;** 
;** 参    数: 无
;**  
;** 返 回 值: The reset source
;**         
;** 作   者: 罗辉联
;** 日   期: 2006年5月10日
;**-------------------------------------------------------------------------------------------------------
;** 修 改 人: 
;** 日   期: 
;**------------------------------------------------------------------------------------------------------
;********************************************************************************************************/
inline RCCU_RESETSOURCES_T RCCU_ResetSource(void)
{

  switch(RCCU_CFR & RCCU_RESETSOURCES_MASK)
  {
    case 0x00000020: return RCCU_SOFTWARE_RESET;
    case 0x00000040: return RCCU_WDG_RESET;
    case 0x00000080: return RCCU_RTCALARM_RESET;
    case 0x00000200: return RCCU_LVD_RESET;
    case 0x00000400: return RCCU_WKP_RESET;
    default : return RCCU_EXTERNAL_RESET;
  }
}


#endif  //EN_ARM_RCCU > 0	

    #ifdef __cplusplus
    }
    #endif
    
#endif	// __RCCU_H

/****************************************end of file*******************************************/

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -