历史上的今天
返回首页

历史上的今天

今天是:2025年02月13日(星期四)

正在发生

2020年02月13日 | PICC中主程序和中断调用同一个子程序的问题

2020-02-13 来源:eefocus

#pragma interrupt_level 1

void function (void)

{


}

然后在中断函数那写句

#pragma interrupt_level 1

void interrupt(void)

{

function();

}


void main (void)

{

function();

}


程序中出现重入现象是错误的。PICC具有的重入保护可以防止这种现象的出现。

换言之,在PIC架构的单片机中,楼主的做法是错误的。主程序和中断程序是不允许调用同一子程序的。

比如子程序A,在主程序中被调用,这时发生中断,该子程序又在中断程序中被调用,这时就发生程序重入。在别的构造的单片机中,如果堆栈可以扩展,则重入问题可以解决,但PIC的堆栈的层数固定,重入会引起地址返回出错,也就是程序出错。


如果在主程序调用子程序A之前先把中断屏蔽了,等执行完了之后再恢复。

这样就不会发生重入的错误吧。。这样可否在主程序和中断中调用同一个子程序?


主程序调用的A程序中,用到的临时变量,跟主程序中的临时变量可以覆盖;而中断程序调用A程序时出现的临时变量,也会产生重入冲突。

本来事情可以很简单的,比如要执行A程序,在主程序中可以调用,而在中断程序中可以设一个标志位,出中断后,在合适的时机,主程序检测到标志位的变化,也可以完成A程序的执行


推荐阅读

史海拾趣

Galil Motion Control Inc公司的发展小趣事

Galil Motion Control Inc. 的五个发展故事

故事一:技术创新引领者

Galil Motion Control Inc.,成立于1983年,位于美国加州硅谷中心,是电子行业中运动控制技术的先驱。公司成立初期,便致力于研发基于微处理器的精密运动控制器。据《DESIGNNEWS》杂志报道,Galil是全球第一家推出数字运动控制器的公司,这一技术创新在业界引起了巨大反响。此后,Galil不断推陈出新,其产品已发展到第五代,采用RISC结构的DSP技术,结合最新控制理论及网络技术,使得伺服更新速率和指令执行周期显著提升,引领了运动控制领域的技术潮流。

故事二:全球市场的扩展

随着技术的不断成熟,Galil的产品逐渐在全球市场上占据了一席之地。目前,全球有超过500,000台Galil的运动控制器在稳定运行,应用领域覆盖了医疗、半导体、纺织、物料搬运、食品加工、机床、产业机械、航天、测试测量等多个行业。这一广泛的应用不仅证明了Galil产品的可靠性和稳定性,也为其在全球市场的扩展奠定了坚实的基础。

故事三:分布式运动控制器的诞生

在进入21世纪之初,Galil公司又开发出了DMC3425分布式运动控制器。这款控制器不仅提供了API函数支持高级应用开发,还引入了极其简单易学的2字符命令集,使得应用编程变得如同书写英文字母般简单。这一创新不仅降低了用户的学习成本,也极大地提高了系统的开发效率,进一步巩固了Galil在运动控制领域的领先地位。

故事四:与光纤激光切割技术的结合

近年来,随着激光切割技术的快速发展,Galil公司也紧跟这一趋势,将运动控制技术与光纤激光切割技术相结合。通过设计以Galil控制卡为核心的四轴联动伺服控制系统,实现了激光切割设备的高精度控制。这一结合不仅提升了激光切割设备的性能,也拓展了Galil运动控制技术的应用领域,为工业制造带来了更多的可能性。

故事五:全球销售与服务网络的建立

为了更好地服务全球客户,Galil公司在全球范围内建立了完善的销售和服务网络。目前,Galil拥有众多销售代理商,遍布世界各地。这些代理商不仅负责产品的销售工作,还为客户提供专业的技术支持和售后服务。通过这一网络,Galil能够迅速响应客户的需求,确保每位客户都能获得最佳的产品体验和服务保障。这种以客户为中心的服务理念,也为Galil赢得了良好的市场口碑和广泛的客户认可。

Brilliance公司的发展小趣事

在国内市场取得一定成功后,Brilliance公司开始将目光投向国际市场。公司制定了详细的国际化战略,积极寻求与国际知名企业的合作机会。通过与国外合作伙伴的共同努力,Brilliance的产品逐渐打入国际市场,并获得了良好的口碑。同时,公司还积极参加国际电子展会和交流活动,提升了品牌知名度和影响力。

HCC Industries公司的发展小趣事

面对日益激烈的市场竞争和快速变化的市场需求,HCC Industries在2020年启动了数字化转型计划。公司投入大量资金引入先进的自动化生产线和智能化管理系统,实现了从原材料采购到成品出厂的全链条数字化管理。这一举措不仅大幅提高了生产效率和产品质量,还降低了运营成本和库存风险。同时,HCC还利用大数据和人工智能技术优化产品设计和市场策略,进一步提升了其市场竞争力。

amcc [applied micro circuits corp]公司的发展小趣事

