专家
公告
财富商城
电子网
旗下网站
首页
问题库
专栏
标签库
话题
专家
NEW
门户
发布
提问题
发文章
TI
不同的情况时钟该怎么设置
2019-07-27 17:55
发布
×
打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮
站内问答
/
TI MCU
13159
6
1728
msp430时钟设置问题
友情提示:
此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
6条回答
jiaxw
1楼-- · 2019-07-27 18:12
MCLK不选择的话,默认是DCO
应该是800Khz左右
BCSCTL2 |= SELM1+SELM0; //选ACLK做系统时钟
下面这个程序是如何选择不同的时钟源典型例子:
//MSP430F14时钟模块操作
/*************************************************************************/
//以下是结合MC430F14开发板来实验的时基应用例程,程序运行后可用示波器观察各时钟源输出.
//F14系列的时钟源为三个:
//LFXT1(XT1): 低速,频率精确,功耗低
//XT2:高速,频率精确.通讯应用于高速的处理.但带来的相对功耗较大.
//DCO:高速,频率不稳定.频率与芯片的温度,电压等因素有关.且容易漂移.但功耗低.
/*************************************************************************/
#include <msp430x14x.h>
void main(void)
{unsigned char i;
WDTCTL = WDTPW + WDTHOLD; //先关闭看门狗,对单片机初始化.
//时基模块的时钟设置
//单片机上电时,MCLK主时钟的源默认选择为DCO提供.F1系列DCO默认800KHZ.
//ACLK辅助时钟默认为XT1,XT1一般接32768HZ晶体.
//SMCLK子时钟默认为DCO,同样是800KHZ.
//XT2需要人为开启,并要检测其开启是否成功.
BCSCTL1 &= ~(XT2OFF + XTS); //启动XT2高速时钟模块
BCSCTL2 |= SELM1; //MCLK主时钟选XT2为时钟源.TX2输入不分频.
BCSCTL2 &= ~SELS; //SMCLK选为DCO为时钟源.(参考)
//刚才开启了XT2,需要一定时间XT2才进入稳定状态.所以需要等待并检测稳定状态.
//通常采用do...for语法,这是TI推荐的程序写法
do
{
IFG1 &=~OFIFG; //清OSCFault 标志
for(i=0xff;i>0;i--) //延时等待其开启稳定
;
}
while((IFG1 & OFIFG) !=0); //检查OSCFault标志位是否为0,若为0则表示XT2开启稳定.
//否则一直等下去...
//-----------------------------------------------
//以下我们来检测各个时钟信号的输出.
//在MSP430单片机中,大部的IO是有复用功能.而基础模块的时钟就可以通过IO设置使其输出.
P1DIR |= BIT4; //P1.4 IO口设置为输出.
P1SEL |= BIT4; //P1.4 IO口设置为SMCLK.
P2DIR |= BIT0; //P2.0 IO口设置为输出.
P2SEL |= BIT0; //P1.4 IO口设置为ACLK.
P5DIR |= BIT4; //P5.4 IO口设置为输出.
P5SEL |= BIT4; //P5.4 IO口设置为ACLK.
//-----------------------------------------------
//同样,内部其它模块也选择不同的时钟.可以在相关模块的控制寄存器中设置.例如:
//定时器A 选用SMCLK子系统时钟=DCO=~800KHZ,当然也可以选择其它时钟源.
TACTL = TASSEL1 + TACLR ; //注意转换其它时钟源的同时要清定时器内容.
//.......
//USART选用ACLK=XT1-32khz
UTCTL1 = SSEL0; //串口模块的时钟源选择为ACLK=32768HZ,
//当前程序的MCLK主时钟为TX2=8MHZ
while(1);
}
加载中...
spark周
2楼-- · 2019-07-27 20:08
http://bbs.21ic.com/icview-293382-1-1.html
里面有详细的介绍
加载中...
liliang9554
3楼-- · 2019-07-27 23:43
精彩回答 2 元偷偷看……
加载中...
liliang9554
4楼-- · 2019-07-28 04:57
我用示波器测ACLK的输出时如果将其设置成XT2结果没有输出 什么都不设置结果有输出 我的开发板上有一个12兆hz的晶振是干嘛的啊
加载中...
liliang9554
5楼-- · 2019-07-28 05:24
不是XT2 是LFXT1的高频
加载中...
shimx
6楼-- · 2019-07-28 08:43
我来消化消化,先结贴了
加载中...
一周热门
更多
>
相关问题
CPLD的方波输出
4 个回答
11个版本Quartus II 软件下载,安装包网盘合集,附教程,47G!
20 个回答
请大家帮忙到21IC发展大家谈支持我申请新版面
20 个回答
【通知】21ic中国电子网服务条款 (所有人员必读)
1 个回答
满载而归乙亥年,大展鸿途庚子年---集签赢好礼
20 个回答
携手ADI,踏上电子工程师之巅—车辆电气化视频,答题领奖!
1 个回答
如何提升论坛质量,看你了!
20 个回答
【最终名单】二姨家喊你来拿100份新年大礼啦~
20 个回答
相关文章
×
关闭
采纳回答
向帮助了您的网友说句感谢的话吧!
非常感谢!
确 认
×
关闭
编辑标签
最多设置5个标签!
TI
保存
关闭
×
关闭
举报内容
检举类型
检举内容
检举用户
检举原因
广告推广
恶意灌水
回答内容与提问无关
抄袭答案
其他
检举说明(必填)
提交
关闭
×
关闭
您已邀请
15
人回答
查看邀请
擅长该话题的人
回答过该话题的人
我关注的人
应该是800Khz左右
BCSCTL2 |= SELM1+SELM0; //选ACLK做系统时钟
下面这个程序是如何选择不同的时钟源典型例子:
//MSP430F14时钟模块操作
/*************************************************************************/
//以下是结合MC430F14开发板来实验的时基应用例程,程序运行后可用示波器观察各时钟源输出.
//F14系列的时钟源为三个:
//LFXT1(XT1): 低速,频率精确,功耗低
//XT2:高速,频率精确.通讯应用于高速的处理.但带来的相对功耗较大.
//DCO:高速,频率不稳定.频率与芯片的温度,电压等因素有关.且容易漂移.但功耗低.
/*************************************************************************/
#include <msp430x14x.h>
void main(void)
{unsigned char i;
WDTCTL = WDTPW + WDTHOLD; //先关闭看门狗,对单片机初始化.
//时基模块的时钟设置
//单片机上电时,MCLK主时钟的源默认选择为DCO提供.F1系列DCO默认800KHZ.
//ACLK辅助时钟默认为XT1,XT1一般接32768HZ晶体.
//SMCLK子时钟默认为DCO,同样是800KHZ.
//XT2需要人为开启,并要检测其开启是否成功.
BCSCTL1 &= ~(XT2OFF + XTS); //启动XT2高速时钟模块
BCSCTL2 |= SELM1; //MCLK主时钟选XT2为时钟源.TX2输入不分频.
BCSCTL2 &= ~SELS; //SMCLK选为DCO为时钟源.(参考)
//刚才开启了XT2,需要一定时间XT2才进入稳定状态.所以需要等待并检测稳定状态.
//通常采用do...for语法,这是TI推荐的程序写法
do
{
IFG1 &=~OFIFG; //清OSCFault 标志
for(i=0xff;i>0;i--) //延时等待其开启稳定
;
}
while((IFG1 & OFIFG) !=0); //检查OSCFault标志位是否为0,若为0则表示XT2开启稳定.
//否则一直等下去...
//-----------------------------------------------
//以下我们来检测各个时钟信号的输出.
//在MSP430单片机中,大部的IO是有复用功能.而基础模块的时钟就可以通过IO设置使其输出.
P1DIR |= BIT4; //P1.4 IO口设置为输出.
P1SEL |= BIT4; //P1.4 IO口设置为SMCLK.
P2DIR |= BIT0; //P2.0 IO口设置为输出.
P2SEL |= BIT0; //P1.4 IO口设置为ACLK.
P5DIR |= BIT4; //P5.4 IO口设置为输出.
P5SEL |= BIT4; //P5.4 IO口设置为ACLK.
//-----------------------------------------------
//同样,内部其它模块也选择不同的时钟.可以在相关模块的控制寄存器中设置.例如:
//定时器A 选用SMCLK子系统时钟=DCO=~800KHZ,当然也可以选择其它时钟源.
TACTL = TASSEL1 + TACLR ; //注意转换其它时钟源的同时要清定时器内容.
//.......
//USART选用ACLK=XT1-32khz
UTCTL1 = SSEL0; //串口模块的时钟源选择为ACLK=32768HZ,
//当前程序的MCLK主时钟为TX2=8MHZ
while(1);
}
里面有详细的介绍
一周热门 更多>