搜索
bottom↓
回复: 5

芯片M8,刚学这个,请教全局定义的变量可以在中断服务里赋值吗?(关于EEPROM)

[复制链接]

出0入0汤圆

发表于 2009-11-13 20:52:18 | 显示全部楼层 |阅读模式
我在全局定义的变量可以在中断服务里赋值吗?比如我全局定义的a或b,我在中断服务函数里赋值:
uchar a,b;
#pragma interrupt_handler Timer0_OVF_ISR:iv_TIMER0_OVF

void Timer0_OVF_ISR (void)
{
...
a=0;
}
main()
{
while((1)
{
a++;
if(a==10){EEPROM_write(0X01,b+1);EEPROM_write(0X02,b);}
}
}
这样可以吗?如果这样可以的话,我想就可以用检测这个中断里的这个变量来判断写EEPROM函数,这个中断我就可以用外部的交流电过零产生,没有交流信号就没有中断了,没有中断我在主函数里的变量自加就不会清零,到了自加的某一个数就当是断电了就写EEPROM.

阿莫论坛20周年了!感谢大家的支持与爱护!!

知道什么是神吗?其实神本来也是人,只不过神做了人做不到的事情 所以才成了神。 (头文字D, 杜汶泽)

出0入0汤圆

发表于 2009-11-13 21:09:43 | 显示全部楼层
地球人都知道这么用。

出0入0汤圆

发表于 2009-11-13 22:25:53 | 显示全部楼层
TO LZ:
可以的 但是在中断函数里改变的量最好使用 volatile 定义 EEPROM的读写相对比较占用时间 好的习惯是 在中断函数中 只置标志位 然后在主循环中通过检测标志位来执行对应的操作 这样做的好处是可以尽量避免中断的嵌套 只是个人看法 供参考 当然如果你中断中所做的事情对响应时间要求比较高 也可以直接在中断中执行 但别忘记 进 关中断 出 开中断

出0入0汤圆

发表于 2009-11-13 23:03:02 | 显示全部楼层
当然可以啦,只要记住中断函数要尽可能执行时间短,在不同的单片机里还有不同的限制,比如冲入函数的调用,浮点计算等

出0入0汤圆

 楼主| 发表于 2009-11-14 00:35:44 | 显示全部楼层
一, 谢谢楼上的各位大侠指导,我就是不知道在中断服务函数里给变量赋值和在其他地方给变量赋值有没有区别,这么说是一样的了,那我这样做就可以实现关机时写入EEPROM了,我要去试试。

二,2楼的xyqdoudou说要使用volatile定义,为什么呢?我每次在中断里就是要使那个变量在没关机时归零(有过零信号),这样不能做到吗?

三,正常工作时在中断里变量变为0值,而后又开始在主函数里自加,但要在自加不能到if判断里的那个数(我设置的是10)就被过零中断服务函数归零(50Hz过零信号有100Hz个中断信号=10ms)也就是每10ms就肯定要归零一次,我这样分析对吗?

四,当关机时,就没有了过零信号,这时程序还在跑(有1000uF的电解),只要程序能跑到那个变量自加到if判断里的那个数就可以执行写EEPROM了是吧(过零信号没了那个变量就不能归零了),然后在算上写EEPROM的时间,不知道那个电容能维持的到吗?我这样分析有问题吗?请各位大侠帮忙指点一下...

五,3楼的jianghehupo大侠说的中断函数的时间问题,我有点理解他的意思,我中断函数的执行时间只有小于10ms的程序,这样可以吗?

六,我那个if里的数有什么讲究吗?我应该注意那些问题?这个数值大小跟我整个程序的大小有关系吗?这些我一头雾水,刚学的,菜鸟一个,望能得到各位大侠的指点感激不尽...

出0入0汤圆

 楼主| 发表于 2013-7-12 19:27:26 | 显示全部楼层
现在回过头来看觉得很有意思,第一个特点就是表述的稀里糊涂,不过后来的结果证实了我当时的分析是正确的,也成功的完成了产品的开发,当时真是很迷茫啊,不过皇天不负有心人,呵呵,给我弄出来了,当然现在的存储更先进了,结果告诉我要勤快点才有出路,自己不多动手进步是很缓慢的,最后还要感谢上面回复的网友,是你们的帮助使我更深入理解了编写程序的很多机理,感谢这个论坛,有这样的论坛真好。
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-7-24 01:25

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

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