Цитата(IgorKossak @ Jul 21 2006, 12:30)

Судя по всему, никто из отвечавших здесь не заглянул
сюда.
Уже заглянул

. Действительно нечто похожее уже обсуждали и в прикрепленном файле грабли были убраны.
Цитата
Что касается компилятора, то он и не должен строить предположения насчёт прерываний.
Для него EEPROM и система прерываний - две разные сути. Если пользователю вдруг захотелось эти сути объединить в своей задаче (требованиях), то пусть он (пользователь) этим и займётся, причём тут компилятор.
Там суть в глобальных ресурсах - сохраняет-же он при входе в прерывание SREG, так чем EEAR и EEDR хуже?
Цитата(TomaT @ Jul 21 2006, 13:46)

Выдержка из атмеловского даташита:
Caution: An interrupt between step 5 and step 6 will make the write cycle fail, since the
EEPROM Master Write Enable will time-out. If an interrupt routine accessing the
EEPROM is interrupting another EEPROM access, the EEAR or EEDR Register will be
modified, causing the interrupted EEPROM access to fail. It is recommended to have
the Global Interrupt Flag cleared during all the steps to avoid these problems.Тем более IAR-овцы должны были на эту выдержку обратить внимание

.
Сообщение отредактировал ArtemKAD - Jul 21 2006, 20:30