单片机时钟系统
各位大侠帮帮忙解释一下这个例子吧,刚在学习入门,都不是很明白啊。最好能逐字逐句解释一下呀~小弟感激不尽voidInit_CLK(void){unsignedinti;BC...
各位大侠帮帮忙解释一下这个例子吧,刚在学习入门,都不是很明白啊。最好能逐字逐句解释一下呀~小弟感激不尽
void Init_CLK(void)
{
unsigned int i;
BCSCTL1 = 0x00;
do
{
IFG1 &= ~OFIFG;
for (i = 0x20; i>0; i--);
}
while ((IFG1 & OFIFG)== OFIFG);
BCSCTL2 = 0x00;
BCSCTL2 += SEML1;
BCSCTL2 += SELS;
}
MSP430的~
嘻嘻 展开
void Init_CLK(void)
{
unsigned int i;
BCSCTL1 = 0x00;
do
{
IFG1 &= ~OFIFG;
for (i = 0x20; i>0; i--);
}
while ((IFG1 & OFIFG)== OFIFG);
BCSCTL2 = 0x00;
BCSCTL2 += SEML1;
BCSCTL2 += SELS;
}
MSP430的~
嘻嘻 展开
3个回答
展开全部
void Init_CLK(void)
{
unsigned int i;
BCSCTL1 = 0x00; //清除时钟控制寄存器1
//下面这个do while循环是打开XT2,430上电复位时XT2默认关闭,如果要用到高速时钟XT2,则必须先将其打开
do
{
IFG1 &= ~OFIFG; //清除振荡器失效标志,复位时,XT2关闭相应的失效标志位为OFIFG=1,故需将该位置0
for (i = 0x20; i>0; i--); //延时等待XT2稳定
}
while ((IFG1 & OFIFG)== OFIFG); //再次判断是否已经打开了XT2,即再次判断OFIFG是否为1,若为1则继续执行上面的do操作。
BCSCTL2 = 0x00; //清除时钟控制寄存器2
BCSCTL2 += SEML1; //设置主系统时钟MCLK=XT2
BCSCTL2 += SELS; //设置子系统时钟SMCLK=XT2
}
具体的寄存器配置可以参看MSP430的用户指南
也可以在微控网上找一下《msp430常用模块应用原理》看看
http://www.microcontrol.cn/bbs/
{
unsigned int i;
BCSCTL1 = 0x00; //清除时钟控制寄存器1
//下面这个do while循环是打开XT2,430上电复位时XT2默认关闭,如果要用到高速时钟XT2,则必须先将其打开
do
{
IFG1 &= ~OFIFG; //清除振荡器失效标志,复位时,XT2关闭相应的失效标志位为OFIFG=1,故需将该位置0
for (i = 0x20; i>0; i--); //延时等待XT2稳定
}
while ((IFG1 & OFIFG)== OFIFG); //再次判断是否已经打开了XT2,即再次判断OFIFG是否为1,若为1则继续执行上面的do操作。
BCSCTL2 = 0x00; //清除时钟控制寄存器2
BCSCTL2 += SEML1; //设置主系统时钟MCLK=XT2
BCSCTL2 += SELS; //设置子系统时钟SMCLK=XT2
}
具体的寄存器配置可以参看MSP430的用户指南
也可以在微控网上找一下《msp430常用模块应用原理》看看
http://www.microcontrol.cn/bbs/
深圳市兴威帆电子技术有限公司
2023-06-12 广告
2023-06-12 广告
时钟模块有许多选择,这里为您提供几家广泛应用的模块,并询问一些普遍问题:1. Arduino - 这是一个非常受欢迎的选择,因为它易于使用,价格实惠,且能与多种传感器连接。此外,它也具有可编程功能和Wi-Fi /蓝牙功能。2. Raspbe...
点击进入详情页
本回答由深圳市兴威帆电子技术有限公司提供
展开全部
void Init_CLK(void) 初始化时钟子函数
{
unsigned int i; 定义一个无符号整型变量i
BCSCTL1 = 0x00;
do
{
IFG1 &= ~OFIFG; 清除振荡器失效标志位
for (i = 0x20; i>0; i--); 延时,等待振荡器工作
}
while ((IFG1 & OFIFG)== OFIFG); 振荡器开始工作
BCSCTL2 = 0x00;
BCSCTL2 += SEML1; DCOCLK作为MCLK时钟源
BCSCTL2 += SELS; LFXT1CLK作为SMCLK时钟源2
}
{
unsigned int i; 定义一个无符号整型变量i
BCSCTL1 = 0x00;
do
{
IFG1 &= ~OFIFG; 清除振荡器失效标志位
for (i = 0x20; i>0; i--); 延时,等待振荡器工作
}
while ((IFG1 & OFIFG)== OFIFG); 振荡器开始工作
BCSCTL2 = 0x00;
BCSCTL2 += SEML1; DCOCLK作为MCLK时钟源
BCSCTL2 += SELS; LFXT1CLK作为SMCLK时钟源2
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你这具体是什么单片机,你不说,怎么回答呀,反正这个不是51。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询