Показать сообщение отдельно
Старый 02.06.2018, 15:06   #2
ailcat
Senior Member
 
Аватара для ailcat
 
Регистрация: Oct 2010
Адрес: Москва
Сообщения: 403
Благодарил(а): 29 раз(а)
Поблагодарили: 2 раз(а) в 2 сообщениях
По умолчанию Ответ: Переменная экрана eeprom?

Много раз уже писано, но повторю:
1) писать часто во встроенную память - точно не стоит. Из-за ошибки в счетчике наработки (писали ежесекундно вместо раз в минуту) - 2G убили меньше чем за год (у пикселя с этим еще хуже, емнип).
2) в дополнительный модуль памяти FROM - без проблем, его ресурс по записям (в тиках) превосходит срок жизни самого контроллера. Чтобы любая запись была на модель памяти - надо в левом верхнем углу поляны поставить любой блок памяти, которым и занять всю внутреннюю память (подробности в хелпе).
ваш случай
3) SMArt всегда пишет во внутреннюю память, то есть её убивает как в п.1.
Решений здесь возможо два:
а) если это не основной экран пикселя (а тот, который только изредка вызывается оператором) - поставьте перед переменной SMArt D-регистр и записывайте его только когда экран активен;
б) если это основной экран (лично я считаю моветоном использовать функцию экрана настроек для мониторинга, ну да ладно) - то не остается ничего иного, как обновлять переменную реже. То есть перед переменной SMArt ставить все тот же D-регистр, но для записи используйте фильтр: входную величину подаёте на "длинный" (скажем, в минуту) spdelay, все выходы которого на элемент сравнения, который через OR записывает данные в регистр, и для учета сильных отклонений ставим MUX и компараторы: (например, если критично отклонение на 3% - и два элемента сравнения: выход регистра * 0,97 и выход регистра * 1,03). соответствующие выходы компараторов цепляем к тому же OR...
Но гораздо правильнее - все же перейти к варианту 3а.
ailcat вне форума   Ответить с цитированием