Страница 1 из 1

Проблемма EEPROM

Добавлено: 30.09.2015{, 12:22}
21vano11
Программа на записывает переменную (integer)

Проблемма EEPROM

Добавлено: 30.09.2015{, 16:21}
Nik_Sm
У меня тоже не записывалась переменная, но только в новую EEPROM.  Оказалось, при компиляции, в тексте программы не указан adress=0.  Я загрузил в Arduino пример из компилятора: Файл - Образцы - EEPROM - eeprom_update, а потом перезаписал свою программу и EEPROM начала работать.

Проблемма EEPROM

Добавлено: 30.09.2015{, 19:21}
21vano11
Nik_Sm писал(а):У меня тоже не записывалась переменная, но только в новую EEPROM.  Оказалось, при компиляции, в тексте программы не указан adress=0.  Я загрузил в Arduino пример из компилятора: Файл - Образцы - EEPROM - eeprom_update, а потом перезаписал свою программу и EEPROM начала работать.
Побывал  и так- не помогло
Вот тестовая программа работает , а моя нехочет

Добавлено (30.09.2015, 19:21)
---------------------------------------------
Если долго мучится что нибуть получится
Ардуина начала читать память после замены Р-тригера на одновибратор с импульсом 50мс(примерно). Начала работать с одной константой, со второй пака не хочет

Проблемма EEPROM

Добавлено: 01.10.2015{, 17:03}
hallozin
а вот так попробуйте

Проблемма EEPROM

Добавлено: 07.11.2015{, 16:03}
DWD
У меня похожая проблема...

Нарисована схемка, всё работает даже в железе (приаттачено).
Теперь хочу текущее значение счётчика сохранять в EEPROM при выключени, а при включении - извлекать сохранённое значение и записывать в счётчик, так как после выключения счётчик сбрасывается.

Так вот, без сохранения всё работает, как уже говорил. Но стоит нарисовать на схеме блок записи в EEPROM и программа даже не компилируется. Выдаёт сообщение об ошибке:

Arduino: 1.6.3 (Windows XP), Плата"Arduino Uno"

collect2.exe: error: ld returned 5 exit status


Ошибка компиляции.

Что я не так делаю?

Проблемма EEPROM

Добавлено: 07.11.2015{, 21:45}
rw6cm
DWD писал(а):Так вот, без сохранения всё работает, как уже говорил. Но стоит нарисовать на схеме блок записи в EEPROM и программа даже не компилируется. Выдаёт сообщение об ошибке:
Не знаю почему у вас не компилируется, (возможно нагрузку не снимаете с 0,1, пинов) у меня компилит.
Но мне интересно, как вы собрались одной командой сразу сбрасывать счетчик, и тут же записывать в память?
что вы там ожидаете увидеть Изображение
Может попробовать развязать вкл и выкл на две клавиши? и все начнет работать...

В проекте выход 0 и 1 переместил на 11 и 13.

Проблемма EEPROM

Добавлено: 08.11.2015{, 00:55}
DWD
rw6cm писал(а):Не знаю почему у вас не компилируется, (возможно нагрузку не снимаете с 0,1, пинов) у меня компилит.
Но отличие только чисто программное - отсутствие  или наличие блока записи в EEPROM. Однако если блока нет, то всё нормально, а поставишь - ошибка выскакивает.

При этом нагрузка не снимается в обоих случаях.
rw6cm писал(а):Но мне интересно, как вы собрались одной командой сразу сбрасывать счетчик, и тут же записывать в память?
Почему одной - двумя.
Кратковременное нажатие любой кнопки только переключает значение счётчика, а длинное (более 1 сек) управляет счётным триггером. Каждое длинное нажатие переводит его из одного состояния в другое (переменная Onn/Off) - включено или выключено.
Так вот, при переходе в выключенное состояние запускается запись в EEPROM текущего состояния счётчика, а при включении - извлечение из памяти и запись в счётчик.

Ваш вариант у меня компилируется без ошибок. Сравнив варианты между собой и попробовав изменять свою схему под Ваш вариант по одному изменению за раз получил следующее...

Я поставил компаратор, который сравнивает напряжение питания с константой 818 (соответствует, примерно, 4В). То есть, при пропадании напряжения питания, когда оно, уменьшаясь, достигнет 4В должен сработать компаратор и записать текущее значение счётчика в EEPROM.
В Вашем варианте вместо напряжения питания на первый вход компаратора подаётся константа 1023. Так вот, если на этот вход подать напряжение питания, то при компиляции генерируется ошибка. А если на этот вход выставить константу 1023, то ошибки нет.

То есть, ошибочное место схемы выявлено, только не понятна причина.
И будет ли Ваш вариант с константой отслеживать напряжение питания? Я что-то сомневаюсь...

Как же быть?

Добавлено (08.11.2015, 00:55)
---------------------------------------------
Вроде бы избавился от ошибки при компиляции, заменив константу на входе компаратора на переменную типа Integer.
Значение оставил прежнее - 818.

Правда проверить в железе смогу только в понедельник... Изображение

Проблемма EEPROM

Добавлено: 08.11.2015{, 03:00}
rw6cm
DWD писал(а):будет ли Ваш вариант с константой отслеживать напряжение питания? Я что-то сомневаюсь...
Конечно нет. У меня шилд с кнопками на Унке стоит. Там кнопки как раз на 0 пине весят. Влом было менять)))
Вот и поставил константой высокий уровень. А вторую константу если обратили внимание поменял на инт., т.к. ловил уже грабли с разносортицей,
теперь стараюсь однотипные переменные к элементу подводить.
DWD писал(а):Так вот, при переходе в выключенное состояние запускается запись в EEPROM текущего состояния счётчика, а при включении - извлечение из памяти и запись в счётчик.
Дело в том что при откл./вкл. питания, которое я понял для вас критично, 0 на триггере запустит запись,
и в ячейку запишется 0, т.к. счетчику команда на уставку придет только после вкл кнопкой.
Следовательно отчет начнется с ноля. В моем варианте (далеко не идеальном) "Вкл" нужно "верх" а "выкл" "вниз" и все сохраниться.
Но если наоборот то...
В общем думаю мысль понятна, что еепром здесь не виновата Изображение

Проблемма EEPROM

Добавлено: 09.11.2015{, 12:18}
DWD
От ошибки при компиляции избавился, но всё равно не сохраняет.

А вот Ваш вариант рабоатет так, как Вы и говорили:
rw6cm писал(а):"Вкл" нужно "верх" а "выкл" "вниз" и все сохраниться.
Но если наоборот то...
Нужно подумать на досуге, почему и переделать так, что бы сохранялось от любой кнопки. Изображение

Проблемма EEPROM

Добавлено: 10.11.2015{, 11:51}
DWD
Ни чего не могу понять...
rw6cm, сравнивая Ваш вариант со своим, не могу найти разницу. Имеется в виду в сигналах и их временнных характеристиках. Что у Вас, что у меня процесы записи и чтения в(из) EEPROM одинаковые, но Ваш вариант сохраняет, а мой нет. :)

Взяв за основу Ваш вариант, переделал под свою логику: короткое нажатие кнопок либо увеличивает, либо уменьшает частоту, а длинное нажатие любой кнопки либо выключает, либо включает устройство в триггерном режиме. При этом при выключении происходит запись текущего состояния счётчика в EEPROM, а при включении схема сама извлекает значение из  EEPROM и загружает его в счётчик.

Вроде бы всё работает. В любых комбинациях.

В аттаче переделанный вариант. Может подскажете что для оптимизации кода? Изображение

Проблемма EEPROM

Добавлено: 05.01.2016{, 21:41}
rf80
Подскажите что за ошибка выскакивает при выборе переменной из EEPROM
фото во вложении

Добавлено (05.01.2016, 21:41)
---------------------------------------------
Если вставлять блок из другого примера он вставляется и даже как то работает но не понятно почему то у меня записывается число семь которое даже после перепрошивки не меняется. И при нажатии на выбор переменной опять выскакивает это окно

Проблемма EEPROM

Добавлено: 08.01.2016{, 16:19}
faramir777
rf80 писал(а):при нажатии на выбор переменной опять выскакивает окно
У меня тоже самое Изображение

Проблемма EEPROM

Добавлено: 08.01.2016{, 17:43}
rf80
faramir777, Добрый вечер я нашел решение проблемы.
ссылка на патч https://yadi.sk/d/BmQwP5MjmCcCT
скачай и скопируй в место где установлена программа с заменой.
После этого заработало и корректней стали прописываться входы появилась галочка дребезг контактов.

И по работе не сразу разобрался была задача подсчет импульсов и запись в EEPROM и чтение.
счетчик моточасов в общем сделал.
разрешение записи и чтения нужно разбить по времени тогда работает стабильно.

Проблемма EEPROM

Добавлено: 09.01.2016{, 13:49}
faramir777
rf80, спасибо, теперь все работает!

Проблемма EEPROM

Добавлено: 09.01.2016{, 13:50}
rf80
Не за что сам только начал неделю назад разбираться