历史上的今天
今天是: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程序的执行
上一篇:PIC8位在PICC中的数据类型
下一篇:PICC ---- 各种变量修饰
史海拾趣
|
怎么判定芯片的真伪? 概述: 通过化学腐蚀及物理显微观察、简单电性能等方法,来检验鉴定器件是否为原半导体厂商的器件。 检验的内容: A、货品外包装、湿度标示卡、器件日期批号等检查确认及记录 B、外观检测,器件的表面状况、印字标准、重 ...… 查看全部问答> |
|
转自:http://www.1000bbs.com/dispbbs.asp?boardid=51&Id=261604 首先声明一下身份:辽宁锦州安防器材经销商、工程商。 我开始选择红外一体机,是因为甲方点着名要这玩意。 选了哪些厂家的哪些型号的红外机,恕我不一一列举了。总之,深圳的、 ...… 查看全部问答> |
|
WINCE SDK平台改变后出现的问题: fatal error LNK1112: module machine type \'ARM\' conflicts with target machine type \'SH3\' 这要怎么解决啊???… 查看全部问答> |
|
我现在程序在外部flash运行,LPC2292,外部flash是sst39vf1601,在外部flash的0x10000地址(也就是arm看到的0x80010000地址开始我是烧的fpga程序,这个已经是没问题的),在用EASYJTAG-H外部仿真的时候,在MAIN入口处,我也看到了数据。startup.s的设 ...… 查看全部问答> |
|
软件名称:SEFS安全透明加密内核 软件版本:1.0 建议分类:系统安全/文件加密 软件大小:635K 安装平台:Win2000/xp/2003 软件语言:简体中文/繁体中文/英文 软件授权:共享软件 软件主页:http://www.sefs.net 支持邮箱:admin@sefs.ne ...… 查看全部问答> |
|
LPC2141的无刷直流电机控制系统设计 导读: 无刷直流电机是最常用的无刷电机。它易于驱动,速度可调且工作寿命长,适用于各类大小型工业应用,诸如小型马达的控制(如12 V直流无刷电机)。 关键字 LPC2141 ...… 查看全部问答> |
|
Visual Basic设计完成了上位机界面;同时利用51单片机作为下位机微处理器,采集无刷电机运行工作中的电压、电流和转速等基本参数,通过串行通讯口将数据上传至上位机系统中。上位机系统对下位机上传的数据加以分析计算,直观的绘制个参数的变化曲线 ...… 查看全部问答> |




