?? rccu.h
字號:
/****************************************Copyright (c)**************************************************
**
**
** 杭州央海軟件科技有限公司
**
** http://www.armgcc.com
**
**--------------文件信息--------------------------------------------------------------------------------
** 文 件 名: rccu.h
** 創 建 人: 羅輝聯
** 創建日期: 2006年5月10日
** 描 述: 該文件包含了所有GPIO功能函數原型與所需要的常量
**
**--------------歷史版本--------------------------------------------------------------------------------
** 創 建 人: 羅輝聯
** 版 本: V1.0
** 日 期: 2006年5月10日
** 描 述: 原始版本
**
**------------------------------------------------------------------------------------------------------
********************************************************************************************************/
#ifndef __RCCU_H
#define __RCCU_H
#ifdef __cplusplus
extern "C" {
#endif
#include "cpu_cfg.h"
#if EN_ARM_RCCU > 0 //決定是否編譯該文件
/************************************** 宏定義,常量定義 ******************************************/
// Main Oscillator Frequency value = 16 Mhz
#define RCCU_MAIN_OSC 16000000
// RTC Oscillator Frequency value = 32 768 Hz
#define RCCU_RTC_OSC 32768
#define RCCU_DIV2_MASK 0x00008000
#define RCCU_DIV2_INDEX 0x0F
#define RCCU_FACT_MASK 0x0003
#define RCCU_FACT1_MASK 0x0003
#define RCCU_FACT2_MASK 0x0300
#define RCCU_FACT2_INDEX 0x08
#define RCCU_MX_MASK 0x00000030
#define RCCU_MX_INDEX 0x04
#define RCCU_DX_MASK 0x00000007
#define RCCU_FREEN_MASK 0x00000080
#define RCCU_CSU_CKSEL_MASK 0x00000001
#define RCCU_CK2_16_MASK 0x00000008
#define RCCU_CKAF_SEL_MASK 0x00000004
#define RCCU_LOCK_MASK 0x00000002
#define RCCU_USBEN_MASK 0x0100
#define RCCU_USBEN_INDEX 0x08
#define RCCU_RESETSOURCES_MASK 0x000006E0
/************************************** 枚舉類型定義 *******************************************/
typedef enum {
RCCU_DEFAULT=0x00,
RCCU_RCLK_2 =0x01,
RCCU_RCLK_4 =0x02,
RCCU_RCLK_8 =0x03
} RCCU_CLOCK_DIV_T;
typedef enum {
RCCU_PLL1_OUTPUT,
RCCU_CLOCK2_16,
RCCU_CLOCK2,
RCCU_RTC_CLOCK
} RCCU_RCLK_CLOCKS_T;
typedef enum {
RCCU_MUL_12=0x01,
RCCU_MUL_16=0x03,
RCCU_MUL_20=0x00,
RCCU_MUL_28=0x02
} RCCU_PLL_MUL_T;
typedef enum {
RCCU_DIV_1=0x00,
RCCU_DIV_2=0x01,
RCCU_DIV_3=0x02,
RCCU_DIV_4=0x03,
RCCU_DIV_5=0x04,
RCCU_DIV_6=0x05,
RCCU_DIV_7=0x06
} RCCU_PLL_DIV_T;
typedef enum {
RCCU_PLL2_OUTPUT = 0x01,
RCCU_USBCK = 0x00
} RCCU_USB_CLOCKS_T;
typedef enum {
RCCU_CLK2,
RCCU_RCLK,
RCCU_MCLK,
RCCU_PCLK,
RCCU_FCLK
} RCCU_ClOCKS_T;
typedef enum {
RCCU_PLL1_LOCK_IT = 0x0080,
RCCU_CKAF_IT = 0x0100,
RCCU_CK2_16_IT = 0x0200,
RCCU_STOP_IT = 0x0400
} RCCU_INTERRUPTS_T;
typedef enum {
RCCU_PLL1_LOCK = 0x0002,
RCCU_CKAF_ST = 0x0004,
RCCU_PLL1_LOCK_I = 0x0800,
RCCU_CKAF_I = 0x1000,
RCCU_CK2_16_I = 0x2000,
RCCU_STOP_I = 0x4000
} RCCU_FLAGS_T;
typedef enum {
RCCU_EXTERNAL_RESET = 0x00000000,
RCCU_SOFTWARE_RESET = 0x00000020,
RCCU_WDG_RESET = 0x00000040,
RCCU_RTCALARM_RESET = 0x00000080,
RCCU_LVD_RESET = 0x00000200,
RCCU_WKP_RESET = 0x00000400
}RCCU_RESETSOURCES_T;
/************************************** 結構體類型定義 ******************************************/
/********************************** 全局外部函數原型聲明 *****************************************/
/*********************************************************************************************************
;** 函數名稱: RCCU_CKDIV2Config
;** 功能描述: Enables/Disables CK管腳輸入的時鐘2分頻
;**
;** 參 數: new_status:可配置為ENABLE 或 DISABLE
;**
;** 返 回 值: 無
;**
;** 作 者: 羅輝聯
;** 日 期: 2006年5月10日
;**-------------------------------------------------------------------------------------------------------
;** 修 改 人:
;** 日 期:
;**------------------------------------------------------------------------------------------------------
;********************************************************************************************************/
inline void RCCU_CKDIV2Config(CONFIG_STATUS_T new_status)
{
if (new_status == ENABLE)
RCCU_CFR |= RCCU_DIV2_MASK;
else
RCCU_CFR &= ~RCCU_DIV2_MASK;
}
/*********************************************************************************************************
;** 函數名稱: RCCU_CKDIV2StatusObtain
;** 功能描述: Gets the Div2 Flag status
;**
;** 參 數: 無
;**
;** 返 回 值: Div2 Flag status:RESET 或 SET
;**
;** 作 者: 羅輝聯
;** 日 期: 2006年5月10日
;**-------------------------------------------------------------------------------------------------------
;** 修 改 人:
;** 日 期:
;**------------------------------------------------------------------------------------------------------
;********************************************************************************************************/
inline FLAG_STATUS_T RCCU_CKDIV2StatusObtain(void)
{
return (RCCU_CFR & RCCU_DIV2_MASK) == 0 ? RESET : SET;
}
/*********************************************************************************************************
;** 函數名稱: RCCU_PLL1Config
;** 功能描述: 配置 PLL1的 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_PLL1Config(RCCU_PLL_MUL_T new_mul, RCCU_PLL_DIV_T new_div);
/*********************************************************************************************************
;** 函數名稱: RCCU_RCLKConfig
;** 功能描述: 選擇RCLK的時鐘源
;**
;** 參 數: new_clock:(RCCU_PLL1_OUTPU, RCCU_CLOCK2_16, RCCU_CLOCK2, RCCU_RTC_CLOCK)
;**
;** 返 回 值: 無
;**
;** 作 者: 羅輝聯
;** 日 期: 2006年5月10日
;**-------------------------------------------------------------------------------------------------------
;** 修 改 人:
;** 日 期:
;**------------------------------------------------------------------------------------------------------
;********************************************************************************************************/
void RCCU_RCLKConfig(RCCU_RCLK_CLOCKS_T new_clock);
/*********************************************************************************************************
;** 函數名稱: RCCU_RCLKObtain
;** 功能描述: 獲取系統PCLK選擇的時鐘源
;**
;** 參 數: 無
;**
;** 返 回 值: RCCU_RTC_CLOCK RCCU_CLOCK2_16 RCCU_PLL1_OUTPUT RCCU_CLOCK2
;**
;** 作 者: 羅輝聯
;** 日 期: 2006年5月10日
;**-------------------------------------------------------------------------------------------------------
;** 修 改 人:
;** 日 期:
;**------------------------------------------------------------------------------------------------------
;********************************************************************************************************/
RCCU_RCLK_CLOCKS_T RCCU_RCLKObtain(void);
/*********************************************************************************************************
;** 函數名稱: RCCU_MCLKConfig
;** 功能描述: Selects the division factor for RCLK to obtain the MCLK clock for the CPU
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -