您的位置 首页 观点

MSP430内部时钟(DCO)频率丈量

时钟电路——数字振荡器(DCO)电路按信号形式可分为数字和模拟。数字电路处理的是数字信号。数字电路又可分为组合逻辑电路与时序逻辑电路…

时钟电路——数字振荡器(DCO

电路按信号方式可分为数字和模仿。

数字电路处理的是数字信号。数字电路又可分为组合逻辑电路与时序逻辑电路。时序电路能够完结组合电路的功用,反之则不建立。两者的区别是时序电路与信号的时刻有关,即有一个时钟信号。

MSP430芯片中有3个时钟源,内部晶体振荡器(DCO)、外部低速时钟源(XT1)、外部高速时钟源(XT2)。DCO的作业能够不要外部不要外部器材的支撑,因而下降了电路的杂乱程度,可是它是根据RC的作业原理,作业频率不安稳。XT1、XT2需求外接一个晶振,所以作业频率安稳。选用两个外部晶振是让一个作业在高频一个作业在低频,高频晶体能够使程序履行速度快,低速晶体使芯片功耗下降。

//程序称号: Clock_DCO.C

//程序功用: 发生周期为 160 个体系时钟周期的方波信号,经过丈量方波信号频率取得 DCO 时钟频率

#include 430x14x.h> //包括称号界说和对应地址或数据的头函数

void int_clk(void); //声明体系时钟初始化函数

void delay(void); //声明延时函数

int main(void) //主函数

{

int_clk( ); //体系时钟初始化

WDTCTL=WDTPW+WDTHOLD; //封闭看门狗

//看门狗操控寄存器 WDTCTL 地址以及密码位 WDTPW 内容和

//使能位 WDTHOLD 内容在头函数 MSP430x14x.h 界说

//WDTPW 内容加 WDTHOLD 内容向 WDTCTL 赋值

P3SEL=0x00; //设置 P3 端口为数字输入 / 输出口

P3DIR=0xff; //设置 P3 端口为输出口

while(1) //重复履行

{

//发生周期为 160 个体系时钟周期的方波

P3OUT&=~BIT0; // P3.0 输出低电平

delay( ); //延时 75 个体系时钟周期,坚持方波信号低电平

P3OUT|=BIT0; // P3.0 输出高电平

delay( ); //延时 75 个体系时钟周期,坚持方波信号高电平

}

}

void delay(void) //延时函数

{

unsigned char i; //声明完成延时的整型数据类型循环变量

for(i=0; i<10; i++) //使用循环完成延时调整

{

_NOP( ); //发生一个MSP430体系时钟周期的延时

}

}

void int_clk(void) //体系时钟初始化函数

{

unsigned char i; //声明完成延时的循环变量

DCOCTL = 0x00; //设置数字操控振荡器的作业频率***

BCSCTL1 = 0x80; //封闭 XT2

//设置数字操控振荡器的作业频率***

BCSCTL2&=~DCOR; //挑选 MCLK 时钟源为 DCOCLK,分频比 1

//挑选 SMCLK 时钟源为 DCOCLK,分频比 1

//挑选芯片内部 DCO 电阻

do

{

IFG1&=~OFIFG; //铲除振荡器过错标志

for(i=0; i<100; i++) //使用循环完成延时调整

{

_NOP( ); //发生一个MSP430体系时钟周期的延时

}

}

while((IFG1 & OFIFG)!=0); //假如标志为1,持续等候

IFG1&=~OFIFG; //铲除振荡器过错标志

}

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/news/guandian/273061.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部