智能车制作

标题: 本人菜鸟,急求帮助解决中断的问题 [打印本页]

作者: wjfuture    时间: 2014-7-29 10:21
标题: 本人菜鸟,急求帮助解决中断的问题
出现了这个连接错误L1100:Segments.absSeg292(0xFF10) and .absSeg291 (0xFFE8) overlap;虽然知道是段重叠,但是找不到哪里重复了。求大神给点思路!谢谢了!
中断的代码如下:
#pragma   CODE_SEG __NEAR_SEG NON_BANKED        //定时器通道 3 输入捕捉中断

void interrupt 11 Timer3_Onput(void)

{

TFLG1_C2F=1;        //清中断标志位
Input_Num++;
if(Input_Num>=255)
  {
  Input_Num=0;
  }

}


//--------------10 中断处理函数
        //定时器通道 2 输入捕捉中断

/*void interrupt 10 Timer2_Onput(void)
{

TFLG1_C3F=1;        //清中断标志位
Input_Num++;
if(Input_Num>=255)
  {
  Input_Num=0;
  }

}        */
  



/*
//-------------9 中断处理函数
#pragma   CODE_SEG  NON_BANKED        //定时器通道 1 输入捕捉中断

void interrupt  9 Timer1_Onput(void)

{

TFLG1_C1F=1;        //清中断标志位
if(Input_Num==0)
  {
   Timecount1=TC1; //读自由计数器计数值
  }
Input_Num++;
LCD_Write_Num(32,5,speedcheck,5);
if(Input_Num==2)

  {
   
    Timecount2=TC1;//度自由计数器计数值
    Time=Timecount2-Timecount1;
    if(Time<0)
      {
       Time=Timecount2+Timecount1;
      }
     if (Time==0)
      {
        speedcheck=0;
      }
     else
      {
        speedcheck=310000/Time;//50Mhz时的计算结果
      }
   
    LCD_Write_Num(40,5,speedcheck,5);
    flag1=0;
    Input_Num=0;

  }

}
#pragma  CODE_SEG DEFAULT
*/
//---------------8 中断函数
/*void interrupt 8 Timer0_Onput(void)

{
//SPEED_Test();
PACTL_PAEN=~PACTL_PAEN;
p++;
length[p]=PACNT;
//length[i]=length2;
switch(p)
    {
      case 2:length1=(length[2]-length[1])/4;
             //LCD_Write_Num(26,1,result,4);
             break;
      case 4:length2=(length[4]-length[3])/4;
             //LCD_Write_Num(26,2,result,4);
             break;
      case 6:length3=(length[6]-length[5])/4;
             //LCD_Write_Num(26,3,result,4);
             break;
      default:break;
    }
TFLG1_C0F=1;        //清中断标志位


} */
#pragma  CODE_SEG DEFAULT
作者: 凌晨    时间: 2014-7-29 19:14
所有中断处理代码貌似都要放在CODE_SEG __NEAR_SEG NON_BANKED代码段中,可以集中在一起写中断的处理代码,若分开的话最好写完后加上#pragma CODE_SED DEFAULT
  1. #pragma   CODE_SEG __NEAR_SEG NON_BANKED

  2. void interrupt 10 Timer3_Onput(void){
  3. }

  4. void interrupt 14 Timer3_Onput(void){
  5. }

  6. void interrupt 15 Timer3_Onput(void){
  7. }

  8. void interrupt 16 Timer3_Onput(void){
  9. }

  10. #pragma   CODE_SEG DEFAULT
复制代码



作者: wjfuture    时间: 2014-7-29 19:56
凌晨 发表于 2014-7-29 19:14
所有中断处理代码貌似都要放在CODE_SEG __NEAR_SEG NON_BANKED代码段中,可以集中在一起写中断的处理代码, ...

好像没有用啊。。。





欢迎光临 智能车制作 (http://111.231.132.190/) Powered by Discuz! X3.2