cumtgao 发表于 2011-2-21 11:26:58

关于430外接晶振的问题

430上电复位后默认为DCO作为系统时钟,那么如果430外部不接任何晶振(低频和高频都不接)的话,430能工作吗?求高人指点。

liuzq1981 发表于 2011-2-21 11:41:36

可以的

cumtgao 发表于 2011-2-21 11:47:10

我刚把430外部晶振拔掉了,用系统默认的800K频率使看门狗定时中断,看门狗中断进不去?                           /**********************************************
测试看门狗的中断的两种方式 定时器方式等同于其他定时中断
效果,看门狗方式为看门狗时间到系统复位所有IO口为输入方式灯灭
**********************************************/
#include<msp430x14x.h>

/**************函数声明*******/
void setWDT(int mode);
/************************************
函数功能:利用看门狗两种中断方式实现LED灯闪烁
函数原型:void setWDT(int mode);
输入参数:模式选择变量(0为看门狗模式、1为看门狗定时中断模式)
输出参数:无
************************************/
void setWDT(int mode)
{
      unsigned int tmp;
      if(mode==1)
      {
            //WDTCTL=WDT_MDLY_32;//定时周期32ms
            WDTCTL=WDT_ADLY_1000;//250MS中断间隔
            IE1|=WDTIE;//使能WDT中断
            P5DIR|=0X02;//P5.1输出模式
            _EINT();//总中断
      }
      if(mode==0)//看门狗模式
      {
            WDTCTL=WDT_ARST_250;//设置看门狗时间间隔为250ms
            for(tmp=0x7fff;tmp>0;tmp--);//延时
            P5DIR|=0X02;//P5.1输出模式
            P5OUT|=0X02;//p5.1输出高电平
            for(tmp=0x7fff;tmp>0;tmp--);//保持高电平时间
      }
}
void main()
{
   // _BIS_SR(CPUOFF);//LPM0耗电模式
      
      
          setWDT(1);
          while(1)
            {
            _BIS_SR(CPUOFF);//LPM0耗电模式
            _NOP();
            }
      
}

/**********看门狗中断入口***********/
#pragma vector=WDT_VECTOR
__interrupt void watctdog_timer()
{
      P5OUT^=0X02;//P5.1取反
}

liuzq1981 发表于 2011-2-21 12:32:26

/* WDT is clocked by fACLK (assumed 32KHz) */
#define WDT_ADLY_1000       (WDTPW+WDTTMSEL+WDTCNTCL+WDTSSEL)               /* 1000ms" */
#define WDT_ADLY_250      (WDTPW+WDTTMSEL+WDTCNTCL+WDTSSEL+WDTIS0)          /* 250ms   " */
#define WDT_ADLY_16         (WDTPW+WDTTMSEL+WDTCNTCL+WDTSSEL+WDTIS1)          /* 16ms    " */
#define WDT_ADLY_1_9      (WDTPW+WDTTMSEL+WDTCNTCL+WDTSSEL+WDTIS1+WDTIS0)   /* 1.9ms   " */


WDT_ADLY_1000 是选用外部32时钟做时钟源,去掉当然不工作了

可以用系统时钟模式延时
/* WDT is clocked by fSMCLK (assumed 1MHz) */
#define WDT_MDLY_32         (WDTPW+WDTTMSEL+WDTCNTCL)                         /* 32ms interval (default) */
#define WDT_MDLY_8          (WDTPW+WDTTMSEL+WDTCNTCL+WDTIS0)                  /* 8ms   " */
#define WDT_MDLY_0_5      (WDTPW+WDTTMSEL+WDTCNTCL+WDTIS1)                  /* 0.5ms   " */
#define WDT_MDLY_0_064      (WDTPW+WDTTMSEL+WDTCNTCL+WDTIS1+WDTIS0)         /* 0.064ms " */

liuzq1981 发表于 2011-2-21 12:34:01

要是不接外部时钟,需要注意的是如果用单片机内部模块,比如定时器、UART等,就不要选用外部时钟做时钟源了

cumtgao 发表于 2011-2-21 13:31:39

哦还是头文件没有看懂啊,谢谢。
页: [1]
查看完整版本: 关于430外接晶振的问题