打印

PIC16F877A写内部E2PROM时必须关闭全局中断吗?

[复制链接]
3815|13
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
qianlong30|  楼主 | 2008-3-28 21:04 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
看到<<PIC单片机原理>>书上说,些内部E2PROM时关闭全局中断,
我单片机串口不定时地接收数据,所以接收用的中断,程序还要写E2PROM,如果写E2PROM必须要关闭中断,那接收可能会不正常.是必须要关闭吗?
沙发
qianlong30|  楼主 | 2008-3-28 21:08 | 只看该作者

还一问题

我要在E2PROM预存一参数表.这些数值怎样烧进去?我用的润飞2148编程器,没有写单片机内部E2PROM的选项,是否就是应用编程器烧写进去?
(不是程序中的写E2PROM)

使用特权

评论回复
板凳
qianlong30|  楼主 | 2008-3-28 21:25 | 只看该作者

第二个问题知道了.编程器中有专门烧写内部E2P的选项.

使用特权

评论回复
地板
兰天白云| | 2008-3-28 22:16 | 只看该作者

发送指令序列时关中断

使用特权

评论回复
5
yewuyi| | 2008-3-29 08:33 | 只看该作者

简单示例

使用特权

评论回复
6
zgl7903| | 2008-3-29 13:31 | 只看该作者

GIE关闭之前最好先保存GIE的状态,用完之后恢复

不要轻易的GIE=1,否则容易造成不必要的问题

使用特权

评论回复
7
yewuyi| | 2008-3-29 15:04 | 只看该作者

LS,GIE=1有什么问题?

使用特权

评论回复
8
xieyuanbin| | 2008-3-29 21:12 | 只看该作者

GIE本来没开,这下你自己开了,不是找事嘛

有很多时候并不需要开GIE

使用特权

评论回复
9
qianlong30|  楼主 | 2008-3-29 21:29 | 只看该作者

我的主机接收数据是不定时的.

主机随即都处于接收状态.所以我的总中断和接收中断一直打开,我不想关闭接收中断.
如果我不关总中断和接收中断,那么写E2PROM会出现什么情况?


使用特权

评论回复
10
lifengtao| | 2008-3-29 22:11 | 只看该作者

我说两句~呵呵

我刚看了看书,在写的时候确实要关闭中断(全局),但读的时候不用关。
其实你的顾虑有些多了,书上说写EE最长也就8us,PIC的接收模块能一次接2个字节呢,足够你写一个数了。你就放心的写吧。
还有不要用877A了,用887吧,便宜~~呵呵o(∩_∩)o...

使用特权

评论回复
11
xieyuanbin| | 2008-3-30 09:22 | 只看该作者

楼上大意不错.

写EE的整个过程大概在5mS左右,但在写EE的操作中,需要关闭中断的过程也就几个微妙,就是写0X55和0XAA到EECON2,之后启动写操作那一段,串口此时最多传送一位,所以不会错过你的串口中断.
另外877A便宜一些,楼上说反了.

使用特权

评论回复
12
yewuyi| | 2008-3-30 14:57 | 只看该作者

我还以为GIE=1有什么问题呢,原来是~~

呵呵,系统调度器的定时中断必须是始终打开的,所以,对于我来说,GIE=0在写EE的时候短暂关掉后必须马上打开,否则倒真有问题了~~


呵呵,如果不是为了写EEPROM,在发生中断之外,GIE永远都是等于1的~~

使用特权

评论回复
13
neaphy| | 2008-4-1 20:03 | 只看该作者

我没关哦

我一般都不关的
写完了读,比较一下,不对再写,如此循环
没发现啥问题,中断很频繁

使用特权

评论回复
14
today_lucky| | 2012-3-16 14:53 | 只看该作者
Mark!

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

150

主题

351

帖子

2

粉丝