51内核的最基础的中断源请求有外部中断、定时器中断和串口中断,这也是学习和开发者最长用的。当然还有其他的中断源,比如ADC、SPI、PWM等。以外部中断0为例,在编程中常使用的方式为:
void INT0()interrupt 0 using 1
{
……
}
在这里特别做上笔记:其中前面的void INT0() 只是代表一个普通没有形参的函数而已,函数名写成什么都是可以的,这个到不重要。那么后面的就一个一个词的扣把:(2-1-i-c-中国-电子网,防抓取)
其中 interrupt n 组成一组,n用来指明中断号,在函数后使用了interrupt关键字后,就会自动的生成中断向量,51内核中断号如下图,这是我今天查的正在使用的MCU:
例如:
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还真不是那么好找出来的(今天我就遇到了这个问题)。21ic整理
其次就是中断优先级的问题了,如图上面的中断表,在右侧第二栏标的很清楚,除了复位之外,就数外部中断0优先级最高了,依次往下排列,那么问题来了,今天刚好就碰到了需要串口0的优先级比定时器0的优先级高。没办法,只好接着啃数据手册,还好这寄存器不多,一会就查到了下表和相关的描述:
所以按照描述修改下优先级就可以达到目的了。
总结:用到回过头来用到51的中断,发现有些东西在之前学习的时候并没有太在意,导致现在在开发产品上使用的时候不清楚用途。因为工作跟学习性质是不一样的,作为开发者的角度来说,质量往往是第一要求。同时会接触到很多新鲜的事物和技术,但是话又说回来了,最基本的知识还是需要打牢。
上一篇:用单片机玩PID控制—从理想PID控制至先进PID控制_14
下一篇:单片机学习笔记之51内核软件延时和串口的巧妙方法
推荐阅读
史海拾趣
随着业务规模的不断扩大,FLIR逐渐将目光投向全球市场。公司在全球范围内建立了多个生产基地和销售服务网络,包括在美国本土的波特兰、波士顿、圣巴巴拉和波兹曼等城市设立的工厂,以及在瑞典斯德哥尔摩和爱沙尼亚塔林等海外地区设立的分支机构。这些生产基地和销售服务网络为FLIR在全球市场的拓展提供了有力支持,使得公司能够更好地服务于全球客户,满足他们多样化的需求。
在竞争激烈的电子行业中,持续的研发和创新是企业生存和发展的关键。Semi-Films Division 深知这一点,因此始终将研发和创新作为公司的核心竞争力。公司投入大量资金和资源用于新技术和新产品的研发,不断推出具有更高性能、更低成本的产品来满足市场的需求。这些创新产品不仅为公司带来了丰厚的利润,也提升了公司在行业中的地位和影响力。
人才是企业发展的核心竞争力,BCD Semi公司高度重视人才培养和团队建设。公司建立了一套完善的人才培养和激励机制,吸引和留住了一批优秀的技术和管理人才。同时,公司还注重团队建设和协作精神的培养,鼓励员工之间的交流和合作,共同推动公司的创新和发展。
以上五个故事仅为示例性质,并不代表BCD Semi公司的实际发展经历。电子行业的发展是一个充满机遇和挑战的过程,需要企业不断创新、拓展市场、提升品质、关注环保和人才培养等方面做出努力。希望这些故事能够为您了解电子行业和BCD Semi公司的发展提供一些参考和启示。
自1956年成立以来,Hitachi Metals便逐步在电子材料领域建立了坚实的基础。公司早期便专注于研发和生产用于电子设备的核心部件,如磁性材料。随着电子行业的蓬勃发展,日立金属迅速抓住了市场机遇,推出了高性能的Nd-Fe-B系列烧结磁石和高性能铁氧体烧结磁石,这些材料广泛应用于计算机、半导体集成电路器件及平板显示屏等高科技产品中。凭借其卓越的产品质量和稳定的市场供应,Hitachi Metals在电子材料市场上赢得了广泛的认可。
dxf文件中LWPOLYLINE和POLYLINE有什么区别 dxf文件中LWPOLYLINE和POLYLINE有什么区别?另外,POLYLINE部分是否只有由VERTEX连成的线段?… 查看全部问答∨ |
请问有谁做过VGA 转 RGB的系统没? 电脑显卡出来的VGA显示信号,转变为RGB数字信号,24位的最好, 就是想用480x272的LCD液晶来显示电脑输出的显示信号呀 ,各位高 手请指点一下,用哪个芯片好?… 查看全部问答∨ |
请问DNW v0.50L版本中UBOOT功能怎么使用? 我将三星带USB下载功能的Eboot.nbo下到RAM后,进入main menu,然后按U选中USB下载项,再选DNW的USB Port->uboot,选中待下载的NK.BIN ,但下载进度条出来 后没有任何反应。 请问这是什么原因? … 查看全部问答∨ |
ffmpeg已变成多媒体处理领域最有影响力的开源组件,接近50万行源代码的工程对ARM模拟器来说是个巨大的挑战,但多年的稳定性给了我很大信心。整个过程比较顺利,前后大约花2个半小时,包括在ARM开发板上验证。ffmpeg0.6的移植成 ...… 查看全部问答∨ |
设计资源 培训 开发板 精华推荐
- 参加RT-Thread软件包赛,赢取RoboMaster等丰厚奖品!
- ADI有奖下载活动之24:ADI公司医疗X射线成像解决方案
- 学AM335X课程,赢超值BB-Black团购资格,更有DIY大奖赛预热中!
- 关注EE官方微信,大年初一抢新年红包
- 下载《TI MCU与无线连接技术研讨会讲座实录》抽奖赢好礼!
- 已结束|TI Sitara™ 产品在多协议工业通信中的应用
- 有奖看视频|2022台北国际电脑展——美光主题演讲精选
- Microchip直播|如何在ADAS系统中解决精密授时挑战
- 共抗疫情,少出门多学习。领取下载积分,让学习资料到你碗里!
- 试用Vishay新型“IHLP磁芯损耗计算器”,抢楼赢好礼