/* Derivative peripheral declarations */
#include "derivative.h"
/* Definitions and function prototypes */
#include "DZ60_init.h"
//FEI切换到PEE模式,外部晶振=4MHZ,总线频率=8MHZ(   中文手册,P144页)
/* External crystal oscillator = 4MHz */
/* FOR PEE mode:
Bus_Clock = (1/2)*[(Osc_clock/Ref_div)*VCO_div]/(Bus_div) = 8MHz */
#define BUS_DIV 0       /* Bus divider = 0, divide by 1 */
#define REF_DIV 2       /* Reference divider = 2, divide by 4 */
#define VCO_DIV 4       /* VCO divider = 4, multiply by 16 */
void MCG_Init(void)
{
SOPT1_COPT = 0;
//1
//a)
MCGC2_BDIV    = BUS_DIV; //0
MCGC2_RANGE   = 1;
MCGC2_HGO     = 1;
MCGC2_EREFS   = 1;
MCGC2_ERCLKEN = 1;
//b)
while(!MCGSC_OSCINIT); //循环检测,表明EREFS选择的晶体已经完成初始化
//c)
MCGC1_CLKS = 0X02;
MCGC1_RDIV = 0X07;
MCGC1_IREFS = 0;
//d)
while( MCGSC_IREFST );
//e)
while( (MCGSC_CLKST ^ 0X02));
//2
//a)
MCGC2_LP = 1;
//b)
MCGC1_RDIV = REF_DIV;//2;
//c)
MCGC3_PLLS = 1;
MCGC3_VDIV = VCO_DIV;//4;
//d)
MCGC2_LP = 0;
//e)
while(!MCGSC_PLLST);
//f)
while(!MCGSC_LOCK);
//3
//a)
MCGC1_CLKS = 0X00;
//b)
while((MCGSC_CLKST ^ 0X03));
} 
/******************************************************************************************
| FUNCTION NAME    :  MCU_SetBusClock
| CALLED BY        :  xxxx
| PRECONDITIONS    :  xxxx
| INPUT PARAMETERS :  xxxx
| OUTPUT PARAMETERS:  xxxx
| RETURN VALUE     :  xxxx
| DESCRIPTION      :  set MCGOUT and bus frequency,BDIV = 1, VDIV = 16, RDIV = 4, OSC = 4.332MHz
|                     MCGOUT = [(OSC / RDIV) * VDIV] / BDIV;
|                     MCGOUT = [(4.332MHz / 4) * 16] / 1 = 17.328MHz;
|                     Bus frequency = MCGOUT / 2 = 8.664MHz
| NOTE             :  xxxx
|*******************************************************************************************/
void MCU_SetBusClock(void)    /* XOSC 4.332MHZ,BUS clock 8.664MHZ */
{
//SOPT1 = 0;                  /* STOP WATCH DOG */
SOPT1_COPT =3;               /* enable watchdog 1s timeout*/
/*After RESET start in FEI Mode
FEI > FBE     ***************************************
Set MCGC2:
BDIV[6:7] | RANGE | HGO | LP | EFERS | ERCLKEN | EREFSTEN | */
MCGC2 = 0X36;
while(!MCGSC_OSCINIT);      /* Wait till OSCINIT in MCGSC is one */
_asm SEI;                   /* MUST BLOCK INTERRUPTS  */
MCGC1 = 0XB8;               /* Set MCGC1:| CLKS[6:7] | RDIV[3:5] | IREFS | IRCLKEN | IREFSTEN | */
while(MCGSC_IREFST);        /* Wait till IRFEST in MCGSC is zero */
while((MCGSC_CLKST)^(0x02));/* Wait till external clock source is selected */
/* FBE > BLPE **************************************** */
MCGC2_LP = 1;
MCGC1 = 0X90;               /* Set the range of frequency divider  4.332m/4  (1mhz~2mhz) */
MCGC3 = 0X44;
while(!MCGSC_PLLST);        /* Wait till Source of PLLS clock is set to PLL clock */
/* BLPE > PBE **************************************** */
/* Clear LP to switch to PBE Mode*/
MCGC2_LP = 0;
while(!MCGSC_LOCK);         /* Wait for PLL to lock */
/* PBE > PEE ***************************************** */
/* Select clock source */
MCGC1 = 0X10;
while((MCGSC_CLKST)^(0x03));/* Check if output of the PLL is selected as current clock mode */
_asm CLI;                   /* CAN ENEBLE INTERRUPTS */
}


 

 



												

