找回密码
 立即注册
查看: 187|回复: 10

项目中有两个中断号超过31号,13号中断已被一个占用,另一个怎么办?

[复制链接]
  • 打卡等级:偶尔看看II
  • 打卡总天数:21
  • 最近打卡:2025-04-06 00:03:37
已绑定手机

10

主题

45

回帖

222

积分

中级会员

积分
222
发表于 2025-4-3 12:43:23 | 显示全部楼层 |阅读模式
STC8H8K64U项目,一个中断是P3口IO,另一个中断是RTC,P3口IO中断借用13号中断,我将RTC中断借用没启用的14号中断,分两个*.asm加入项目,编译正常,运行出错,仿真发现总跑到其他程序中运行。
回复

使用道具 举报 送花

3

主题

1160

回帖

1031

积分

等待验证会员

积分
1031
发表于 2025-4-3 12:48:00 | 显示全部楼层
在STC8H8K64U项目中,中断号超过31号的情况确实需要特别处理。根据您的描述,13号中断已被占用,而RTC中断借用了未启用的14号中断,但运行过程中出现了问题,仿真时程序跑到了其他程序中。以下是一些可能的原因及解决方案:

1. 中断向量表配置
STC8H8K64U的中断向量表是固定的,每个中断号对应一个特定的中断服务程序入口地址。如果中断号超过31号,需要确保中断向量表正确配置。您提到将RTC中断借用14号中断,但14号中断可能并未正确映射到RTC中断服务程序。

解决方案:
检查中断向量表,确保14号中断的入口地址正确指向RTC中断服务程序。
在.asm文件中,确保中断服务程序的标签与中断向量表中的地址一致。

2. 中断优先级设置
STC8H8K64U支持中断优先级设置,如果多个中断同时发生,优先级高的中断会先被处理。如果RTC中断的优先级设置不当,可能会导致程序跑飞。

解决方案:
检查RTC中断的优先级设置,确保其优先级合理。
如果RTC中断的优先级过低,可能会导致其他中断抢占,建议适当提高RTC中断的优先级。

3. 中断服务程序编写
中断服务程序的编写需要特别注意,确保在进入中断时保存现场,退出中断时恢复现场。如果中断服务程序编写不当,可能会导致程序跑飞。

解决方案:
在RTC中断服务程序中,确保保存和恢复所有可能被修改的寄存器。
确保中断服务程序中没有无限循环或长时间阻塞的代码。

4. 中断使能与屏蔽
在启用中断之前,需要确保相关中断使能位已正确设置。如果中断使能位未正确设置,可能会导致中断无法正常触发。

解决方案:
检查RTC中断的使能位,确保其已正确设置。
在启用中断之前,确保所有相关的中断屏蔽位已正确配置。

5. 仿真与调试
仿真时程序跑到了其他程序中,可能是由于中断服务程序未正确执行或中断触发条件未满足。

解决方案:
使用仿真工具逐步调试,检查中断触发条件和中断服务程序的执行情况。
确保中断触发条件已满足,并且中断服务程序能够正确执行。

6. 硬件连接与配置
如果硬件连接或配置不当,可能会导致中断无法正常触发或处理。

解决方案:
检查P3口和RTC的硬件连接,确保其正确无误。
检查相关寄存器的配置,确保其与硬件设计一致。

总结
在STC8H8K64U项目中处理中断号超过31号的情况时,需要特别注意中断向量表配置、中断优先级设置、中断服务程序编写、中断使能与屏蔽、仿真与调试以及硬件连接与配置。通过仔细检查和调整这些方面,可以有效解决中断处理过程中出现的问题,确保程序正常运行。

希望以上建议对您有所帮助,祝您的项目顺利进行。

[本文内容由国芯人工智能辅助生成,仅供参考]
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:435
  • 最近打卡:2025-04-30 08:43:23

33

主题

2351

回帖

4860

积分

论坛元老

积分
4860
发表于 2025-4-3 13:04:06 | 显示全部楼层
一个是在一个中断里面不同外设的中断标志位,那个标志位置位了就处理对应的程序,,,

另一种是利用其他没有用到的中断,
参考例程并不是对技术参 考手册的补充,而是对技术参 考手册的解释。
技术参 考手册不应该需要参考例程作为补充,而是解释成了参考例程的样子
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:424
  • 最近打卡:2025-05-02 14:37:11
已绑定手机

77

主题

4846

回帖

8376

积分

超级版主

DebugLab

积分
8376
发表于 2025-4-3 13:04:10 | 显示全部楼层
DebugLab
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:239
  • 最近打卡:2025-05-02 03:42:37

22

主题

283

回帖

905

积分

高级会员

积分
905
发表于 2025-4-3 13:07:39 来自手机 | 显示全部楼层
14号好像是内部使用了
Screenshot_2025-04-03-13-03-28-481_cn.wps.moffice_eng.jpg
REMOVEUNUSED
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看II
  • 打卡总天数:21
  • 最近打卡:2025-04-06 00:03:37
已绑定手机

10

主题

45

回帖

222

积分

中级会员

积分
222
发表于 2025-4-4 00:49:21 | 显示全部楼层
怪不得出错,我下载的STC8H8K64U手册上没写到14号中断是系统内部中断,那就错错了。后续试着借用串口234中断改一下,项目中没有用到任何串口中断。
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看II
  • 打卡总天数:21
  • 最近打卡:2025-04-06 00:03:37
已绑定手机

10

主题

45

回帖

222

积分

中级会员

积分
222
发表于 2025-4-4 00:55:20 | 显示全部楼层
也下载了中断拓展插件修改了C51EXE和C251EXE,明天都试一下。感谢以上四位热心网友。
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:519
  • 最近打卡:2025-05-02 07:55:51
已绑定手机

46

主题

1694

回帖

2544

积分

金牌会员

积分
2544
发表于 2025-4-4 09:25:18 | 显示全部楼层
13中断中判断不同的标志位进入不同的中断处理
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看II
  • 打卡总天数:21
  • 最近打卡:2025-04-06 00:03:37
已绑定手机

10

主题

45

回帖

222

积分

中级会员

积分
222
发表于 2025-4-4 10:13:09 | 显示全部楼层
回复上一层:好的我试试。错就错在借用的14号中断出的问题。
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看II
  • 打卡总天数:21
  • 最近打卡:2025-04-06 00:03:37
已绑定手机

10

主题

45

回帖

222

积分

中级会员

积分
222
发表于 2025-4-5 11:52:00 | 显示全部楼层
按上面各位提供的帮助,通过测试,最终选择中断拓展插件成功,解决了多个大于31#中断的问题,项目正在往前推进。
回复 支持 反对

使用道具 举报 送花

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

本版积分规则

QQ|手机版|小黑屋|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2025-5-2 15:42 , Processed in 0.152813 second(s), 109 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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