打印
[电路设计]

WDT复位不能启动

[复制链接]
2734|15
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
ltbytyn|  楼主 | 2011-11-8 12:57 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
助学板NUC120看门狗中断正常,但是复位启动怎么复位不了。使能WTCR.WTRE,主程序不喂狗,计数器溢出后按说应该重新启动,可是结果芯片没有复位过来,停止工作了没有我说不准,至少没有执行我的程序。我试了好几天没进展。同时我试了交流群里面的几个WDT例程试过了也不行,结果一样。
      附上试验例程求解,是硬件问题,还是我试验方法不对,还是程序问题(这种可能性比较小)。

相关帖子

沙发
ltbytyn|  楼主 | 2011-11-8 13:00 | 只看该作者
本帖最后由 ltbytyn 于 2011-11-8 13:02 编辑

#include <stdio.h>
#include "NUC1xx.h"
static uint32_t WDTCOUN=0;

void Delay(uint32_t delayCnt)
{
    while(delayCnt--)
    {
        __NOP();
        __NOP();
    }
}
int32_t main (void)
{
        
        UNLOCKREG();
        SYSCLK->;PWRCON.OSC10K_EN = 1;//Enable 32Khz for RTC clock source
        SYSCLK->;PWRCON.XTL12M_EN = 1;
        SYSCLK->CLKSEL0.HCLK_S = 0;        //HCLK_S   选外部4——24MHz
        
        LOCKREG();

        GPIOA->;PMD.PMD2=1;
        GPIOA->;PMD.PMD3=1;
        Delay(1000);
        GPIOA->DOUT=0x04;  
        Delay(1000000);        
        GPIOA->DOUT=0x08;
        Delay(1000000);         
        GPIOA->DOUT=0x04;  
        Delay(1000000);        
        GPIOA->DOUT=0x08;
        Delay(1000000);        
        GPIOA->DOUT=0x04;  
        Delay(1000000);        
        GPIOA->DOUT=0x08;                        
        outpw(&WDT->WTCR ,0 );                //Disable WDT
                                             
        UNLOCKREG();               
        /* Step 1. Enable and Select WDT clock source */         
        SYSCLK->CLKSEL1.WDT_S =3;  //Select 10Khz for WDT clock source
        SYSCLK->APBCLK.WDT_EN =1;   //Enable WDT clock source
        /* Step 2. Select Timeout Interval */
        WDT->WTCR.WTIS=2;                                   
        /* Step 3. Enable Watchdog Timer Reset function */
        WDT->WTCR.WTRE = 1;
        /* Step 4. Enable WDT interrupt */
        WDT->WTCR.WTR = 1;
        /* Step 5. Enable WDT module */
        WDT->WTCR.WTE = 1;                //Enable WDT
        LOCKREG();
        while(1);
}

使用特权

评论回复
板凳
hotpower| | 2011-11-8 13:17 | 只看该作者
内置看门狗一般应该和板子无关,新唐有例程看看。看门狗一般有中断和复位两种。

使用特权

评论回复
地板
weshiluwei6| | 2011-11-8 14:46 | 只看该作者
大叔说的对啊

使用特权

评论回复
5
ltbytyn|  楼主 | 2011-11-8 17:12 | 只看该作者
例程看了,没有涉及WDT复位的例程。确实不能复位,无解

使用特权

评论回复
6
hotpower| | 2011-11-8 18:59 | 只看该作者
到牛卧堂问问酒鬼,我记得自己做看门狗试验时也不能复位,后来搞别的就没注意,估计是设置的问题。

使用特权

评论回复
7
plc_avr| | 2011-11-9 06:24 | 只看该作者
我今天有空时看一下,我前两天试了一下,好象可以的啊。

使用特权

评论回复
8
plc_avr| | 2011-11-9 08:15 | 只看该作者
你试下这个
 
DrvGPIO_Open(E_GPA, 2, E_IO_OUTPUT);         //  设置GPA2端口为输出模式
DrvGPIO_Open(E_GPA, 3, E_IO_OUTPUT);         //  设置GPA3端口为输出模式
DrvGPIO_Open(E_GPA, 4, E_IO_OUTPUT);         //  设置GPA4端口为输出模式
DrvGPIO_Open(E_GPA, 5, E_IO_OUTPUT);         //  设置GPA5端口为输出模式
    DrvSYS_Delay(500000);

//看门狗初始化
UNLOCKREG();
    DrvSYS_SelectIPClockSource(E_SYS_WDT_CLKSRC, 0);  
    DrvWDT_Open (E_WDT_LEVEL7);
    DrvWDT_Ioctl (E_WDT_IOC_START_TIMER, 0);  
    DrvWDT_Ioctl (E_WDT_IOC_ENABLE_RESET_FUNC, 0);  
    LOCKREG();

    while(1){
DrvGPIO_ClrBit(E_GPA, 2);         //  LED1点亮
       DrvSYS_Delay(50000);
     DrvGPIO_SetBit(E_GPA, 2);
    DrvGPIO_ClrBit(E_GPA, 3);         //  LED2点亮
       DrvSYS_Delay(50000);
    DrvGPIO_SetBit(E_GPA, 3);
    DrvGPIO_ClrBit(E_GPA, 4);         //  LED3点亮
       DrvSYS_Delay(50000);
    DrvGPIO_SetBit(E_GPA, 4);
    DrvGPIO_ClrBit(E_GPA, 5);         //  LED4点亮
       DrvSYS_Delay(50000);
    DrvGPIO_SetBit(E_GPA, 5);
}

使用特权

评论回复
9
plc_avr| | 2011-11-9 08:17 | 只看该作者
如果注销掉看门狗初始化部分,将会看到助学板上面的4个LED实现流水效果,开了看门狗,不喂狗,则只有第一个灯闪,因为在第一个灯亮过后,延时的时候,看门狗已经实现复位了。

使用特权

评论回复
10
plc_avr| | 2011-11-9 08:19 | 只看该作者
你是开了看门狗中断,没见你看门狗中断部分的代码啊。

使用特权

评论回复
11
hotpower| | 2011-11-9 08:34 | 只看该作者
感觉不应该打开看门狗中断,使能看门狗。由于库函数有回调,不加就什么也不操作

使用特权

评论回复
12
plc_avr| | 2011-11-9 09:48 | 只看该作者
是的,开了中断,但是没有入口,程序不知运行到哪了。

使用特权

评论回复
13
plc_avr| | 2011-11-9 09:50 | 只看该作者
一般不应怀疑硬件,而是先要怀疑自已的软件对不对。软件部分可能占99.99%的可能出错。

使用特权

评论回复
14
ltbytyn|  楼主 | 2011-11-9 12:38 | 只看该作者
谢谢大叔、烈火,我回去试试,不过在家试的时候没有开WDT中断也不行

使用特权

评论回复
15
ltbytyn|  楼主 | 2011-11-9 12:40 | 只看该作者
在家试的时候,我几乎把能考虑到的都试了

使用特权

评论回复
16
marksu09| | 2012-5-30 10:56 | 只看该作者
额。。。。我也碰到这问题了,不知道为什么。。。。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

5

主题

154

帖子

1

粉丝