2015年,HCC Industries迎来了其发展历程中的一个重要转折点。在这一年,公司成功收购了另一家具有强大研发实力和市场份额的微电子企业。此次并购不仅使HCC在技术上得到了进一步的补充和提升,还大大增强了其生产能力和市场覆盖范围。通过整合双方资源,HCC在短时间内实现了规模的快速扩张和效益的显著提升,进一步巩固了其在行业内的领先地位。

Autotrol公司的发展小趣事

随着公司规模的不断扩大和市场份额的逐步提升,Autotrol公司开始实施全球化战略,积极拓展海外市场。公司在全球范围内建立了销售网络和分支机构,与当地合作伙伴共同开拓市场。同时,Autotrol还加大了对国际市场的研发投入,针对不同地区的市场需求推出定制化的产品和服务。通过全球化战略的实施,Autotrol公司的品牌影响力不断提升,市场地位也日益稳固。

请注意,以上故事仅为基于一般行业知识和公司概况编写的示例,并不代表Autotrol公司的实际历史。如需了解Autotrol公司在电子行业中的具体发展故事,建议查阅公司官方网站、行业报告或相关新闻报道等权威资料。

淩志比高公司的发展小趣事

随着市场的不断变化和客户需求的日益多样化,淩志比高公司意识到技术创新的重要性。公司投入大量研发资源,不断推陈出新,成功研发出一系列具有竞争力的新产品。这些产品的推出不仅提升了公司的市场份额,也进一步巩固了公司在电子行业中的地位。

问答坊 | AI 解惑

如何鉴别芯片真假,cecclab为你解答

怎么判定芯片的真伪? 概述: 通过化学腐蚀及物理显微观察、简单电性能等方法,来检验鉴定器件是否为原半导体厂商的器件。 检验的内容: A、货品外包装、湿度标示卡、器件日期批号等检查确认及记录 B、外观检测,器件的表面状况、印字标准、重 ...…

查看全部问答>

用什么也别用害人的红外一体机!(转)

转自:http://www.1000bbs.com/dispbbs.asp?boardid=51&Id=261604 首先声明一下身份:辽宁锦州安防器材经销商、工程商。 我开始选择红外一体机,是因为甲方点着名要这玩意。 选了哪些厂家的哪些型号的红外机,恕我不一一列举了。总之,深圳的、 ...…

查看全部问答>

WINCE SDK平台改变后出现的问题!求助!

WINCE SDK平台改变后出现的问题: fatal error LNK1112: module machine type \'ARM\' conflicts with target machine type \'SH3\' 这要怎么解决啊???…

查看全部问答>

串口读取数据过滤

在用ddk做驱动时,在对 IRP_MJ_READ截获后 然后改变指向的buffer中的数据 最总发现用串口调试助手读取数据时并没有改变串口读到数据的内容, 请问应该怎样做能够从底层改变收到数据,最终使用串口调试助手时显示的是我修改的数据…

查看全部问答>

求驱动函数

菜鸟请高手指点 有三个设备A、B、C A是最底层,然后挂载B到A上面,也就是原来设备栈的顺序是 A--B (由底到顶) 现在我想在A,B的设备栈里面加入C,但是我不希望设备栈的顺序是 A--B--C(由底到顶) ,而是希望希望设备栈的顺序 是 A--C--B(由底到顶) ...…

查看全部问答>

关于lpc2292 arm的初始化外部总线控制器 问题

我现在程序在外部flash运行,LPC2292,外部flash是sst39vf1601,在外部flash的0x10000地址(也就是arm看到的0x80010000地址开始我是烧的fpga程序,这个已经是没问题的),在用EASYJTAG-H外部仿真的时候,在MAIN入口处,我也看到了数据。startup.s的设 ...…

查看全部问答>

SEFS安全透明加密内核

软件名称:SEFS安全透明加密内核 软件版本:1.0 建议分类:系统安全/文件加密 软件大小:635K 安装平台:Win2000/xp/2003 软件语言:简体中文/繁体中文/英文 软件授权:共享软件 软件主页:http://www.sefs.net 支持邮箱:admin@sefs.ne ...…

查看全部问答>

LPC2141的无刷直流电机控制系统设计

LPC2141的无刷直流电机控制系统设计 导读: 无刷直流电机是最常用的无刷电机。它易于驱动,速度可调且工作寿命长,适用于各类大小型工业应用,诸如小型马达的控制(如12 V直流无刷电机)。 关键字 LPC2141   ...…

查看全部问答>

vb上位机 51单片机下位机 编程

Visual Basic设计完成了上位机界面;同时利用51单片机作为下位机微处理器,采集无刷电机运行工作中的电压、电流和转速等基本参数,通过串行通讯口将数据上传至上位机系统中。上位机系统对下位机上传的数据加以分析计算,直观的绘制个参数的变化曲线 ...…

查看全部问答>

C2000/MSP430/电源的在线学习不能用了!!!!

C2000/MSP430/电源的在线学习不能用了!!!! 求关注,你们那里有这个现象没?…

查看全部问答>