读/写EEPROM的不明白
马老师想问一下,<ATmega8原理与应用手册> P187,中间有这样的一句话,我不明白是什么意
< 为了防止无意的EEPROM写入,应这样:
当读取EEPROM时,cpu将暂停4个时钟周期,然后再执行下一条指令.
当写EEPROM时,cpu将暂停2个时钟周期,然后再执行下一条指令.>
我想问的是:是不是由硬件自己暂停的啊,还是要由软件啊,,
如果是用软件, 那是不是用延时啊,,,
可是延时, cpu也有在运行啊??(并没有停止)
还有一个问题:EEPROM编程时间为个周期,典型值为8.5ms,,,这个延时是不是也是由硬件来做的,
软件还要不要做延时啊? 读取EEPROM时,cpu将暂停4个时钟周期,写EEPROM时,cpu将暂停2个时钟周期,是硬件完成的。AVR为了保证对EEPROM操作的可靠,会自动延时4/2个时钟读取后面指令。
写EEPROM是,CPU停2个时钟周期并不意味着数据已经写如到EEPROM中,只是表示CPU可以执行其他的指令了。如果你要连续写EEPROM,必须软件延时(或循环访问写完成标志),最好的方法是使用中断。 谢谢马老师!!! 马老师:
看了您上面的回复我更糊涂了,沈文写的《AVR单片机C语言开发入门指导》第240页倒数第四段写到:EEPROM数据的读取只需要一条指令且无需等待,CPU无需查询EERE位。……
和您的解释是否矛盾? cpu将暂停2个时钟周期,是硬件完成的
页:
[1]