主题 : 为什么中断始终不行啊,不能进入中断程序,程序没问题的,下到SDRAM始终不能中断 复制链接 | 浏览器收藏 | 打印
级别: 新手上路
UID: 22983
精华: 0
发帖: 16
金钱: 90 两
威望: 18 点
综合积分: 32 分
注册时间: 2010-06-10
最后登录: 2010-08-09
楼主  发表于: 2010-06-10 13:19

 为什么中断始终不行啊,不能进入中断程序,程序没问题的,下到SDRAM始终不能中断

管理提醒: 本帖被 kasim 从 Linux技术交流专区 移动到本区(2010-06-10)
所以程序基本上不能中断,不知道为什么

知道的说下啊,这几天被打击了,因为这个

程序我检查了N多次的,
没问题
但是就是不能中断




程序如xia:


//看门狗的复位功能,超时没有喂狗会引起复位
#include "2440addr.h"
void watchdog_test(void) ;
extern void Uart_Printf(char *fmt,...);
extern void Uart_Init(int baud);

void ClearPending(int bit);
void ClearSubPending(int bit);
unsigned f_ucSencondNo;

__irq void  watchdog_isr(void);



void Main(void)

{
f_ucSencondNo=0;
Uart_Init(115200);
Uart_Printf("watchdog test is beginning\n");  
watchdog_test();

}




void watchdog_test(void)
{
  
/****************初始化************************/
//建立WatchDog中断服务程序句柄
    pISR_WDT = (unsigned)watchdog_isr;
    
  //initialize interrupt registers
    ClearPending(BIT_WDT_AC97);  
    ClearSubPending(BIT_WDT);    


  
/***************启动看门狗*******************/

  //Prescaler value=100、clock division factor=128、PCLK=50M
  //t_watchdog=1/[PCLK/(Prescaler value+1)/Division_factor]=0.00025856
  //disable watchdog
  rWTCON=((prescaler_value<<8)|(clock_select<<3));  
  //看门狗时钟周期T=WTCNT*t_watchdog=3.8784S
  //看门狗喂狗
  rWTDAT=15000;
  rWTCNT=15000;
  rWTCON|=(1<<5)|(1<<2);   //使能WDT定时器和中断


  //开中断
  EnableIrq(BIT_WDT_AC97);
  EnableSubIrq(BIT_WDT);
  while(f_ucSencondNo<11);
  while(1) ;

}



  
void ClearPending(int bit)
{
    register i;
    rSRCPND &= ~bit;
    rINTPND |= bit;
    i = rINTPND;
}

void ClearSubPending(int bit)
{
    register i;
    rSUBSRCPND &= ~bit;    
    i = rINTPND;
}


__irq void  watchdog_isr(void)
{
    

     f_ucSencondNo++;
     if(f_ucSencondNo<11)
           Uart_Printf("%ds\n",f_ucSencondNo);
    else
    {
        
        DisableIrq(BIT_WDT_AC97);
        DisableSubIrq(BIT_WDT);
        Uart_Printf("watch dog is okooooo\n");
    }
    
    ClearPending(BIT_WDT_AC97);
    ClearSubPending(BIT_WDT);      
}
级别: 侠客
UID: 4843
精华: 0
发帖: 102
金钱: 810 两
威望: 554 点
综合积分: 204 分
注册时间: 2009-03-31
最后登录: 2012-11-14
1楼  发表于: 2010-06-10 20:51
加MMU,具体做法搜索本版文章。