历史上的今天
返回首页

历史上的今天

今天是:2025年02月07日(星期五)

正在发生

2020年02月07日 | 浅谈51内核单片机中断源

2020-02-07 来源:elecfans

51内核的最基础的中断源请求有外部中断、定时器中断和串口中断,这也是学习和开发者最长用的。当然还有其他的中断源,比如ADC、SPI、PWM等。以外部中断0为例,在编程中常使用的方式为:

void INT0()interrupt 0 using 1

{

……

}

在这里特别做上笔记:其中前面的void INT0()  只是代表一个普通没有形参的函数而已,函数名写成什么都是可以的,这个到不重要。那么后面的就一个一个词的扣把:(2-1-i-c-中国-电子网,防抓取)

其中 interrupt n  组成一组,n用来指明中断号,在函数后使用了interrupt关键字后,就会自动的生成中断向量,51内核中断号如下图,这是我今天查的正在使用的MCU:

浅谈51内核单片机中断源

例如:

12

interrupt 1 指明是定时器中断0;

interrupt 2 指明是外部中断1;

interrupt 3 指明是定时器中断1

。。。

对于51内核的MCU,不同厂家及不同型号的内部资源会有所不同,上图是我正在开发的一款中颖SH88F516单片机,由上图可见内部资源还算可以,能够满足一般的产品。后面的using  n   指的是使用第n组寄存器。这个之前我在使用的过程中往往忽略了这个,也没有出现什么问题。但是今天注意到这个问题,查完资料后用上发现效果还不如不用,很有肯能是没有把这个知识用好的原因把。对比之后给我的感觉是在使用C语言写程序时,能不用就不用吧。查资料解释说假如在中断函数中使用了using  n,中断不再保存R0-R7的值,这也就意味着假如一个高优先级的中断及一个低优先级的中断同时使用了using   n,而这个n恰恰相等,那就等着哭把,因为这个BUG还真不是那么好找出来的(今天我就遇到了这个问题)。


其次就是中断优先级的问题了,如图上面的中断表,在右侧第二栏标的很清楚,除了复位之外,就数外部中断0优先级最高了,依次往下排列,那么问题来了,今天刚好就碰到了需要串口0的优先级比定时器0的优先级高。没办法,只好接着啃数据手册,还好这寄存器不多,一会就查到了下表和相关的描述:

浅谈51内核单片机中断源

所以按照描述修改下优先级就可以达到目的了。


总结:用到回过头来用到51的中断,发现有些东西在之前学习的时候并没有太在意,导致现在在开发产品上使用的时候不清楚用途。因为工作跟学习性质是不一样的,作为开发者的角度来说,质量往往是第一要求。同时会接触到很多新鲜的事物和技术,但是话又说回来了,最基本的知识还是需要打牢。

推荐阅读

史海拾趣

Alliance Fiber Optics Products Inc公司的发展小趣事

随着产品质量的不断提升和市场需求的扩大,AFOP开始积极拓展国内外市场。公司通过与各大电信运营商、设备制造商等建立合作关系,将产品应用于长途通信、大都会网络以及最后一里接入等领域。同时,AFOP还积极参与国际光纤通信展览会等活动,加强与国际同行的交流与合作,提升了公司在国际市场的知名度。

DMC Tools公司的发展小趣事

DMC Tools公司自创立之初,就注重技术创新。早期,公司研发团队针对电子行业对高精度工具的需求,成功开发出一系列具有自主知识产权的精密切割工具。这些工具不仅提高了生产效率,还降低了生产成本,迅速在市场上获得了认可。随着技术的不断进步,DMC Tools公司不断推出新产品,满足电子行业日益增长的需求,逐步在市场上树立了自己的品牌。

GE (General Electric)公司的发展小趣事
检查各电机是否正常运转,有无异响或过热现象。
E-T-A [E-T-A Circuit Breakers]公司的发展小趣事

E-T-A公司自创立以来,一直由Ellenberger和Poensgen家族掌控。家族成员代代相传,将公司的传统和价值观延续至今。同时,公司也注重培养新一代的管理和技术人才,为公司的持续发展注入新的活力。在家族传承的基础上,E-T-A公司不断追求创新,致力于为客户提供更加优质的产品和服务。

Electron Products Inc公司的发展小趣事

