MCU系统时钟
来源:互联网 发布:分卷包数据不正确修复 编辑:程序博客网 时间:2024/06/16 19:53
时钟发生器用于产生时钟,并提供给CPU和外部硬件设备。
UPD78F0527有如下三种系统时钟。
(1)主系统时钟
①通过连接一个振荡器到X1和X2,该振荡电路产生fx=1到20MHZ的时钟;
②使用内部高速振荡器产生fRH=8MHZ的时钟。
(2)副系统时钟
①通过在XT1和XT2之间连接一个fXT=32.768KHZ的振荡器;
②通过XT2引脚提供一个外部副系统时钟fexclks=32.768KHZ。
(3)内部低速振荡时钟(看门狗定时器时钟)
①内部低速振荡器,以fRL=240KHZ的时钟振荡。该时钟不能作为CPU时钟。
在电表掉电时CPU选择使用副系统时钟。
如果一个变量只有几种可能的值。则可以定义为枚举类型。所谓“枚举”是指将变量的值一一列举出来,变量的值只限于列举出来的值得范围。
如下CPU_CLK的值只能是CPU_8M或CPU_32K;
typedef enum
{ CPU_8M,
CPU_32K
}enum_CPU_CLK;
extern volatile enum_CPU_CLK CPU_CLK;
void Clock_use_8M(void)
{
OSCCTL=0b00110000; //X1&X2 pin used as IO,1Mhz<internal speed <10Mhz;XT1 used as IO,XT2 used as CLK input
PCC = 0b00000000; //Set internal high-speed oscillator fck=8MHz,(default value fck=4MHz),XT1 used as IO,XT2 used as CLK input
RCM = 0x00; //Internal low&high speed oscillator run,wait internal high-speed stable
CPU_CLK = CPU_8M;
while(CLS) //wait CPU clock used main system clk
{
NOP();
}
}
void Clock_use_32k(void)
{
BitSet(PCC, 0x10); //uses subclk 32k/2 as the program clk
CPU_CLK = CPU_32K;
while(!CLS)
{
NOP();
}
BitSet(RCM,0x01); //STOP INTERNAL CLK
}
- MCU系统时钟
- 嵌入式MCU系统
- 51MCU的中断系统
- 系统时钟
- 时钟系统
- 时钟系统
- 系统时钟
- 系统时钟
- 系统时钟
- 时钟系统
- 时钟系统
- 时钟系统
- MCU
- 硬件时钟和系统时钟
- MCU上使用系统的理解
- 基于contiki系统的MCU使用经验总结
- GPS时钟系统,GPS同步时钟系统
- OAL之系统时钟
- Tensorflow学习笔记(二)——MNIST机器学习入门
- 【Codewars-求矩阵行列式】python
- Mac与Phy组成原理的简单分析
- java in acm – 我所知道的一切
- hdu5716 hdu5745 shift-and字符串匹配
- MCU系统时钟
- Ubuntu系统下浏览器和终端的SS代理配置
- 【Basic Code】深拷贝、浅拷贝的代码实现(一)
- poj 3255 Roadblocks(次短路)
- Cocos2d-x ListView 的添加,删除,点击和滑动到头和尾监听
- 交换排序(快速排序 冒泡排序)
- 你不了解的Hacker,实现AngularJS Controller的继承扩展
- C++(继承篇)
- codeforces732a