MSP430F169(五)——时钟

前言

说实话,我刚开始学的时候也没咋的学明白,都是拿着别人的代码抄一抄。那时我连软件层面和硬件层面有时候都会搞混,所以我还是建议初学者多做笔记,多看看手册。没事也可以翻翻我的博客,如果在169芯片遇到什么问题,也可以给我发消息讨论。在这里插入图片描述

时钟

时钟的解释我就不说了,大家心里有个数就行。首先我们的解释软件层面和硬件层面的问题。
硬件:外部的晶振,内部RC电路
软件:通过调配硬件资源来产生一些适用于不同外围电路的频率。我们把这些频率取了一些好听的名字,(ACLK SMCLK MCLK)MCLK主要用于芯片(需要的频率比较高,实现高性能处理),SMCLK用于外围电路(频率通常低于MCLK),ACLK用于外围低速率的设备(频率特别低)
有人说这么多频率没必要,用最高频率就够了。这种想法是没错,但是得想到开销啊。频率越高,功耗自然低不了。所以有多种可供选择的频率可以实现功耗与性能平衡。
直接给图,图中是f169的硬件对应的时钟(虚线代表理论可行,实际应用嘛不靠谱,因为f169外部已经接了一个高频XT2,再接一个高频LFXTX1没必要,所以虚线可有可无的存在)
在这里插入图片描述
关于时钟的基本信息,大家来看看我做的图,千言万语抵不过一张图在这里插入图片描述
在这里插入图片描述
还有关于DCO的详细配置,比如设置精准的时钟的频率和混频,大家可以看详细的手册。如果需要的话的,可以给我留言写一期博客。

举个栗子

在这里插入图片描述

/*************************************
//系统时钟初始化,外部8M晶振
//*************************************
void Clock_Init()
{
  uchar i;
  BCSCTL1&=~XT2OFF;                 //打开XT2振荡器
  BCSCTL2|=SELM1+SELS;              //MCLK为8MHZ,SMCLK为8MHZ
  do{
    IFG1&=~OFIFG;                   //清楚振荡器错误标志
    for(i=0;i<100;i++)
       _NOP();
  }
  while((IFG1&OFIFG)!=0);           //如果标志位1,则继续循环等待
  IFG1&=~OFIFG;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

百兽

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值