tarzar 发表于 2005-6-2 14:29:49

读/写EEPROM的不明白

马老师想问一下,<ATmega8原理与应用手册> P187,



中间有这样的一句话,我不明白是什么意

< 为了防止无意的EEPROM写入,应这样:

当读取EEPROM时,cpu将暂停4个时钟周期,然后再执行下一条指令.

当写EEPROM时,cpu将暂停2个时钟周期,然后再执行下一条指令.>



我想问的是:是不是由硬件自己暂停的啊,还是要由软件啊,,

         如果是用软件, 那是不是用延时啊,,,

         可是延时, cpu也有在运行啊??(并没有停止)



还有一个问题:EEPROM编程时间为个周期,典型值为8.5ms,,,这个延时是不是也是由硬件来做的,



             软件还要不要做延时啊?

machao 发表于 2005-6-13 13:33:43

读取EEPROM时,cpu将暂停4个时钟周期,写EEPROM时,cpu将暂停2个时钟周期,是硬件完成的。AVR为了保证对EEPROM操作的可靠,会自动延时4/2个时钟读取后面指令。



写EEPROM是,CPU停2个时钟周期并不意味着数据已经写如到EEPROM中,只是表示CPU可以执行其他的指令了。如果你要连续写EEPROM,必须软件延时(或循环访问写完成标志),最好的方法是使用中断。

tarzar 发表于 2005-6-17 15:10:54

谢谢马老师!!!

smile.wxp 发表于 2005-8-20 15:40:26

马老师:

    看了您上面的回复我更糊涂了,沈文写的《AVR单片机C语言开发入门指导》第240页倒数第四段写到:EEPROM数据的读取只需要一条指令且无需等待,CPU无需查询EERE位。……

和您的解释是否矛盾?

tarzar 发表于 2005-8-22 09:07:28

cpu将暂停2个时钟周期,是硬件完成的
页: [1]
查看完整版本: 读/写EEPROM的不明白