реклама на сайте
подробности

 
 
> ограничение eeprom
стас
сообщение Jul 25 2011, 10:28
Сообщение #1





Группа: Участник
Сообщений: 13
Регистрация: 25-07-11
Пользователь №: 66 399



всем привет! какое-то время назад в силу нескольких обстоятельств решил постичь программирование pic-ов,но пока только просто читаю книжки и никогда ничего не программировал,
начал с Корабельникова, и пока особых неясностей нет, но возможно немного заглядывая вперёд, хочу задать несколько вопросов по EEPROM, просто именно об этом нигде не пишут а интересно так что даже засыпать стал плохо; насколько я понял циклов обращений к этой памяти хоть и вроде много но если это делать из программы, то этот ресурс очень быстро закончится, так как от начала до конца программа пробегает за какие-то микросекунды.Вот взять к примеру автосигнализацию, допустим мы установили какие-то новые настройки в режиме так называемого пользовательского программирования, я как понимаю именно эти настройки хранятся в EEPROM, поскольку энергонезависимы, но это значит в тексте программы присутствует постоянное обращение к этим значениям, почему же тогда EEPROM не выходит из строя?

Ещё Корабельников пишет что может сделать ограничение на количество включений контроллера, например - 3, я понимаю что он каким-то образом привязывается к событию включения, записывает в EEPROM - 3, а потом при каждом включении отнимается единица, а затем при нуле программа зацикливается навсегда и не продолжается, - и вот тут вопрос вот в чём: как так можно отнять единицу всего один раз если программа крутится по кругу постоянно(она же всегда будет отнимать)?-единственное что приходит мне в голову так это в конце программы вместо end ставить безусловный переход, например на 5-ю строчку программы, но разве так можно?

И ещё вопрос- можно ли программно ввести ограничение на работу контроллера на один год, а восстановить, например, вводом пароля, если да то на каких пиках так реально сделать и какова общая логика выполнени такой задачи?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Палыч
сообщение Jul 25 2011, 12:13
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 2 399
Регистрация: 10-05-06
Из: г. Новочеркасск
Пользователь №: 16 954



Цитата(стас @ Jul 25 2011, 14:28) *
циклов обращений к этой памяти хоть и вроде много но если это делать из программы, то этот ресурс очень быстро закончится
Чтение EEPROM ресурс не уменьшает. Ячейки деградируются при записи/стирании.

Цитата(стас @ Jul 25 2011, 14:28) *
как так можно отнять единицу всего один раз если программа крутится по кругу постоянно(она же всегда будет отнимать)?
Значение в EEPROM можно записать при программировании ("заливке" программы). При старте по включению питания (в самом начале программы) считываем ячейку, и, если значение равно нулю, то программу не выполняем ("крутимся" в бесконечном цикле), в противном случае: вычитаем единицу и записываем новое значение в EEPROM

Цитата(стас @ Jul 25 2011, 14:28) *
можно ли программно ввести ограничение на работу контроллера на один год, а восстановить, например, вводом пароля, если да то на каких пиках так реально сделать и какова общая логика выполнени такой задачи?
Можно, но устройство должно иметь собственный энергонезависимый календарь или получать текующую дату из некоего доверительного источника.

Go to the top of the page
 
+Quote Post
ILYAUL
сообщение Jul 25 2011, 12:56
Сообщение #3


Профессионал
*****

Группа: Свой
Сообщений: 1 940
Регистрация: 16-12-07
Из: Москва
Пользователь №: 33 339



Цитата(Палыч @ Jul 25 2011, 16:13) *
Можно, но устройство должно иметь собственный энергонезависимый календарь или получать текующую дату из некоего доверительного источника.

А может проще из 0x80520 = 525600 вычитать каждую минуту . Вот год и пролетит. 3 ячейки памяти в той же EEPROM, даже если питание "отрубят", то при любом вкл. пока не досчитает до 0 ( zero) ничего не произойдёт. Погрешность +1 минут.


--------------------
Закон Мерфи:

Чем тщательнее составлен проект, тем больше неразбериха, если что-то пошло не так
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 9th August 2025 - 04:48
Рейтинг@Mail.ru


Страница сгенерированна за 0.02258 секунд с 7
ELECTRONIX ©2004-2016