飞思卡尔单片机DZ60---时钟初始化相关推荐

  1. 飞思卡尔单片机PLL时钟总线模块

    要设定PWM模块首先要确定片内总线时钟,MC9S12XS系列单片机增加了时钟产生器模块,锁定内部频率更高的压控振荡器VCO频率,作为系统时钟,单片机的内部时钟可达80MHz,片内总线时钟可达40MHz ...

  2. 飞思卡尔MC9S12X:CAN初始化配置

    飞思卡尔MC9S12X:CAN初始化配置 飞思卡尔MC9S12X:CAN发送配置 飞思卡尔MC9S12X:CAN接收配置 飞思卡尔MC9S12X:CAN驱动函数在主函数中的应用 一.MSCAN初始化流 ...

  3. 飞思卡尔单片机教程(1)——从安装开始

    放假了有木有!是不在家特别闲?是不是放假前立志学单片机来着?如果你拿到了天大精仪荣誉出品的JM60开发板,而且你还带回家了.. 结果安装起来好麻烦!!! WIN7 64位不可以用!USB3.0接口插上 ...

  4. 飞思卡尔之摄像头图像处理——初始化

    今天是2018年3月9日,在经过一段时间熟悉赛道和小车特性之后,我正式开始飞思卡尔智能车的图像处理学习,并负责我们组 图像算法的编写. 首先是图像的二值化处理 二值化算法的思路是:设定一个阈值valv ...

  5. 飞思卡尔单片机DZ60---EEPROM读写

    //向EEPROM中写入数据,然后读出数据,赋值给PORTD,点亮相应的LED灯 #include <hidef.h> /* for EnableInterrupts macro */ # ...

  6. 飞思卡尔单片机DZ60---实时中断

    //RTI实时中断实验 //RTC模块包括一个状态和控制寄存器.一个8位计数寄存器和一个8位模数寄存器 //实时中断功能用来产生周期性中断.RTI有三个可选时钟源:LPO 1KHZ内部振荡器,32KH ...

  7. 飞思卡尔单片机AD模块简述(1)

    S12XS系列MCU的ATD模块共有27个寄存器,包括6个ATD转换控制寄存器,2个ATD转换状态寄存器,1个ATD比较使能寄存器,1个ATD比较方式寄存器,1个ATD转换输入使能寄存器和16个ATD ...

  8. 飞思卡尔单片机编程与c语言,飞思卡尔单片机高效C语言编程(中文)

    高效C语言编程实验,包括:CodeWarrior的使用.中断.数据段的定义.常量数据段.变量.位操作.数组.指针.函数内的自变量.优化方法.Manual Optimization(手工优化).Proc ...

  9. 飞思卡尔单片机PE开发工具硬件及软件

    原文链接: http://blog.sina.com.cn/s/blog_8ebff8d7010121tm.html 1.HC(S)08系列 开发机硬件:USB-ML-12 CYCLONE PRO U ...

  10. 飞思卡尔16位单片机(十五)—— 如何批量烧写芯片

    我们在进行飞思卡尔单片机开发时,一般使用CodeWarrior软件和usbdm调试器进行.但是在实际生产过程中,采用这种方式烧写芯片效率比较低,而且很多情况下,程序的源码不希望对生产人员开放,本文就是 ...

最新文章

  1. CentOS 7 yum源安装Nginx
  2. 二分图匹配的匈牙利算法
  3. div搜索框与按钮不在一行_前阿里巴巴运营专家:搜索框的5大运营玩法
  4. java自动获取时间 月代码_【java代码获取系统时间和执行定时任务】
  5. wxpython使用简介_wxpython简介
  6. 全球数据库--基金/管理产品--分类/行业平均
  7. 手机照片脑补成超大画幅,这个GAN想象力惊人 | Keras实现
  8. 第2章_Java基本语法(下):程序流程控制
  9. 秋色园网站转移过程记录篇
  10. 计算机蓝屏代码0x0000007b,电脑开机出现蓝屏代码0x0000007b怎么办?
  11. 苹果微信换行怎么打_微信朋友圈发长文被折叠成一行怎么破?附苹果安卓解决方案...
  12. 4 HQL操作之 -- DDL命令
  13. Dreamweaver2019版安装教程
  14. 关于Hex文件的解析和修改应用
  15. python cv2读取图片后进行通道变换以及PIL阅读图像的通道转换
  16. 西门子s7协议 android,工控协议 | 西门子S7协议学习分享
  17. 水果店早读课:开水果店用什么进货,精品水果店从哪里进货
  18. Window复制文件命令
  19. 【抽奖软件】C++,duilib实现完整抽奖软件系统(有源码)
  20. 百度企业信用js加密研究

热门文章

  1. 5000系列组装拆卸单成本
  2. 【2017满分】尔雅 刘忠良 绿色康复答案题库
  3. ubuntu等linux系统如何阅读caj文档
  4. 使用Ajax开发一个用户注册程序
  5. echarts官网折线图
  6. mysql 用户及权限
  7. oracle中sql拼接字符串函数,sql字符串连接函数
  8. Golang代码测试:一点到面用测试驱动开发
  9. uniapp 小程序授权登录时 获取不到用户头像等信息 只能得到灰色缺省头像以及nickname 为“微信用户”等
  10. win10配置内外网同时使用