首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

求助!2407中断

求助!2407中断

小弟在调试CAN通讯时发现不能进入中断程序,后编写TIMER1 中断程序也没能进入中断,
软件:cc'c2000,
下面附上我的程序和完整工程,请各位过路高人指点迷途,谢谢!

/*向量表*/

.ref _nothing
.ref _c_int0
.ref _c_int2
.sect ".vectors"

RSVECT B _c_int0
INT1 B _nothing
INT2 B _c_int2
INT3 B _nothing
INT4 B _nothing
INT5 B _nothing
INT6 B _nothing


/* C程序*/
#include "240x_c.h"

int flag ;
int flagmain ;
unsigned int k=0,j=0; /* 主程序和中断程序中计数*/

void inline disable()
{
asm( " setc INTM " ) ;
}


void inline enable()
{
asm( " clrc INTM " ) ;
}


/* system initial */
initial()
{
asm( " setc SXM " ) ;
asm( " clrc OVM " ) ;
asm( " clrc CNF " ) ;



*SCSR1 = 0x00FE; /*CLKIN=6M,CLKOUT=24M,*SCSR1 = 0x81FE;,*/
*WDCR = 0x00E8 ;

*IMR = 0x0002; /*开,int2*/
*IFR = 0xFFFF; /*清除所有中断标志*/
}

/* timer1 initial */
int timer1int()
{
*EVAIMRA = *EVAIMRA | 0x0080 ;
*EVAIFRA = *EVAIFRA & 0x0080 ;
*T1CON = 0x160C ;
*T1PR = 0x0177 ;
*T1CNT = 0x0000 ;

}


void interrupt c_int2()
{
k++;
flag = *EVAIFRA & 0x0080 ;
if (flag != 0x0080)
{
enable() ;
return ;
}

*T1CNT = 0x0000;
*EVAIFRA = *EVAIFRA & 0x0080;
enable() ;

}

void interrupt nothing()
{
enable() ;

}


main()
{
disable() ;
initial() ;
timer1int() ;
enable() ;
*T1CON = *T1CON | 0x0040 ;
while(1)
{ j++;
timer1int() ;
*T1CON = T1CON | 0x0040 ;
flagmain = *EVAIFRA ;
flagmain = *EVAIFRA & 0x0080 ;
if (flagmain == 0x0080)
{
enable() ;

}


}
}

1YosnOsM.rar (43.27 KB)
问题解决!文件中缺少CMD 文件,加上就好使了
返回列表