找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1309|回复: 3
收起左侧

关于51单片机中断函数在个个文档中的写法问题

[复制链接]
ID:941788 发表于 2022-3-2 21:07 | 显示全部楼层 |阅读模式
  本人电子专业,最近在重新看51单片机的时候遇到一个问题,外部中断我在使用的时候在main。c文件中直接写不用声明就能触发。但是换到其他文档中并且在主函数文档引用了却还是不能够使用。我需要在重新声明吗?并且在声明中中断优先级不能够在H文件中出现。我应该怎么做
回复

使用道具 举报

ID:624769 发表于 2022-3-2 22:16 来自手机 | 显示全部楼层
中断函数,不存在调用,何来声明?
回复

使用道具 举报

ID:401564 发表于 2022-3-3 21:01 | 显示全部楼层
只要是中断函数,后面都是加了interrupt的,这是不需要声明的,也没有调用一说
中断优先等级在主函数中设置就可以,中断函数可以放在任何地方
如果是单独放一个.C文件的话,只要是.h包含了,就可以进入中断
现在是不知道你要干嘛?
回复

使用道具 举报

ID:123289 发表于 2022-3-4 15:16 | 显示全部楼层
设中断程序名是S。
对于单片机来说,中断被响应后,就会跳转到一个特定的地方(假设:中断地址是Z)。
只要编译平台将程序S放置到地址Z上,则中断发生后S必被执行。
于是平台要知道是谁需要放在Z上。关键字就是【interrupt】。
所以,只要你的【interrupt】S,被编译平台认可,就大功告成了。

中断优先级在CPU中,是对某个寄存器进行0、1设置来实现的,当两个中断同时发生时,谁优先执行,就看这个器中哪个位是0是1。
答案有了:如果H文件中能够对这个寄存器赋值(例如:赋值这个寄存器=XX数),则可以。
反之则不可以。
这就要看编译器的智能程度了。
智能高的,可以将【H文件中对这个寄存器的定义】编译成一个赋值语句。
智能低的,则提示你【H文件中对这个寄存器的定义】编译失败。
所以,建议你:写一句赋值语句给【中断优先级寄存器吧】,放在H文件中,也是要一句,你省不了的。当然采纳默认值,就不必讨论为个问题了。
回复

使用道具 举报

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

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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