天嵌 ARM开发社区

 找回密码
 注册
查看: 1306|回复: 0

看门狗中遇到的问题

[复制链接]
lnhnkjxy 发表于 2011-8-14 20:22:06 | 显示全部楼层 |阅读模式
本帖最后由 lnhnkjxy 于 2011-8-14 20:23 编辑

#include "2440addr.h"
#include "2440lib.h"
void watchdog_test(void);
void __irq Watchdog_ISR(void);

//复位次数
int f_ucSencondNo=0;

void xmain(void)
{
ChangeClockDivider(3,1);
ChangeMPllValue(127,2,1); //405MHZ

Isr_Init();
Uart_Init(0, 115200);
Uart_Select(0);
Uart_Printf("watchdog test is beginning\n");
watchdog_test();
   
}

/**********************************
watchdog_init
watchdog interrupt service routine
************************************/  
void watchdog_test(void)
{
  //clear interrupt registers
  ClearPending(BIT_WDT_AC97);
  ClearSubPending(BIT_SUB_WDT);
  ClearSubPending(BIT_SUB_WDT);
   
   
  //建立WatchDog中断
  pISR_WDT_AC97=(unsigned)Watchdog_ISR;
   
  //Prescaler value=100;?lock division factor=128 ;  PCLK=67.5MHz
  //t_watchdog=1/[PCLK/(Prescaler value+1)/Division_factor]=0.0002
  //disable watchdog
  rWTCON=((100<<8)|(3<<3));  
   
  //看门狗时钟中断周期T=WTCNT*t_watchdog=3S
  //看门狗喂狗
  rWTDAT=15000;
  rWTCNT=15000;
  rWTCON &= ~(3); //disable reset
   
  rWTCON |= ((1<<5)|(1<<2));//enable Watchdog timer and watchdog interrupt

  //开中断
  EnableIrq(BIT_WDT_AC97);
  EnableSubIrq(BIT_SUB_WDT);
  while(f_ucSencondNo<11);
}

/**** watchdog_init ****/
void __irq Watchdog_ISR(void)
{
   
  if(rSUBSRCPND & ~BIT_SUB_WDT)
  {//清除中断
  ClearSubPending(BIT_SUB_WDT);
  ClearPending(BIT_WDT_AC97);
  f_ucSencondNo++;
   
  if(f_ucSencondNo<11)
  Uart_Printf("%ds\n",f_ucSencondNo*3);
  else
  {
  //mask watchdog timer interrupt
  DisableSubIrq(BIT_SUB_WDT);
  DisableIrq(BIT_WDT_AC97);
  Uart_Printf("watch dog is ok\n");
  }
  }

  if(rSUBSRCPND & ~BIT_SUB_AC97)
  {
  ClearSubPending(BIT_SUB_AC97);
  ClearPending(BIT_WDT_AC97);
  }


}
请问各位,为什么rSUBSRCPND & ~BIT_SUB_AC97不为零。我单步调试发现rSUBSRCPND的值为0x92,我就是不明白:1,为什么rSUBSRCPND的值是这个。我看了手册,这几个值为1的位是发送中断的标志位:INT_TXD0~2 ,初始化不应该为零吗。2,清除不掉这几个标志位,一直置一。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

i.MX8系列ARM cortex A53 M4 工控板上一条 /1 下一条

Archiver|手机版|小黑屋|天嵌 嵌入式开发社区 ( 粤ICP备11094220号-2 )

GMT+8, 2025-6-22 02:37 , Processed in 2.042708 second(s), 20 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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