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

📄 pll_b.h

📁 摩托罗拉MMC2107在ucosII的移植代码
💻 H
📖 第 1 页 / 共 4 页
字号:
		PLL_B_ClockMode_t		   ClockMode;		 /* PLL Clock mode       */
		PLL_B_PLLMode_t			PLLMode;		    /* PLL mode select      */
		PLL_B_ClockSource_t		ClockSource; 	 /* External Clock src   */
		PLL_B_StickyLockBit_t	StickyLockBit;  /* Lock Sticky Bit      */
		PLL_B_LockStatus_t		LockStatusBit;	 /* Lock status bit      */
		PLL_B_StickyClockBit_t	StickyClockBit; /* Clock Sticky Bit     */

	}	 PLL_B_Status_t, *pPLL_B_Status_t;


/***** PLL_B_StatusAlert Structure Definition                     *****/

typedef struct
	{
		PLL_B_Mode_t	      InvalidPLLMode;/* Invalid mode to change   */
		                                    /* frequency                */
		PLL_B_LockStatus_t   PhaseLockFailure;	/* Failure to obtain     */
		                                    /* a phase lock             */
		                                    
	}	PLL_B_StatusAlert_t,	*pPLL_B_StatusAlert_t;


/**********************************************************************/
/* Register Bits & Masks                                              */
/**********************************************************************/

/***** Synthesizer Control Register *****/

#define SYNCR_STPMD_MAX 		0x3
#define SYNCR_STPMD_BITNO 		2
#define SYNCR_STPMD_MASK 		(SYNCR_STPMD_MAX << SYNCR_STPMD_BITNO)

#define SYNCR_FWKUP_BITNO 		5
#define SYNCR_FWKUP_MASK 		(1 << SYNCR_FWKUP_BITNO)
#define SYNCR_DISCLK_BITNO 		6
#define SYNCR_DISCLK_MASK 		(1 << SYNCR_DISCLK_BITNO)

#define SYNCR_LOCEN_BITNO 		7
#define SYNCR_LOCEN_MASK 		(1 << SYNCR_LOCEN_BITNO)

#define SYNCR_RFD_MAX 			0x7
#define SYNCR_RFD_RESET 		0x1
#define SYNCR_RFD_BITNO 		8
#define SYNCR_RFD_MASK 			(SYNCR_RFD_MAX << SYNCR_RFD_BITNO)
#define SYNCR_MFD_RFD_CLEAR   0x88ff

#define SYNCR_LOCRE_BITNO 		11
#define SYNCR_LOCRE_MASK 		(1 << SYNCR_LOCRE_BITNO)

#define SYNCR_MFD_MAX 			0x7
#define SYNCR_MFD_MIN 			0x0
#define SYNCR_MFD_RESET 		0x2
#define SYNCR_MFD_BITNO 		12
#define SYNCR_MFD_MASK 			(SYNCR_MFD_MAX << SYNCR_MFD_BITNO)

#define SYNCR_LOLRE_BITNO 		15
#define SYNCR_LOLRE_MASK 		(1 << SYNCR_LOLRE_BITNO)

#define SYNCR_RFD_RESET_MASK 	(SYNCR_RFD_RESET << SYNCR_RFD_BITNO)
#define SYNCR_MFD_RESET_MASK 	(SYNCR_MFD_RESET << SYNCR_MFD_BITNO)
#define SYNCR_RESET_MASK		(SYNCR_RFD_RESET_MASK + SYNCR_MFD_RESET_MASK)

/***** Synthesizer Status Register *****/

#define SYNSR_LOCS_BITNO 		10
#define SYNSR_LOCS_MASK 		(1 << SYNSR_LOCS_BITNO)
#define SYNSR_LOCK_BITNO 		11
#define SYNSR_LOCK_MASK 		(1 << SYNSR_LOCK_BITNO)
#define SYNSR_LOCKS_BITNO 		12
#define SYNSR_LOCKS_MASK 		(1 << SYNSR_LOCKS_BITNO)
#define SYNSR_PLLREF_BITNO    13
#define SYNSR_PLLREF_MASK 		(1 << SYNSR_PLLREF_BITNO)
#define SYNSR_PLLSEL_BITNO    14
#define SYNSR_PLLSEL_MASK 		(1 << SYNSR_PLLSEL_BITNO)
#define SYNSR_MODE_BITNO 		15
#define SYNSR_MODE_MASK 		(1 << SYNSR_MODE_BITNO)

/**********************************************************************/
/* Prototypes                                                         */
/**********************************************************************/

/***** .1 Function Prototype - PLL_B_Init                         *****/

PLL_B_ReturnCode_t PLL_B_Init_f	
                     (
                        pPLL_B_t,
                        PLL_B_ResetOnLockFailureControl_t,
                        PLL_B_VCOMultiplyFactorDivider_t,
                        PLL_B_ResetOnClockFailureControl_t,
                        PLL_B_VCOReducedFrequencyDivider_t,
                        PLL_B_MonitorClockFailure_t,
                        PLL_B_DisableClockout_t,
                        PLL_B_FastWakeupControl_t,
                        PLL_B_StopModeControl_t,
                        pPLL_B_StatusAlert_t,
                        PLL_B_ReturnCode_t (*PollFuncAddr)()
                     );

/***** Function Prototype - PLL_B_GetResetStatus                  *****/

