Показать сообщение отдельно
Старый 05.03.2018, 17:01   #7
Arsie
Сотрудник Segnetics
 
Аватара для Arsie
 
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 117
Благодарил(а): 15 раз(а)
Поблагодарили: 660 раз(а) в 604 сообщениях
По умолчанию Ответ: Энергонезависимая память

Цитата:
Сообщение от Roll4Repairs Посмотреть сообщение
Хорошо, тогда ещё 3 вопроса:
1). Можно ли отследить момент, когда начинает пропадать питание у контроллера? (можно было бы значительно уменьшить количество требуемых записей)
Нет. Но можно поставить дешёвый УПС за 3 тыс рублей и получить данную функциональность.



Цитата:
Сообщение от Roll4Repairs Посмотреть сообщение
2). Со страницами вы меня окончательно запутали


Т.е. если я в программе задействую, допустим, 4 блока EEPROM(integer) глубиной в 1, и в каждом буду хранить одну переменную(и регулярно её перезаписывать), то память будет израсходована в 4 раза быстрее ожидаемого? Т.к. все четыре переменных находятся в пределах одной страницы. ( 16 байт = 4*((2*1)+2); 256>16 )
Нет. Страницы при определённых условиях перемешиваются. За подробностями прошу в даташиты страничных еепромов.



Цитата:
Сообщение от Roll4Repairs Посмотреть сообщение
3). Соответственно, чтобы увеличить количество перезаписей одной и той же переменной типа REAL для SMH2010 в 10 раз мне нужно создать 10 блоков ARRAY(real) длиной 64 каждый (чтобы один блок занимал одну страницу). Соответственно в первый блок писать и считывать переменную по адресу 0, во второй по адресу 256, в третий по адресу 511, четвертый по адресу 766 и т.д.
В случае, если эта переменная булевая, то длина блоков ARRAY(bool) будет 256, а адреса записи/чтения переменных будут те же.
Я правильно понял?
В каждом блоке писать по нулевому адресу. Но это всё равно сложный способ вы выбрали. Проще 1 блок с единичной длиной + 1 блок с длиной 63. И так 10 пар.


__________________
Программа делает то что написал программист, а не то что он хотел.

Добро всегда побеждает зло. Кто победил - тот и добрый.
Arsie вне форума   Ответить с цитированием