英锐恩单片机论坛,Microchip单片机,模拟器件,接口电路,麦肯单片机,单片机应用交流

 找回密码
 立即注册
搜索
电子烟方案单片机单片机开发深圳单片机开发
单片机方案国产单片机8位单片机电子烟方案开发
查看: 3726|回复: 1
打印 上一主题 下一主题

全局绝对变量为何在执行中断程序中的最后一句

[复制链接]
跳转到指定楼层
1#
发表于 2009-4-26 10:51:34 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
全局绝对变量为何在执行中断程序中的最后一句(不管是什么语句)时总被清零?
下面中断程序中,只要最后执行一句,全局绝对变量总清零。我用的是picmate2002  v3.3  ht-tech c 8.05pl

PICC不能定义全局绝对变量吗?
注:程序中,全局变量、局部变量只有几个,RAM有足够空间。
uchar Rccs ;
unsigned char Rcflag @ 0x70;   
bit FS   @ (unsigned)&Rcflag*8+7;
bit FL  @ (unsigned)&Rcflag*8+3;
void interrupt Service(void)
{
uchar rcdata;
   
if(RCIF)
{
  FS=1;
  rcdata=RCREG;
  Rccs+=rcdata;
}
RCIF=0;                            //执行此句之前Rcflag(70H)=0x80;执行此句之后Rcflag(70H)=0
}
如果在“RCIF=0;”后面加“Rcflag=0x22;Rcflag=0x33”,
void interrupt Service(void)
{
uchar rcdata;
   
if(RCIF)
{
  FS=1;
  rcdata=RCREG;
  Rccs+=rcdata;
}
RCIF=0;              //执行此句之前Rcflag(70H)=0x80;执行此句之后Rcflag(70H)=0x80
Rcflag=0x22;   //执行此句之后Rcflag(70H)=0x22
Rcflag=0x33;    //执行此句之后Rcflag(70H)=0
}
2#
 楼主| 发表于 2009-4-26 10:51:55 | 只看该作者
在picc中指定地址的全局变量,编译器并不保留其地址。
在picc中指定地址的全局变量,编译器并不保留其地址。容易被其它变量覆盖,不应该指定变量地址。
回复 支持 反对

使用道具 举报

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

本版积分规则

关闭

站长推荐上一条 /1 下一条

小黑屋|公司首页|Microchip单片机,模拟器件,接口电路,麦肯单片机,单片机应用交流 ( 粤ICP备09008620号 )

GMT+8, 2024-5-2 13:02 , Processed in 0.051345 second(s), 22 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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