Electron Products Inc(简称EPI)成立于XXXX年,由一群对电子技术充满热情的工程师共同创立。初期,公司主要从事电子产品的设计和研发,致力于为小型企业和消费者提供高质量的电子产品。通过不断创新和优化产品,EPI逐渐在市场上树立了自己的品牌形象。

Bce Sud公司的发展小趣事

面对市场的不断变化和消费者需求的日益多样化,Bce Sud始终坚持创新驱动的发展理念。公司不断推出新产品,从半导体芯片拓展到传感器、集成电路等领域,产品线日益丰富。这些创新产品不仅提升了公司的市场竞争力,也为消费者带来了更多选择。

问答坊 | AI 解惑

[反馈]页面显示有点问题

本帖最后由 UUC 于 2022-11-10 16:31 编辑 如图:黄色框里“发帖排行榜”模块,貌似有点问题,一直没有内容显示,不知是显示、缓存还是设置问题?伙伴们也是这样吗? …

查看全部问答>

先楫官方工程师干货:HPM6700/6400系列基于网络的IEE1588的功能示例和使用指南

在HPM6700/6400系列微控制器上,提供了2个以太网控制器。都可以支持IEEE1588-2002和IEEE1588-2008标准。方便用户实现基于网络的精确时间同步。 本文提供了与HPM6700/6400系列微控制器基于网络的IEE1588的功能示例和使用指南。   ...…

查看全部问答>

关于TMS320F28035/TMS320F28335无法捕获低频信号相关问题

  各位好,我在使用28335/28035捕获低于500hz一下信号时发生了报错,我不知道具体的原因时什么,因为在捕获500hz-500khz中都可以稳定的捕获到。我查阅了相关书籍和数据手册,考虑到是否为计数器没有及时复位清零的原因,但是在配置完相关寄存 ...…

查看全部问答>

关于野外设备的防雷

给位好,咨询下如果两个设备相距10m左右,通过导线连接,设备A作为主设备给设备B供电,接收设备B的返回的信号,设备B为塑料外壳,仅与设备A有电气连接(像不像一根天线?),那么要保护设备A时,在去设备B的电源接口、从设备B返回的信号接口,该怎 ...…

查看全部问答>

先楫官方工程师干货:HPM6700系列硬件设计指南 (上)

本期开发笔记详细为大家介绍基于HPM6750微控制器的硬件电路设计,可以有效提高硬件设计成功率和成熟度,想了解的 “攻城狮“们赶紧上车~   01 简介 本文档的目的是帮助硬件工程师 ...…

查看全部问答>

分享一个关于非接触液位传感器的产品规格书

分享一个关于非接触液位传感器的产品规格书,喜欢的可以自行下载! 产品型号是Y25  功能:非接触式液位传感标定   …

查看全部问答>

【中科亿海微EQ6HL45开发平台测评体验】+05.扩展接口-LCD测试(zmj)

【中科亿海微EQ6HL45开发平台测评体验】+05.扩展接口-LCD测试(zmj) 中科亿海微EQ6HL45开发平台预留3个扩展接口J8/J12/J17。 此次测试扩展接口J8连接4.3寸液晶屏模块AN430,分辨率是480x272。FPGA控制液晶屏显示纯色、彩条、方格,切换频率 ...…

查看全部问答>

ST官方MEMS传感器群 技术讨论原汁原味收录也(更新日期20221110)

群友甲:你好!请教一下,三轴加速度传感器要做到比较好的抬手亮屏和饭碗亮屏效果,ODR一般要设置为多少啊?25hz够吗? 官方技术支持:够用,ST 有sensor 自带抬腕功能,但是针对某些快速翻腕可能抓不到,推荐52Hz,看你在功耗和精度之间怎么平衡 ...…

查看全部问答>

函数中使用立即数得问题

有个问题请教下大家,关于反汇编,寻址的问题,编译环境keil,hdsc32平台。如下: 函数中,使用立即数获取ID号,这样破译人员在反汇编过程中会通过ID号地址追寻到这个函数吗?如果能,该如何做,才能避免或增大获取此函数的难度?   …

查看全部问答>

N32G45x系列MCU使用JLINK的开发应用记录之RTT篇

  前言 什么是RTT? RTT(Real Time Transfer)是一种用于嵌入式中与用户进行交互的技术,它结合了SWO和半主机的优点,具有极高的性能。使用RTT可以从MCU非常快速输出调试信息和数据,且不影响MCU实时性。这个功能可以用于很多支持J-Lin ...…

查看全部问答>