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

📄 mcuinit.c

📁 只是一个基于飞思卡尔十六位单片机编写的C一个例程SPI
💻 C
字号:
//[MCUInit.c]DG128芯片初始化函数-------------------------------------------*
//功  能:                                                                  *
//    芯片初始化设置:通过设置CLKSEL寄存器,确定内部总线的时钟源;通过PLL编  *
//    程,设置PLLCLK;通过设置INTCR和COPCTL寄存器,分别决定是否允许IRQ中断和  *
//    看门狗。                                                             *
//    (1)外部晶振= 4Mhz BusClock=25Mhz                                     *
//    (2)使能IRQ中断                                                       *
//    (3)使能看门狗                                                        *
//参  数:无                                                                *
//返  回:无                                                                *
//-------------------------------------------------------------------------*

//头文件
#include "MCUInit.h"    //芯片初始化头文件

void MCUInit(void)
{
    //(1)CLKSEL的第7位置0,选择系统时钟源为OSCCLK
    //在PLL程序执行前,内部总线频率=OSCCLK/2
    //clksel.7(PLL选择位)决定内部总线时钟来源
    CLKSEL = 0x7F;      //此时:BusClock=OSCCLK/2
    //(2)禁止PLL
    PLLCTL = 0xB3;//PLLCTL.6(pllon)设为0;先关闭PLL
    //(3)根据需要的时钟频率设置SYNR和REFDV寄存器
    //计算公式:PLLCLK=2*OSCCLK*((SYNR+1)/(REFDV+1))
    SYNR = 0x18;         //对PLLCLK增频的因子
    REFDV = 0x07;        //对PLLCLK分频的因子
    //(4)使能PLL
    PLLCTL |= (1<<6);    //PLLCTL.6(pllon)设为1;开PLL
    //(5)通过判断CRGFLG寄存器的LOCK位,确定PLL是否稳定 
    while ((CRGFLG&0x08) == 0x00);
    //(6)时钟频率稳定后,允许锁相环时钟源作为系统时钟源;
    CLKSEL |= (1<<7);    //若Foscclk=4Mhz,本句执行后:Fpllclk=25Mhz
    //(7)设置是否允许看门狗
    INTCR  = 0x40;       //IRQCR.6(IRQEN) =1使能IRQ中断 
    COPCTL = 0x87;       //COPCTL.2-0(cr2:cr0) =111使能看门狗
}

⌨️ 快捷键说明

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