智能车制作

标题: XS128 看门狗 [打印本页]

作者: 雪男    时间: 2012-3-7 15:15
标题: XS128 看门狗
本帖最后由 雪男 于 2012-3-7 15:22 编辑

程序如:

void init_WatachDog(void)
{
    COPCTL_WCOP  = 0;      /* 0 Normal COP operation     1 Window COP operation        */
    COPCTL_RSBCK = 1;       /* 0 Allows the COP and RTI to keep running in Active BDM mode.  */
                                            /* 1 Stops the COP and RTI counters whenever the part is in Active BDM mode.  */

    COPCTL_CR0   = 1;         /* OSCCLK  / 2^18  */
    COPCTL_CR1   = 1;
    COPCTL_CR2   = 0;
}

void feed_cop(void)
{
    ARMCOP=0x55;
    ARMCOP=0xAA;
}


void  init_Port()
{
    DDRA  = 0xff;                  
    PORTA = 0xff;                  
    DDRM_DDRM7 = 1;
}
void  main()  
{     init_PLL();   
      init_Port ();         
      init_WatachDog();     
      feed_cop() ;            
      PORTA = 0xff;     /* LED   off */     
      PTM_PTM7 = 0;     /* Beep  on  */
      for(;;)     
      {         
           PORTA = 0x00;/* LED  on  */
           PTM_PTM7 = 1;/* Beep off */      
      }   
}   把这个程序烧写进板子时,现象时灯一直亮,蜂鸣器不叫,显然,没喂狗程序还是停留在那个for循环里面,向大家请教原因。给点建议。 谢谢。




作者: 雪男    时间: 2012-3-7 15:21
本帖最后由 雪男 于 2012-3-7 15:22 编辑

大家帮帮忙啊!  谢谢啊!
作者: 凹凸慢    时间: 2012-7-4 17:09
楼主解决了没   是不是复位时间设的太长了   复位后运行一段时间正常 再复位  再运行
作者: 雪男    时间: 2012-7-5 12:37
凹凸慢 发表于 2012-7-4 17:09
楼主解决了没   是不是复位时间设的太长了   复位后运行一段时间正常 再复位  再运行

现在解决了的

作者: 凹凸慢    时间: 2012-7-6 17:53
怎么解决的啊   我写的看门狗没用   求教
作者: 凹凸慢    时间: 2012-7-11 11:35
楼主帮帮忙啊
作者: 雪男    时间: 2012-7-16 18:14
凹凸慢 发表于 2012-7-11 11:35
楼主帮帮忙啊

你的有什么问题?

作者: 凹凸慢    时间: 2012-7-17 09:46
雪男 发表于 2012-7-16 18:14
你的有什么问题?

写的看门狗复位不了   是不是要加中断呢   中断该怎么写呢
作者: 雪男    时间: 2012-7-17 16:46
凹凸慢 发表于 2012-7-17 09:46
写的看门狗复位不了   是不是要加中断呢   中断该怎么写呢

是要用中断的,和普通的中断一样写的!!
作者: 凹凸慢    时间: 2012-7-17 20:33
雪男 发表于 2012-7-17 16:46
是要用中断的,和普通的中断一样写的!!

谢谢!      中断里该怎么写呢      直接调用主程序行吗?      main();

作者: 雪男    时间: 2012-7-20 10:07
凹凸慢 发表于 2012-7-17 20:33
谢谢!      中断里该怎么写呢      直接调用主程序行吗?      main();

是的!  直接在中断里调用主函数就好!

作者: 凹凸慢    时间: 2012-7-20 17:01
雪男 发表于 2012-7-20 10:07
是的!  直接在中断里调用主函数就好!

恩  太感谢啦
作者: gongxinle    时间: 2012-7-20 18:06
楼主的程序为什么没有复位,而一直在for();里?
作者: 凹凸慢    时间: 2012-7-21 10:56
gongxinle 发表于 2012-7-20 18:06
楼主的程序为什么没有复位,而一直在for();里?

有可能是调试模式没有打开  BDM
作者: 雪男    时间: 2012-7-21 15:40
凹凸慢 发表于 2012-7-20 17:01
恩  太感谢啦

解决了吗?

作者: gongxinle    时间: 2012-7-21 15:52
凹凸慢 发表于 2012-7-21 10:56
有可能是调试模式没有打开  BDM

可是加一个延时函数就好了,没有延时函数就不行。我试了。

作者: 凹凸慢    时间: 2012-7-23 12:21
雪男 发表于 2012-7-21 15:40
解决了吗?

还没  过几天去做实验   先把理论准备好

作者: 凹凸慢    时间: 2012-7-23 12:22
gongxinle 发表于 2012-7-21 15:52
可是加一个延时函数就好了,没有延时函数就不行。我试了。

在哪加延时函数?   
作者: 雪男    时间: 2012-7-23 19:13
凹凸慢 发表于 2012-7-23 12:21
还没  过几天去做实验   先把理论准备好

嗯   不难的!   好好弄。。

作者: gongxinle    时间: 2012-7-23 19:48
凹凸慢 发表于 2012-7-23 12:22
在哪加延时函数?

在for语句之前和for语句里边我都加了。


作者: 凹凸慢    时间: 2012-8-3 22:42
本帖最后由 凹凸慢 于 2012-8-3 22:43 编辑
雪男 发表于 2012-7-23 19:13
嗯   不难的!   好好弄。。


最近试了下  不行  你帮我看看
COPCTL = 0x07;                                                           初始化


ARMCOP = 0x55;                                                           喂狗
ARMCOP = 0xAA;

#pragma CODE_SEG __NEAR_SEG NON_BANKED                 中断
void interrupt VectorNumber_Vcop kanmengou(void)        
{                                                      
   main();
}
#pragma CODE_SEG DEFAULT  

作者: 雪男    时间: 2012-8-7 11:15
你看下中断号有错误没?
作者: zydc1215    时间: 2014-5-20 17:26
大神,我想请教一下你的看门狗调试成功的程序是咋样的?





欢迎光临 智能车制作 (http://111.231.132.190/) Powered by Discuz! X3.2