Использование прерываний для записи в eeprom
Использование прерываний для записи в eeprom
Хотел спросить у гуру, можно ли средствами программы реализовать запись переменной в память eeprom при пропадании питания, используя прерывание. Например, отслеживая изменение напряжения с высокого на низкое на 2 пине в UNO. И при включении его читать значение этой переменной в блоке setup, а не в loop, куда пишутся коды всех плат в программе? Или это пока только ручная работа? Прошу извинить, если вопрос покажется наивным, с программой работаю недавно, да и с arduino тоже.
Последний раз редактировалось serpal66 18 май 2016, 12:20, всего редактировалось 1 раз.
Использование прерываний для записи в eeprom
может это не ответ на ваш вопрос, но так можно при падении напряжения автоматом записать данные в еепром. Взял для себя с этого форума(спасибо ему), не помню только как тема называлась. В теме писали что после отключения питания контроллер продолжает еще работать несколько минут.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Использование прерываний для записи в eeprom
Спасибо, это одно из технических решений увеличения времени питания контроллера при его пропадании (рассматриваю как один из вариантов) и отслеживания любого из входов. Но может будут варианты программные?
Использование прерываний для записи в eeprom
Не понял, а какое программное решение вы хотите? Определили по входу что пропало питание, значение переменной записалось в ЕЕПРОМ, при возобновлении питания данные из ЕЕПРОМ записываются в переменную.
Использование прерываний для записи в eeprom
Имел ввиду, как это реализовать в FLProg используя пины (для UNO это 2 и 3), реагирующие на внешнее прерывание. При компилляции этого не происходит. Функционал видимо не предусматривает. На данный момент вариант пока только, используя схему с ионистором, отслеживать пин на пропадание питания и тогда писать в память. Также получается, что при включении питания, чтобы считать это значение из памяти и изменять его дальше надо чтобы функция считывания была в блоке setup, а в программе этого нет. То есть надо прописывать вручную. Просто я не программист. Поэтому и хотел узнать есть ли возможность максимально использовать FLProg.Олег писал(а):Не понял, а какое программное решение вы хотите? Определили по входу что пропало питание, значение переменной записалось в ЕЕПРОМ, при возобновлении питания данные из ЕЕПРОМ записываются в переменную.
Использование прерываний для записи в eeprom
вот одноразовое считывание из памяти при включении питания
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Использование прерываний для записи в eeprom
Спасибо большое за блоки, но у меня меняющаяся переменная - потребление электроэнергии (сохраняется в память при потере питания) и ее надо считать из памяти один раз при появлении питания. В FLProg скомпилированный код платы входит в блок loop. Мне же надо прописать считывание из памяти в блоке setup. FLProg этого не делает? Я не нашел как это можно сделать кроме как в ручную. А я не кодер, поэтому застрял. С блоками FBD мне понятно. Наверное это надо написать в пожелания - реализовать внешние прерывания и сделать возможность прописывать какие-то действия в блок setup.
Использование прерываний для записи в eeprom
в предложенной программе как раз переменная будет считана из памяти при включении( подаче питания) контролера один раз. Далее эта переменная меняется в соответствии с вашими пожеланиями и при пропадании питания по схеме выше значение переменной будет записано в память. и дальше все по кругу
Последний раз редактировалось vlad 18 май 2016, 17:37, всего редактировалось 1 раз.
Использование прерываний для записи в eeprom
Может есть какая то хитрость? Я повторяю этот кусок, компилирую и код в блоке loop значит будет читаться постоянно или я уже совсем ... Не пойму каким одноразовым сигналом можно выполнить только одно считывание? Я к тому, что было бы гораздо удобнее иметь доступ из программы к блоку setup и записать туда код считывания памяти, а потом уже loopить программу. Или я все-таки чего-то недопонял?vlad писал(а):в предложенной программе как раз переменная будет считана из памяти при включении( подаче питания) контролера один раз. Далее эта переменная меняется в соответствии с вашими пожеланиями и при пропадании питания по схеме выше значение переменной будет записано в память. и дальше все по кругу
Использование прерываний для записи в eeprom
я честно говоря в программировании минус ноль, поэтому только могу пояснить только по работе блоков. Блок Rtrig при подаче на него лог единицы выдает на выходе одиночный импульс который в свою очередь дает разрешение на изменение данных у переменной, и переменная в этот момент забирает данные из памяти. дальше все. пока не будет на входе этой переменной разрешающего сигнала она не будет получать данные из памяти. в другом месте вы меняете эту переменную так как вам надо и сколько хотите а при пропадании питания используя блок сравнения и схему с ионистором вы производите запись содержимого переменной в память, которое в свою очередь при появлении питания будет автоматом считано этой переменой.
Использование прерываний для записи в eeprom
Буду разбираться, возможно я не до конца разобрался с 1 на входе rtrig. Спасибо за ответы!
Использование прерываний для записи в eeprom
Тема форума http://forum.flprogwiki.ru/viewtopic.php?f=10&t=834 (если кому надо будет)vlad писал(а):Взял для себя с этого форума(спасибо ему), не помню только как тема называлась.
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 4 гостя