Использование прерываний для записи в eeprom

Использование внешней и внутренней EEPROM, а так-же SD card
Ответить
serpal66
Рядовой
Сообщения: 12
Зарегистрирован: 16.03.2016{, 13:13}
Репутация: 0

Использование прерываний для записи в eeprom

#1

Сообщение serpal66 » 18.05.2016{, 12:17}

Хотел спросить у гуру, можно ли средствами программы реализовать запись переменной в память eeprom при  пропадании питания, используя прерывание. Например, отслеживая изменение напряжения с высокого на низкое на 2 пине в UNO. И при включении его читать значение этой переменной в блоке setup, а не в loop, куда пишутся коды всех плат в программе? Или это пока только ручная работа? Прошу извинить, если вопрос покажется наивным, с программой работаю недавно, да и с arduino тоже.
Последний раз редактировалось serpal66 18.05.2016{, 12:20}, всего редактировалось 1 раз.

vlad
Лейтенант
Сообщения: 396
Зарегистрирован: 11.09.2015{, 11:50}
Репутация: 0
Откуда: Казань

Использование прерываний для записи в eeprom

#2

Сообщение vlad » 18.05.2016{, 12:31}

2907547.png
может это не ответ на ваш вопрос, но так можно при падении напряжения автоматом записать данные в еепром. Взял для себя с этого форума(спасибо ему), не помню только как тема называлась. В теме писали что после отключения питания контроллер продолжает еще работать несколько минут.

serpal66
Рядовой
Сообщения: 12
Зарегистрирован: 16.03.2016{, 13:13}
Репутация: 0

Использование прерываний для записи в eeprom

#3

Сообщение serpal66 » 18.05.2016{, 12:58}

Спасибо, это одно из технических решений увеличения времени питания контроллера при его пропадании (рассматриваю как один из вариантов) и отслеживания любого из входов. Но может будут варианты программные?

Аватара пользователя
Олег
Полковник
Сообщения: 1532
Зарегистрирован: 13.10.2015{, 16:47}
Репутация: 63
Контактная информация:

Использование прерываний для записи в eeprom

#4

Сообщение Олег » 18.05.2016{, 13:47}

Не понял, а какое программное решение вы хотите? Определили по входу что пропало питание,  значение переменной записалось в ЕЕПРОМ, при возобновлении питания данные из ЕЕПРОМ записываются в переменную.

serpal66
Рядовой
Сообщения: 12
Зарегистрирован: 16.03.2016{, 13:13}
Репутация: 0

Использование прерываний для записи в eeprom

#5

Сообщение serpal66 » 18.05.2016{, 14:49}

Олег писал(а):Не понял, а какое программное решение вы хотите? Определили по входу что пропало питание, значение переменной записалось в ЕЕПРОМ, при возобновлении питания данные из ЕЕПРОМ записываются в переменную.
Имел ввиду, как это реализовать в FLProg используя пины (для UNO это 2 и 3), реагирующие на внешнее прерывание. При компилляции этого не происходит. Функционал видимо не предусматривает. На данный момент вариант пока только, используя схему с ионистором, отслеживать пин на пропадание питания и тогда писать в память. Также получается, что при включении питания, чтобы считать это значение из памяти и изменять его дальше надо чтобы функция считывания была в блоке setup, а в программе этого нет. То есть надо прописывать вручную. Просто я не программист. Поэтому и хотел узнать есть ли возможность максимально использовать FLProg.

vlad
Лейтенант
Сообщения: 396
Зарегистрирован: 11.09.2015{, 11:50}
Репутация: 0
Откуда: Казань

Использование прерываний для записи в eeprom

#6

Сообщение vlad » 18.05.2016{, 14:57}

вот одноразовое считывание из памяти при включении питания
Вложения
8143453.png

serpal66
Рядовой
Сообщения: 12
Зарегистрирован: 16.03.2016{, 13:13}
Репутация: 0

Использование прерываний для записи в eeprom

#7

Сообщение serpal66 » 18.05.2016{, 16:59}

