MSP430系统时钟设置问题

[复制链接]
1521|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

粉丝
快速回复 在线客服 返回列表 返回顶部