搜索
bottom↓
回复: 2

看门狗定时器问题,大家帮忙看看,谢谢

[复制链接]

出0入0汤圆

发表于 2012-7-27 21:47:41 | 显示全部楼层 |阅读模式
大家有谁对看门狗定时器有过研究的,帮我看看这个问题                                                               
看门狗作为间隔定时器使用
WDTCTL = WDT_MDLY_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+WDT                                      
而我的子系统时钟SMCLK和辅助系统时钟ACLK均选用12M高频晶体振荡器    BCSCTL2 |= SELM_2 + SELS;   // MCLK = SMCLK = XT2 (12M)                             
这个时候SMCLK是12M,而看门狗定时器的时钟也是SMCLK,但要求是1M               
这个会出现矛盾,系统是怎么处理的                     

谢谢大家帮忙看看指导一下

主函数如下
#include"1602.c"

uchar *s1 = "wei32210130";
void Init_CPU()
{
    uchar i;
    WDTCTL = WDTPW+WDTHOLD;                   //关闭看门狗
   //所有的IO口为高电平
    P1DIR = 0XFF;P1OUT = 0XFF;
    P2DIR = 0XFF;P2OUT = 0XFF;
    P3DIR = 0XFF;P3OUT = 0XFF;
    P4DIR = 0XFF;P4OUT = 0XFF;
    P5DIR = 0XFF;P5OUT = 0XFF;
    P6DIR = 0XFF;P6OUT = 0XFF;
   
    BCSCTL1&=~XT2OFF;                        //清XT2失效标志
    do
    {
       IFG1=~OFIFG;                //等待晶振起振       
       for(i=0xff;i>0;i--);       
    }
    while(IFG1&OFIFG);                //晶振起振
    BCSCTL2 |= SELM_2 + SELS;   // MCLK = SMCLK = XT2 (12M)
    _EINT();

}

void main()
{
    Init_CPU();
    uchar i;
    WDTCTL = WDT_MDLY_32;                  //间隔定时器,定时32ms
    P6DIR |= BIT2;P6OUT |= BIT2;         //关闭电平转换
   
    LcdReset();
    DispStr(0,0,s1);
    LocateXY(0,9);                      //确定写入字符的显示位置
/*    LcdWriteCommand(0x07, 1);           //整体显示左移
    for(i = 12; i > 0; i--)
    {
        LcdWriteData(0x20);
        //延时250ms
        IFG1 &= ~WDTIFG;
        while(!(IFG1 & WDTIFG));
        IFG1 &= ~WDTIFG;
    }*/
    while(1)
    {
        LcdWriteCommand(0x05, 1);           //整体显示右移
        
        for(i = 24; i > 0; i--)  
        {
            LcdWriteData(0x20);
            //延时250ms
            IFG1 &= ~WDTIFG;
            while(!(IFG1 & WDTIFG));
            IFG1 &= ~WDTIFG;
        }
   
        
        LcdWriteCommand(0x07, 1);           //整体显示左移
        
        for(i = 24; i > 0; i--)
        {
            LcdWriteData(0x20);
            //延时250ms
            IFG1 &= ~WDTIFG;
            while(!(IFG1 & WDTIFG));
            IFG1 &= ~WDTIFG;
        }
    }   

}

阿莫论坛20周年了!感谢大家的支持与爱护!!

知道什么是神吗?其实神本来也是人,只不过神做了人做不到的事情 所以才成了神。 (头文字D, 杜汶泽)

出0入0汤圆

发表于 2012-8-30 15:09:43 | 显示全部楼层
好东西,要定

出0入0汤圆

发表于 2012-10-8 13:50:35 | 显示全部楼层
assumed 1MHz
假如12MHz的话
32ms/12=2.6MS
建议改用ACLK
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-7-28 07:18

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表