Спасибо большое за блоки, но у меня меняющаяся переменная - потребление электроэнергии (сохраняется в память при потере питания) и ее надо считать из памяти один раз при появлении питания. В FLProg скомпилированный код платы входит в блок loop. Мне же надо прописать считывание из памяти в блоке setup. FLProg этого не делает? Я не нашел как это можно сделать кроме как в ручную. А я не кодер, поэтому застрял. С блоками FBD мне понятно. Наверное это надо написать в пожелания - реализовать внешние прерывания и сделать возможность прописывать  какие-то действия в блок setup.

vlad
Лейтенант
Сообщения: 396
Зарегистрирован: 11.09.2015{, 11:50}
Репутация: 0
Откуда: Казань

Использование прерываний для записи в eeprom

#8

Сообщение vlad » 18.05.2016{, 17:36}

в предложенной программе как раз переменная будет считана из памяти при включении( подаче питания) контролера один раз. Далее эта переменная меняется в соответствии с вашими пожеланиями и при пропадании питания по схеме выше значение переменной будет записано в память. и дальше все по кругу
Последний раз редактировалось vlad 18.05.2016{, 17:37}, всего редактировалось 1 раз.

serpal66
Рядовой
Сообщения: 12
Зарегистрирован: 16.03.2016{, 13:13}
Репутация: 0

Использование прерываний для записи в eeprom

#9

Сообщение serpal66 » 18.05.2016{, 18:03}

vlad писал(а):в предложенной программе как раз переменная будет считана из памяти при включении( подаче питания) контролера один раз. Далее эта переменная меняется в соответствии с вашими пожеланиями и при пропадании питания по схеме выше значение переменной будет записано в память. и дальше все по кругу
Может есть какая то хитрость? Я повторяю этот кусок, компилирую и код в блоке loop значит будет читаться постоянно или я уже совсем ... Не пойму каким одноразовым сигналом можно выполнить только одно считывание? Я к тому, что было бы гораздо удобнее иметь доступ из программы к блоку setup и записать туда код считывания памяти, а потом уже loopить программу. Или я все-таки чего-то недопонял?

vlad
Лейтенант
Сообщения: 396
Зарегистрирован: 11.09.2015{, 11:50}
Репутация: 0
Откуда: Казань

Использование прерываний для записи в eeprom

#10

Сообщение vlad » 18.05.2016{, 18:23}

я честно говоря в программировании минус ноль, поэтому только могу пояснить только по работе блоков. Блок Rtrig при подаче на него лог единицы выдает на выходе одиночный импульс который в свою очередь дает разрешение на изменение данных у переменной, и переменная в этот момент забирает данные из памяти. дальше все. пока не будет на входе этой переменной разрешающего сигнала она не будет получать данные из памяти. в другом месте вы меняете эту переменную так как вам надо и сколько хотите а при пропадании питания используя блок сравнения и схему с ионистором вы производите запись содержимого переменной в память, которое в свою очередь при появлении питания будет автоматом считано этой переменой.

serpal66
Рядовой
Сообщения: 12
Зарегистрирован: 16.03.2016{, 13:13}
Репутация: 0

Использование прерываний для записи в eeprom

#11

Сообщение serpal66 » 18.05.2016{, 18:32}

Буду разбираться, возможно я не до конца разобрался с 1 на входе rtrig. Спасибо за ответы!

vlad
Лейтенант
Сообщения: 396
Зарегистрирован: 11.09.2015{, 11:50}
Репутация: 0
Откуда: Казань

Использование прерываний для записи в eeprom

#12

Сообщение vlad » 18.05.2016{, 18:45}

в справке на этот блок посмотрите

serpal66
Рядовой
Сообщения: 12
Зарегистрирован: 16.03.2016{, 13:13}
Репутация: 0

Использование прерываний для записи в eeprom

#13

Сообщение serpal66 » 23.05.2016{, 16:49}

vlad писал(а):Взял для себя с этого форума(спасибо ему), не помню только как тема называлась.
Тема форума http://forum.flprogwiki.ru/viewtopic.php?f=10&t=834 (если кому надо будет)

Ответить

Вернуться в «Устройства памяти»