PLL_B_ReturnCode_t   PLL_B_GetResetStatus_f
                        (
                        	pPLL_B_t,
                        	pPLL_B_Status_t
                        );

/***** Function Prototype - PLL_B_Reset                           *****/

PLL_B_ReturnCode_t 	PLL_B_Reset_f
                        (
                            pPLL_B_t
                        );

/***** Function Prototype - PLL_B_GetRuntimeStatus                *****/

PLL_B_ReturnCode_t 	PLL_B_GetRuntimeStatus_f
                        (
                        	pPLL_B_t,
                        	pPLL_B_Status_t
                        );

/***** Function Prototype - PLL_B_ControlVCOFreq                  *****/

PLL_B_ReturnCode_t 	PLL_B_ControVCOFrequency_f	
                        (
                            pPLL_B_t,
                            PLL_B_VCOMultiplyFactorDivider_t,
                            PLL_B_VCOReducedFrequencyDivider_t,
                            pPLL_B_StatusAlert_t,
                            PLL_B_ReturnCode_t (*PollFuncAddr)()
                        );

/***** Function Prototype - PLL_B_ControlClockFailureResponse     *****/

PLL_B_ReturnCode_t 	PLL_B_ControlClockFailureResponse_f
                        (
                            pPLL_B_t,				
                            volatile PLL_B_ResetOnLockFailureControl_t,
                            volatile PLL_B_ResetOnClockFailureControl_t,
                            volatile PLL_B_MonitorClockFailure_t
                        );

/***** Function Prototype - PLL_B_ControlStopMode                 *****/

PLL_B_ReturnCode_t   PLL_B_ControlStopMode_f
                        (
                            pPLL_B_t, 				
                            volatile PLL_B_FastWakeupControl_t,
                            volatile PLL_B_StopModeControl_t
                        );

/***** Function Prototype - PLL_B_ControlVCOOutput                *****/

PLL_B_ReturnCode_t 	PLL_B_ControlVCOOutput_f
                        (
                            pPLL_B_t, 				
                            volatile PLL_B_DisableClockout_t
                        );

/***** Function Prototype - PLL_B_GetRegister                     *****/

PLL_B_ReturnCode_t	PLL_B_GetRegister_f	
                        (
                            pPLL_B_t, 			
                            PLL_B_Register_t,
                            UINT16 *
                        );

/***** Function Prototype - PLL_B_SetRegister                     *****/

PLL_B_ReturnCode_t PLL_B_SetRegister_f
                        (
                            pPLL_B_t, 			
                            UINT16
                        );

PLL_B_ReturnCode_t PLL_B_WaitForPhaseLock_f
                        (
                           void
                        );

/**********************************************************************/
/* Macro:   PLL_B_Init                                                */    
/*                                                                    */
/* Purpose:   Call PLL_B_Init_f function with optional                */
/*              parameter checking.                                   */
/*   												          		                */
/* Input:                                                             */
/*   PLLPtr   	: PLL_B base address for this driver.                  */
/*   Register   : Select amount the PLL registers                     */
/*   GetRegisterPtr : Result address for selected PLL register value  */
/*                          					                            */
/* Output:                                                            */
/*  PLL_B_ERR_NONE                       :No error                    */
/*  PLL_B_ERR_INVALID_HANDLE             :PLL base address is zero.   */
/*  PLL_B_ERR_INVALID_LOSS_LOCK_RESET    :Invalid Reset on loss lock  */
/*  PLL_B_ERR_INVALID_FREQUENCY_MULTIPLIER :Invalid Freq multiplier   */
/*  PLL_B_ERR_INVALID_LOSS_CLOCK_RESET   :Invalid Reset on loss clock */
/*  PLL_B_ERR_INVALID_FREQUENCY_DIVIDER  :Invalid Frequency divider   */
/*  PLL_B_ERR_INVALID_MONITOR_CLOCK      :Invalid monitor loss clock  */
/*  PLL_B_ERR_INVALID_DISABLE_CLOCKOUT   :Invalid Disable clockout    */
/*  PLL_B_ERR_INVALID_FAST_WAKEUP        :Invalid Fast wakeup         */
/*  PLL_B_ERR_INVALID_STOP_MODE          :Invalid Stop mode selection */
/*  PLL_B_ERR_INVALID_STATUS_ALERT_ADDR  :Status warnings             */
/**********************************************************************/
#define PLL_B_Init(                                                    \
    			    PLLPtr, 				                                   \
    	          ResetOnLockFailureValue,                               \
    	          VCOMultiplicationFactorDivider,                        \
    	          ResetOnClockFailureValue,                              \
    	          VCOReducedFrequencyDivider,                            \
    			    MonitorClockFailureValue,                              \
    			    DisableClockoutValue,                                  \
    			    FastWakeupValue,                                       \
    			    StopModeValue,                                         \
    			    StatusAlertPtr,                                        \
                PollFuncAddr                                           \
                )                                                      \
(																	                    \
   (PLL_B_PARAM_CHECKING) ?                                            \
 (											  		                                \
  ((PLLPtr) == NULL) ?						               	              \
   PLL_B_ERR_INVALID_HANDLE :                                          \
                                                                       \
  ((StatusAlertPtr) == NULL) ?						               	     \
   PLL_B_ERR_INVALID_STATUS_ALERT_ADDR :                               \
                                                                       \

⌨️ 快捷键说明

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