买的开发板带的DEMO程序中几段代码读不懂 请高人指点
第一段://*************************************************************************// 系统时钟初始化
//*************************************************************************
void Clock_Init()
{
uchar i;
BCSCTL1&=~XT2OFF; //打开XT 振荡器
BCSCTL2|=SELM1+SELS; //MCLK 为8MHZ ,SMCLK 为8MHZ
do{
IFG1&=~OFIFG; //清除震荡标志
for(i=0;i<100;i++)
_NOP(); //延时等待
}
while((IFG1&OFIFG)!=0); //如果标志为1 ,则继续循环等待
IFG1&=~OFIFG;
}不明白在进行定时器的初始化的时候为什么要去清除振荡器标志?
第二段:#define CPU_F ((double)8000000)
#define delay_us(x) __delay_cycles((long)(CPU_F*(double)x/1000000.0))
#define delay_ms(x) __delay_cycles((long)(CPU_F*(double)x/1000.0)) 这三行代码是什么意思?
请大神指点迷津。 1.这个不是定时器初始化,是时钟初始化
清除标志是为了之后判断时钟是否正确建立,手册有写的
2.延时对应的us和ms__delay_cycles函数是iar内建的延时函数,和主频有关 //*************************************************************************
// 系统时钟初始化
//************************************************************************* 第一段的那个代码是等待时钟稳定 qiuchen 发表于 2012-11-26 16:16 static/image/common/back.gif
第一段的那个代码是等待时钟稳定
恩 知道了 非常感谢您{:lol:} 1.430上电默认的时钟是内部时钟源,就是DCO,大概1M左右。如果需要切换到外部时钟,必须执行这个过程。
2.写的很好,给出单片机的时钟频率,产生软件延时。
页:
[1]