Ale3000 (02.10.2017 09:58 - 10:05, просмотров: 360) ответил йцукен на UPD. Просьба к тем, у кого в руках исходники иаровских библиотек: выложите функцию __x_ML_SRAM_EEPROM_24_16.
Используя оператор "=" для EEPROM вы теряете много возможностей. 1. Кол-во циклов записи EEPROM всего 100 тысяч. Их надо беречь.
Перед записью сравнивать данные в EEPROM и RAM.
Если данные равны, то не записывать.
Если нет битов=1 пишущихся поверх битов=0, то стирание страницы не производить.
2. При программировании EEPROM потребление увеличивается на 8 мА.
Во время ожидания завершения записи можно ввести контроллер в спячку, понизить тактовую частоту.
3. Время стирания + записи EEPROM 4+4 мс.
За один цикл записи можно записать сразу всю страницу EEPROM, потратив на это 8 мс.
Не нужно писать 32 раза по одному байту и тратить на это 8*32=256 мс.
4. Во время записи в EEPROM может пропасть питание, а вы к этому времени можете успеть передать передать другому устройству, что данные уже записаны, хотя данные на самом деле не были записаны.
Поэтому ожидание окончания записи надо делать ПОСЛЕ записи, а не ПЕРЕД, как это делает IAR.