MSP430入门程序之(02)WDT(看门狗模式)

#include "in430.h"
#include "io430x14x.h"
//定义使用主频
#define CPU_F ((double)8000000)
//定义延时函数
#define delay_us(x) __delay_cycles((long)(CPU_F*(double)x/1000000.0))
#define delay_ms(x) __delay_cycles((long)(CPU_F*(double)x/1000.0))
#define _EINT() __enable_interrupt()

void wdt_init(void)
{
WDTCTL = WDTPW + WDTHOLD;//禁止看门狗
WDTCTL = WDT_ARST_1000;//设置看门狗
}
void clk_init(void)
{
unsigned char i;
BCSCTL1 &= ~XT2OFF;
do
{
IFG1 &= ~OFIFG;
for(i = 0xFF;i > 0;i--);
}while(IFG1 & OFIFG);
BCSCTL2 |= SELM_2;
DCOCTL |= DCO2 + DCO1 + DCO0;
}
void port_init(void)
{
P2DIR |= 0x01;
P2OUT |= 0x01;
P5DIR |= 0x70;
P5SEL = BIT4+BIT5+BIT6;
P4DIR |= 0xFF;
}
void init_devices(void)
{
wdt_init();
clk_init();
port_init();
}
void main( void )
{
init_devices();
//IE1 |= WDTIE;
P2OUT &= ~0x01;
delay_ms(50);
P2OUT |= 0x01;
//_EINT();
while(1)
{
delay_ms(200);
P2OUT &= ~0x01;
delay_ms(200);
P2OUT |= 0x01;
WDTCTL = WDTPW + WDTCNTCL + (WDTCTL & 0x00FF);
delay_ms(5000);
}
}

M1与M2间隔1s,为看门狗定时器复位时间;

四个低脉冲为P2.0拉低,窄脉冲为50ms,宽脉冲为200ms.

转载于:https://www.cnblogs.com/360beida/p/4077590.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值