导航: 老古网老古论坛XMOS公共讨论区XMOS开源项目区单片机程序设计嵌入式系统广告区域
→求助!2407中断[mike1010]

 *第3382篇: 求助!2407中断

  
楼 主:mike1010 2008年9月1日16:53
 求助!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() ;
  
 } 


 }
}
点击浏览该文件


>>>>>>对该主题发表你的看法

本主题贴数1,分页: [第1页]


[上一篇主题]:购买晶闸管触发模块KTM2011A

[下一篇主题]:IS63LV1024L-12JL原装正品华强房间现货热卖