MSP430G2553学习笔记
常用赋值运算符:
清除:&=~ , 置位:|= ,
看门狗模块:
测试:&= , 取反:^= ,
WDTCTL 15--8 口令 7
WDT(看门狗)
看门狗定时器控制寄存器 6 5 4 3 2 1 IS1 0 IS0 HOLD NMIES NMI TMSEL CNTCL SSEL
IS1,IS0 选择看门狗定时器的定时输出,T是WDTCNT的输入时钟源周期
0 T x 2(15) 1 T x 2(13) 2 T x 2(9) 3 T x 2(6)
SSEL 选择WDTCNT的时钟源
0 SMCLK 1 ACLK
IS0、IS1、SSEL可确定WDT定时时间,WDT只能定时8种和时钟源相关的时间 WDT可选的定时时间(晶体为32768HZ,SMCLK=1MHZ) SSEL IS1 0 1 0 1 1 1 0 0 1 1 0 0 1 0 1 0 CNTCL
TMSEL
0 1
NMI
0
IS0 1 0 1 1 0 0 1 0 定时时间/ms 0.056 Tsmclk x 2(6) 0.5 Tsmclk x 2(9) 1.9 Taclk x 2(6) 8 Tsmclk x 2(13) 16 Taclk x 2(9) 32 Tsmclk x 2(15)(PUC复位后的值) 250 Taclk x 2(13) 1000 Taclk x 2(15) 当该位为1时,清除WDTCNT 工作模式选择
看门狗模式 定时器模式
选择RST/NMI引脚功能,在PUC后被复位 RST/NMI引脚为复位端
1
NMIES
0 1
HOLD
0 1
RST/NMI引脚为边沿触发的非屏蔽中断输入 选择中断的边沿触发方式 上升沿触发NMI中断 下降沿触发NMI中断
停止看门狗定时器工作,降低功耗 WDT功能激活
时钟禁止输入,计数停止
WDT(看门狗)配置语句
WDTCTL=WDTPW+WDTHOLD; //将WDTPW+WDTHOLD赋值给WDTCTL,关 闭看门狗定时器控制寄存器(Stop watchdog timer) IE1 |= WDTIE; //使能WDT中断 WDTCTL = WDT_ADLY_1000; //WDT 1 s / 4间隔计时器 WDTCTL = WDTPW + WDTHOLD + WDTNMI + WDTNMIES;
//
WDTCTL 由高8位口令和低8位控制命令组成,要写入操作WDT的控制命令, 出于安全原因必须先正确写入高字节看门狗口令。口令为5AH,如果口 令写错将导致系统复位。读WDTCTL时不需要口令。这个控制寄存器还 可以用于设置NMI引脚功能。 WDT 看门狗定时器(Watch Dog Timer),这是16位增计数器,由MSP430所选 定的时钟电路产生的固定周期时钟信号对计数器进行加法计数。如果计 数器事先被预置的初始状态不同,那么从开始计数到计数溢出为止所用 的时间就不同。WDTCNT不能直接通过软件存取,必须通过看门狗定时 器的控制寄存器WDTCTL来控制。 WDTPW WDTPW=0x5A00,是WDTCTL的密码,只有赋予这个值才能修改WDTCTL 这个寄存器 WDTHOLD WDTHOLD=0x0080,使WDTCTL的HOLD位置1
************************************************************************************** 时钟模块:
DCO(数字控制振荡器)
DCOCTL DCO(数字控制振荡器)控制寄存器 7 DCO.2
6 DCO.1 5 DCO.0 4 MOD.4 3 MOD.3 2 MOD.2 1 MOD.1 0 MOD.0 DCO.0-DCO.2 定义8种频率之一,可以分段调节DCOCLK频率,相邻两种频率相差 10%,而频率由注入直流发生器的电流定义
MOD.0-MOD.4 定义在32个DCO周期中插入的Fdco+1周期个数,而在下的DCO周期 中为Fdco周期,控制改换DCO和DCO+1选择的两种频率。如果DCO 常数为7,表示已经选择最高频率,此时不能利用MOD.0-MOD.4进行频 率调整
DCO配置语句
DCOCTL = 0; //选择最低DCOx和MODx设置 BCSCTL1=CALBC1_1MHZ; //为1MHZ BCSCTL1校准数据 DCOCTL=CALDCO_1MHZ; //为1MHZ DCOCTL校准数据,这两句同时使用 就使DCO设置为1MHZ CALBC1_1MHZ==0xFF; //校准常数抹去 __bis_SR_register(SCG1 + SCG0); //不用DCO Set_DCO(DELTA_1MHZ); //设置DCO和获得常量
BCSCTL1 基本时钟系统控制寄存器1 DCOCTL DCO时钟频率控制寄存器
CALBC1_1MHZ 这是为1MHZ BCSCTL1校准数据时所采用的标签 CALDCO_1MHZ 这是为1MHZ DCOCTL校准数据时所采用的标签 DCO频率与相应标签 DCO频率 对应标签 1MHZ CALBC1_1MHZ CALDCO_1MHZ 8MHZ CALBC1_8MHZ CALDCO_8MHZ 12MHZ CALBC1_12MHZ CALDCO_12MHZ 16MHZ CALBC1_16MHZ CALDCO_16MHZ 。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
MCLK(主系统时钟)和SMCLK(子系统时钟)
BCSCTL2 基本时钟系统控制寄存器2 7 SELM.1 6 SELM.0 5 DIVM.1 4 DIVM.0 3 SELS 2 DIVS.1 1 DIVS.0 0 DCOR
SELM.1 SELM.0
0 1 2
3
DIVM.1 DIVM.0
0 1
选择MCLK时钟源
时钟源为DCOCLK(默认) 时钟源为DCOCLK
时钟源为LFXT1CLK(对于MSP430F11/12X),时钟源为XT2CLK(对于MSP430F13/14/15/16X) 时钟源为LFTXTICLK。 选择MCLK分频 1分频(默认) 2分频
2 3
SELS
0 1
4分频 8分频
选择SMCLK时钟源
时钟源为DCOCLK(默认)
时钟源为LFXT1CLK(对于MSP430F11/12X),时钟源为XT2CLK(对 于MSP430F13/14/15/16X)。
DIVS.1 DIVS.0 选择SMCLK分频。
0 1分频 1 2分频 2 4分频 4 8分频 DCOR 选择DCO电阻
0 内部电阻 1 外部电阻
PUC信号之后,DCOCLK被自动选择MCLK时钟信号,根据需要,MCLK的时钟源 可以另外设置为LFXT1或者XT2。 设置顺序如下:
[1]复位OscOff [2]清除OFIFG
[3]延时等待至少50us
[4]再次检查OFIFG,如果仍然置位,则重复[3]、[4]步骤,直到OFIFG=0为止。
BCSCTL3 XT2Sx XT2Sx
0 1 2 3
LFXT1Sx
XTS=0 XTS=1
LFXT1Sx XCAPx XT2OF LFXT1OF 0 1 2 3
XT2范围选择,选择XT2的频率范围 0.4~1MHZ 1~3MHZ 3~16MHZ 0.4~16MHZ
低频时钟选择和LFXT1范围选择 在LFXT1和VLO之间选择 选择LFXT1的频率范围 LFXT1上的32768hz晶体 保留 VLOCLK 外部数字时钟源
相关推荐: