打印

MSP430系统时钟设置问题

[复制链接]
992|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
sdzhwmr|  楼主 | 2014-5-13 14:32 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 sdzhwmr 于 2014-5-14 17:18 编辑

在对MSP430进行系统时钟设置的时候,想设置成1MHz,看到的官方代码是
BCSCTL1   =    CALBC1_1MHZ;               
DCOCTL    =    CALDCO_1MHZ;

为什么这样就是设置1MHz的呢。看头文件里有

#ifndef __DisableCalData

#define CALDCO_1MHZ_          (0x10FEu)  /* DCOCTL  Calibration Data for 1MHz */
READ_ONLY DEFC( CALDCO_1MHZ      , CALDCO_1MHZ_)
#define CALBC1_1MHZ_          (0x10FFu) /* BCSCTL1 Calibration Data for 1MHz */
READ_ONLY DEFC( CALBC1_1MHZ      , CALBC1_1MHZ_)

#endif /* #ifndef __DisableCalData */

是不是和这有关系呢???

相关帖子

沙发
dirtwillfly| | 2014-5-13 20:18 | 只看该作者
手机打字不方便,从其他地方复制来一段:#define DEFC(name, address) __no_init volatile unsigned char name @ address;
(msp430g2231.h里面)把变量定义在后面那个地址上,读取那个变量就相当于读取那个地址的值了。
TI把频率校正的信息放在了segment A里面,直接读取幅值给DCOCTL和BCSCTL1 即可。
CALDCO_1MHZ 就放在了 (0x10FEu)

使用特权

评论回复
板凳
sdzhwmr|  楼主 | 2014-5-14 12:35 | 只看该作者
dirtwillfly 发表于 2014-5-13 20:18
手机打字不方便,从其他地方复制来一段:#define DEFC(name, address) __no_init volatile unsigned char n ...

谢谢版主的回复。你的意思是说这个1MHz的频率,TI芯片已经把它定义好了,且放在了那个地址上,直接读取运行即可?

使用特权

评论回复
地板
dirtwillfly| | 2014-5-14 13:57 | 只看该作者
sdzhwmr 发表于 2014-5-14 12:35
谢谢版主的回复。你的意思是说这个1MHz的频率,TI芯片已经把它定义好了,且放在了那个地址上,直接读取运 ...

是的,这个是校准过的数据。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

8

主题

113

帖子

1

粉丝