📄 setup.c
字号:
//MCUInit:芯片初始化-------------------------------------------------------*
//功能:系统初始化设置 *
// (1)由外部晶振f,通过本程序设置内部总线频率fbus *
// (2) 确定是否禁止看门狗(COP) *
//参数:无 *
//返回:无 *
//说明:该程序与芯片具体型号有关. *
// (1)外部晶振f=32.768kHz,使用内部PLL(锁相环),产生内部总线时钟频率 *
// fbus=2.4576MHz. *
// (2)禁止COP模块 *
//-------------------------------------------------------------------------*
#include "GP32C.h" //映像寄存器名定义
void MCUInit(void)
{
//1.设置CONFIG2、CONFIG1
//1.1 设置CONFIG2
CONFIG2=0b00000001;
// ||_SCIBDSRC=1内部总线时钟用作SCI时钟
// |__OSCSTOPENB=0 在stop模式下禁止振荡器工作
//1.2 设置CONFIG1
CONFIG1=0b00111101;
//||||||||_COPD=1 禁止COP模块
//|||||||__STOP=0 禁止STOP指令
//||||||___SSREC=1 32个CGMXCLK周期退出STOP模式
//|||||____LVI5OR3=1 LVI工作在5V
//||||_____LVIPWRD=1 禁止LVI模块电源
//|||______LVIRSTD=1 允许LVI复位信号
//||_______LVISTOP=0 在stop模式下禁止LVI
//|________COPRS=0 COP溢出范围使用长的时间
//2.PLL编程
PCTL=0x00; //①禁止PLL:清零PLL控制寄存器PCTL
PCTL=0x01; //②将P、E写入PTCL,置VCO的参考频率为2
PMSH=0x01; //③将N写入PMSH、PMSL,置VCO的倍频因子为$12C
PMSL=0x2C;
PMRS=0b10000000; //④将L写入PMRS,置VCO的输出频率范围系数为$80
PRDS=0x01; //⑤将R写入PRDS
PCTL|=(1<<5); //⑥置PCTL.PLLON=1,启动PLL电路
PBWC|=(1<<7); //⑦PBWC自动带宽控制位=1,选择自动控制方式
PCTL|=(1<<4); //⑧PCTL.BCS=1,选择PLL电路为时钟源
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -