智能车制作

 找回密码
 注册

扫一扫,访问微社区

查看: 1176|回复: 2
打印 上一主题 下一主题

本人菜鸟,急求帮助解决中断的问题

[复制链接]

5

主题

13

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
204
威望
119
贡献
49
兑换币
58
注册时间
2014-7-6
在线时间
18 小时
毕业学校
武汉大学
跳转到指定楼层
1#
发表于 2014-7-29 10:21:08 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
出现了这个连接错误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
回复

使用道具 举报

1

主题

9

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
489
QQ
威望
299
贡献
112
兑换币
42
注册时间
2012-2-28
在线时间
39 小时
2#
发表于 2014-7-29 19:14:44 | 只看该作者
所有中断处理代码貌似都要放在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
复制代码


回复 支持 反对

使用道具 举报

5

主题

13

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
204
威望
119
贡献
49
兑换币
58
注册时间
2014-7-6
在线时间
18 小时
毕业学校
武汉大学
3#
 楼主| 发表于 2014-7-29 19:56:45 | 只看该作者
凌晨 发表于 2014-7-29 19:14
所有中断处理代码貌似都要放在CODE_SEG __NEAR_SEG NON_BANKED代码段中,可以集中在一起写中断的处理代码, ...

好像没有用啊。。。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

关于我们|联系我们|小黑屋|智能车制作 ( 黑ICP备2022002344号

GMT+8, 2024-11-5 19:40 , Processed in 0.058647 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表