查看: 11890|回复: 9

[S12] S12用C语言写中断程序的问题

[复制链接]

该用户从未签到

1

主题

1

帖子

0

新手上路

Rank: 1

积分
20
最后登录
1970-1-1
发表于 2008-11-3 00:36:17 | 显示全部楼层 |阅读模式
在写智能车的程序的时候,需要写一个中断服务的函数,在函数声明的时候是这样子的:
interrupt 24 void PJ_ISR(void)
{
PIFJ |=0x01; //PJ0中断标志清零(电机出错标志)
PORTB=0x99;
flag=1;
while(1);
   //程序在这里停止了
}
编译没有问题,但是在连接的时候就报错了
错误信息是Fixup overflow  in_Vector_24, to PJ_ISR type1, at offset 0X0

在这里被这个问题困扰了很久,麻烦高人指点啊。。。。。。。
我知道答案 目前已有8人回答
回复

使用道具 举报

该用户从未签到

0

主题

4

帖子

0

新手上路

Rank: 1

积分
44
最后登录
1970-1-1
发表于 2008-11-11 09:20:40 | 显示全部楼层

RE:S12用C语言写中断程序的问题

首先不明白你的中断标志位是如何清零的。
while(1); ? 中断不是出不去了。

该用户从未签到

30

主题

168

帖子

0

高级会员

Rank: 4

积分
799
最后登录
1970-1-1
发表于 2008-11-11 16:52:42 | 显示全部楼层

RE:S12用C语言写中断程序的问题

一般来说,中断程序越短越好,尽量在中断里面设置一些标志变量,在其它程序中进行处理。这里你在中断处理函数中使用死循环不退出中断,不知道是否是编译时报错的。你把WHILE(1);改为短时间等待试试看。
同时,中断处理函数中中断标志位的清零是放在开始还是结尾,也是根据需要来调整的。
你在中断处理函数中使用死循环,本来就是一个逻辑错误,如果不设置优先级的话,你的单片机进入后就是“死机状态”,除非复位重新开机。

该用户从未签到

0

主题

3

帖子

0

新手上路

Rank: 1

积分
23
最后登录
1970-1-1
发表于 2008-12-14 22:42:48 | 显示全部楼层

回复:S12用C语言写中断程序的问题

原帖由freescalesyp于2008-11-03 00:36发表:
在写智能车的程序的时候,需要写一个中断服务的函数,在函数声明的时候是这样子的:
interrupt 24 void PJ_ISR(void)
{
PIFJ |=0x01; //PJ0中断标志清零(电机出错标志)
PORTB=0x99;
flag=1;
while(1);
   //程序在这里停止了
}
编译没有问题,但是在连接的时候就报错了
错误信息是Fixup overflow  in_Vector_24, to PJ_ISR type1, at offset 0X0

在这里被这个问题困扰了很久,麻烦高人指点啊。。。。。。。



把程序改成:
#pragma CODE_CEG NON_BANKED
interrupt 24 void PJ_ISR(void)
{
PIFJ |=0x01; //PJ0中断标志清零(电机出错标志)
PORTB=0x99;
flag=1;
while(1);
#pragma CODE_SEG DEFAULT
在试试看!

该用户从未签到

1

主题

12

帖子

0

新手上路

Rank: 1

积分
41
最后登录
1970-1-1
发表于 2009-1-10 20:16:53 | 显示全部楼层

RE:S12用C语言写中断程序的问题

我在编写中断程序的时候也会出现这样的问题!
不知道该怎么办。

该用户从未签到

1

主题

12

帖子

0

新手上路

Rank: 1

积分
41
最后登录
1970-1-1
发表于 2009-1-11 11:05:32 | 显示全部楼层

RE:S12用C语言写中断程序的问题

在中断处理函数中加入
  “#pragma CODE_SEG __NEAR_SEG NON_BANKED”试试看!

该用户从未签到

0

主题

13

帖子

0

新手上路

Rank: 1

积分
4
最后登录
1970-1-1
发表于 2009-2-11 20:49:12 | 显示全部楼层

RE:S12用C语言写中断程序的问题

哦,原来是这样啊
谢谢!!

该用户从未签到

1

主题

16

帖子

0

新手上路

Rank: 1

积分
36
最后登录
1970-1-1
发表于 2010-6-18 20:59:43 | 显示全部楼层

RE:S12用C语言写中断程序的问题

谢谢~虽然不是很明白……

该用户从未签到

2

主题

25

帖子

0

新手上路

Rank: 1

积分
32
最后登录
2020-3-20
发表于 2011-3-11 23:58:26 | 显示全部楼层

回复:S12用C语言写中断程序的问题

回复第 8 楼 Analeign于2010-06-18 12:59:43发表:
谢谢~虽然不是很明白…… 

C语言写中断程序的问题tong wen

该用户从未签到

0

主题

46

帖子

0

新手上路

Rank: 1

积分
44
最后登录
1970-1-1
发表于 2011-5-4 15:08:39 | 显示全部楼层

RE:S12用C语言写中断程序的问题

中断里不要等啊
您需要登录后才可以回帖 注册/登录

本版积分规则

关闭

站长推荐上一条 /3 下一条

Archiver|手机版|小黑屋|恩智浦技术社区

GMT+8, 2025-7-25 06:40 , Processed in 0.104399 second(s), 30 queries , MemCache On.

Powered by Discuz! X3.4

Copyright © 2001-2024, Tencent Cloud.

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