demon 发表于 2024-12-28 21:14:24

历程中的中断回调代码的interrupt数字

用ai8051u看了写adc dma 复制了历程的中断代码,结果单片机一直重启
排查了很多东西,发现一到中断回调函数就黑屏重启。
把中断关了就不会了,然后观察到这里interrupt 13不对
要改成48才能正常运行。建议直接抄宏定义

DebugLab 发表于 2024-12-28 21:50:27





health 发表于 2024-12-28 21:53:49

原版keil c51/c251不支持大于31的中断序号。
使用13号中断向量代替实际的中断,需要另外写一个汇编代码跳转。

VCC 发表于 2024-12-29 14:32:25

DebugLab 发表于 2024-12-28 21:50

之前我也请教过这个问题

但是还是问有困惑

如果需要使用多个大于31号的中断

该如何借用呢?

health 发表于 2024-12-29 15:38:04

VCC 发表于 2024-12-29 14:32
之前我也请教过这个问题

但是还是问有困惑

借用13号或其它未用到的31以下中断号。
不想借用也可以,汇编编写中断函数,指定链接地址。
其实也不用写汇编,用C写完中断函数,随便用个中断向量,编译成asm,然后修改asm中的段地址就行了。

DebugLab 发表于 2024-12-30 01:12:52

VCC 发表于 2024-12-29 14:32
之前我也请教过这个问题

但是还是问有困惑


建议使用中断号扩展插件

草木灰06 发表于 2025-3-8 13:27:16

学习了原版keil c51/c251不支持大于31的中断序号,** 建议使用中断号扩展插件**
页: [1]
查看完整版本: 历程中的中断回调代码的interrupt数字