📄 setup.c
字号:
//[MCUInit.c]DG128芯片初始化函数-------------------------------------------*
//功 能: *
// 芯片初始化设置:通过设置CLKSEL寄存器,确定内部总线的时钟源;通过PLL编 *
// 程,设置PLLCLK;通过设置INTCR和COPCTL寄存器,分别决定是否允许IRQ中断和 *
// 看门狗。 *
// (1)外部晶振=9.8304Mhz BusClock=19.6608Mhz *
// (2)禁止IRQ中断 *
// (3)禁止看门狗 *
//参 数:无 *
//返 回:无 *
//-------------------------------------------------------------------------*
#include "Setup.h"
#define VREGR *(volatile unsigned char*)(0x0019+0x00)
void Setup(void)
{
/*禁止看门狗*/
COPCTL = 0x00;
/*使能3.3V产生器*/
VREGR = 0x02;
/*在PLL程序执行前,fBus = OSCCLK / 2
CLKSEL.7(PLL选择位)决定内部总线时钟来源
=O,BusClock=OSCCLK/2; =1,BusClock=PLLCLK/2
CLKSEL&=0x7f;此时:BusClock=OSCCLK/2,
执行完毕后,USB总线频率为60Mhz,总线频率为30Mhz
*/
UMCR |= UMCR_MCE_MASK;
UMCR &= ~UMCR_SPHY_MASK;
CLKSEL &= 0x7f;
asm{
nop
nop
nop
nop
};
while(!(CRGFLG & CRGFLG_LOCK_MASK));
/*转换系统时钟源为PLL方式*/
CLKSEL |= 0x80; //本句执行后:BusClock=PLLCLK/2
INITEE = 0x21;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -