FLProg
Вход на сайт
Логин:
Пароль:
Мы в VK
Поиск
Статистика


Яндекс.Метрика
Пятница, 09.12.2016, 16:29
Приветствую Вас Гость | RSS
Главная | Регистрация | Вход

Поиск по сайту


Форум
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
Страница 1 из 11
Модератор форума: support, Сергей 
Форум » Основной » Спросить у знатоков » Использование прерываний для записи в eeprom (При пропадании питания хочу использовать прерывание для сохр)
Использование прерываний для записи в eeprom
serpal66
Дата: Среда, 18.05.2016, 12:17 | Сообщение # 1
Рядовой
Группа: Проверенные
Сообщений: 12
Награды: 0
Репутация: 0
Статус: Offline
Хотел спросить у гуру, можно ли средствами программы реализовать запись переменной в память eeprom при  пропадании питания, используя прерывание. Например, отслеживая изменение напряжения с высокого на низкое на 2 пине в UNO. И при включении его читать значение этой переменной в блоке setup, а не в loop, куда пишутся коды всех плат в программе? Или это пока только ручная работа? Прошу извинить, если вопрос покажется наивным, с программой работаю недавно, да и с arduino тоже.

Сообщение отредактировал serpal66 - Среда, 18.05.2016, 12:20
 
vlad Дата: Среда, 18.05.2016, 12:31 | Сообщение # 2
Подполковник
Группа: Проверенные
Сообщений: 260
Награды: 0
Репутация: 5
Статус: Offline
может это не ответ на ваш вопрос, но так можно при падении напряжения автоматом записать данные в еепром. Взял для себя с этого форума(спасибо ему), не помню только как тема называлась. В теме писали что после отключения питания контроллер продолжает еще работать несколько минут.
Прикрепления: 2907547.png(10Kb)
 
serpal66 Дата: Среда, 18.05.2016, 12:58 | Сообщение # 3
Рядовой
Группа: Проверенные
Сообщений: 12
Награды: 0
Репутация: 0
Статус: Offline
Спасибо, это одно из технических решений увеличения времени питания контроллера при его пропадании (рассматриваю как один из вариантов) и отслеживания любого из входов. Но может будут варианты программные?
 
Олег Дата: Среда, 18.05.2016, 13:47 | Сообщение # 4
Гуру
Группа: Проверенные
Сообщений: 730
Награды: 20
Репутация: 15
Статус: Offline
Не понял, а какое программное решение вы хотите? Определили по входу что пропало питание,  значение переменной записалось в ЕЕПРОМ, при возобновлении питания данные из ЕЕПРОМ записываются в переменную.
 
serpal66 Дата: Среда, 18.05.2016, 14:49 | Сообщение # 5
Рядовой
Группа: Проверенные
Сообщений: 12
Награды: 0
Репутация: 0
Статус: Offline
Цитата Олег ()
Не понял, а какое программное решение вы хотите? Определили по входу что пропало питание, значение переменной записалось в ЕЕПРОМ, при возобновлении питания данные из ЕЕПРОМ записываются в переменную.
Имел ввиду, как это реализовать в FLProg используя пины (для UNO это 2 и 3), реагирующие на внешнее прерывание. При компилляции этого не происходит. Функционал видимо не предусматривает. На данный момент вариант пока только, используя схему с ионистором, отслеживать пин на пропадание питания и тогда писать в память. Также получается, что при включении питания, чтобы считать это значение из памяти и изменять его дальше надо чтобы функция считывания была в блоке setup, а в программе этого нет. То есть надо прописывать вручную. Просто я не программист. Поэтому и хотел узнать есть ли возможность максимально использовать FLProg.
 
vlad Дата: Среда, 18.05.2016, 14:57 | Сообщение # 6
Подполковник
Группа: Проверенные
Сообщений: 260
Награды: 0
Репутация: 5
Статус: Offline
вот одноразовое считывание из памяти при включении питания
Прикрепления: 8143453.png(5Kb)
 
serpal66 Дата: Среда, 18.05.2016, 16:59 | Сообщение # 7
Рядовой
Группа: Проверенные
Сообщений: 12
Награды: 0
Репутация: 0
Статус: Offline
Спасибо большое за блоки, но у меня меняющаяся переменная - потребление электроэнергии (сохраняется в память при потере питания) и ее надо считать из памяти один раз при появлении питания. В FLProg скомпилированный код платы входит в блок loop. Мне же надо прописать считывание из памяти в блоке setup. FLProg этого не делает? Я не нашел как это можно сделать кроме как в ручную. А я не кодер, поэтому застрял. С блоками FBD мне понятно. Наверное это надо написать в пожелания - реализовать внешние прерывания и сделать возможность прописывать  какие-то действия в блок setup.
 
vlad Дата: Среда, 18.05.2016, 17:36 | Сообщение # 8
Подполковник
Группа: Проверенные
Сообщений: 260
Награды: 0
Репутация: 5
Статус: Offline
в предложенной программе как раз переменная будет считана из памяти при включении( подаче питания) контролера один раз. Далее эта переменная меняется в соответствии с вашими пожеланиями и при пропадании питания по схеме выше значение переменной будет записано в память. и дальше все по кругу

Сообщение отредактировал vlad - Среда, 18.05.2016, 17:37
 
serpal66 Дата: Среда, 18.05.2016, 18:03 | Сообщение # 9
Рядовой
Группа: Проверенные
Сообщений: 12
Награды: 0
Репутация: 0
Статус: Offline
Цитата vlad ()
в предложенной программе как раз переменная будет считана из памяти при включении( подаче питания) контролера один раз. Далее эта переменная меняется в соответствии с вашими пожеланиями и при пропадании питания по схеме выше значение переменной будет записано в память. и дальше все по кругу
Может есть какая то хитрость? Я повторяю этот кусок, компилирую и код в блоке loop значит будет читаться постоянно или я уже совсем ... Не пойму каким одноразовым сигналом можно выполнить только одно считывание? Я к тому, что было бы гораздо удобнее иметь доступ из программы к блоку setup и записать туда код считывания памяти, а потом уже loopить программу. Или я все-таки чего-то недопонял?
 
vlad Дата: Среда, 18.05.2016, 18:23 | Сообщение # 10
Подполковник
Группа: Проверенные
Сообщений: 260
Награды: 0
Репутация: 5
Статус: Offline
я честно говоря в программировании минус ноль, поэтому только могу пояснить только по работе блоков. Блок Rtrig при подаче на него лог единицы выдает на выходе одиночный импульс который в свою очередь дает разрешение на изменение данных у переменной, и переменная в этот момент забирает данные из памяти. дальше все. пока не будет на входе этой переменной разрешающего сигнала она не будет получать данные из памяти. в другом месте вы меняете эту переменную так как вам надо и сколько хотите а при пропадании питания используя блок сравнения и схему с ионистором вы производите запись содержимого переменной в память, которое в свою очередь при появлении питания будет автоматом считано этой переменой.
 
serpal66 Дата: Среда, 18.05.2016, 18:32 | Сообщение # 11
Рядовой
Группа: Проверенные
Сообщений: 12
Награды: 0
Репутация: 0
Статус: Offline
Буду разбираться, возможно я не до конца разобрался с 1 на входе rtrig. Спасибо за ответы!
 
vlad Дата: Среда, 18.05.2016, 18:45 | Сообщение # 12
Подполковник
Группа: Проверенные
Сообщений: 260
Награды: 0
Репутация: 5
Статус: Offline
в справке на этот блок посмотрите
 
serpal66 Дата: Понедельник, 23.05.2016, 16:49 | Сообщение # 13
Рядовой
Группа: Проверенные
Сообщений: 12
Награды: 0
Репутация: 0
Статус: Offline
Цитата vlad ()
Взял для себя с этого форума(спасибо ему), не помню только как тема называлась.
Тема форума http://flprog.ru/forum/10-834-1 (если кому надо будет)
 
Форум » Основной » Спросить у знатоков » Использование прерываний для записи в eeprom (При пропадании питания хочу использовать прерывание для сохр)
Страница 1 из 11
Поиск:

FLProg © 2016
Яндекс.Метрика