Board logo

标题: 求助!2407中断 [打印本页]

作者: zdh_33    时间: 2008-9-1 17:15     标题: 求助!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)


附件: [求助!2407中断] 1YosnOsM.rar (2008-9-1 16:57, 43.27 KB) / 下载次数 259
http://bbs.eccn.com/attachment.php?aid=5003&k=a497dbac15ace96d60a3e726937f1e8f&t=1726893336&sid=3E78s0
作者: zdh_33    时间: 2008-9-3 17:00

问题解决!文件中缺少CMD 文件,加上就好使了




欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) Powered by Discuz! 7.0.0