IDE :IAR FOR MSP430 5.4
根据MSP430G2553.h里面定义
定义1:
#define DEFC(name, address) __no_init volatile unsigned char name @ address;
#define DEFW(name, address) __no_init volatile unsigned short name @ address;
将变量name存入地址address里面
定义2:
#define READ_ONLY const
定义3:
#define CALDCO_16MHZ_ (0x10F8u) /* DCOCTL Calibration Data for 16MHz */
READ_ONLY DEFC( CALDCO_16MHZ , CALDCO_16MHZ_)
#define CALBC1_16MHZ_ (0x10F9u) /* BCSCTL1 Calibration Data for 16MHz */
READ_ONLY DEFC( CALBC1_16MHZ , CALBC1_16MHZ_)
在主函数里面:
DCOCTL = CALDCO_16MHZ;
BCSCTL1 = CALBC1_16MHZ; 这两个语句是设置DCO工作为16MHZ
根据我在线调试,CALDCO_16MHZ的值为0x85,然后我找不到CALDCO_16MHZ的定义值,在网上找了些资料 竟然是READ_ONLY DEFC(name,adress)将地址里面的值调用给变量name。
问题1:
为什么READ_ONLY DEFC( CALDCO_16MHZ , CALDCO_16MHZ_)是将地址为CALDCO_16MHZ里面的值调用出来,根据上面的定义,看不出他又调用的功能
问题2:
DCO 用MODx校准,手册上面只给了个公式,谁能举个例子?