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


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

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


Форум
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
Страница 1 из 11
Модератор форума: support, Сергей 
Форум » Баг - Трекер » Новые » Проблемма EEPROM (Программа на записывает переменую)
Проблемма EEPROM
21vano11
Дата: Среда, 30.09.2015, 12:22 | Сообщение # 1
Рядовой
Группа: Проверенные
Сообщений: 19
Награды: 0
Репутация: 1
Статус: Offline
Программа на записывает переменную (integer)
Прикрепления: _2.flp(547Kb)
 
Nik_Sm Дата: Среда, 30.09.2015, 16:21 | Сообщение # 2
Рядовой
Группа: Проверенные
Сообщений: 12
Награды: 1
Репутация: 0
Статус: Offline
У меня тоже не записывалась переменная, но только в новую EEPROM.  Оказалось, при компиляции, в тексте программы не указан adress=0.  Я загрузил в Arduino пример из компилятора: Файл - Образцы - EEPROM - eeprom_update, а потом перезаписал свою программу и EEPROM начала работать.
 
21vano11 Дата: Среда, 30.09.2015, 19:21 | Сообщение # 3
Рядовой
Группа: Проверенные
Сообщений: 19
Награды: 0
Репутация: 1
Статус: Offline
Цитата Nik_Sm ()
У меня тоже не записывалась переменная, но только в новую EEPROM.  Оказалось, при компиляции, в тексте программы не указан adress=0.  Я загрузил в Arduino пример из компилятора: Файл - Образцы - EEPROM - eeprom_update, а потом перезаписал свою программу и EEPROM начала работать.
Побывал  и так- не помогло
Вот тестовая программа работает , а моя нехочет

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

Прикрепления: 2112.flp(61Kb)
 
hallozin Дата: Четверг, 01.10.2015, 17:03 | Сообщение # 4
Рядовой
Группа: Проверенные
Сообщений: 26
Награды: 2
Репутация: 4
Статус: Offline
а вот так попробуйте
Прикрепления: 9760378.flp(68Kb)
 
DWD Дата: Суббота, 07.11.2015, 16:03 | Сообщение # 5
Подполковник
Группа: Проверенные
Сообщений: 279
Награды: 12
Репутация: 5
Статус: Offline
У меня похожая проблема...

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

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

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

collect2.exe: error: ld returned 5 exit status


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

Что я не так делаю?
Прикрепления: Migalka3.flp(503Kb)




Сообщение отредактировал DWD - Суббота, 07.11.2015, 16:06
 
rw6cm Дата: Суббота, 07.11.2015, 21:45 | Сообщение # 6
Генерал-майор
Группа: Проверенные
Сообщений: 478
Награды: 43
Репутация: 32
Статус: Offline
Цитата DWD ()
Так вот, без сохранения всё работает, как уже говорил. Но стоит нарисовать на схеме блок записи в EEPROM и программа даже не компилируется. Выдаёт сообщение об ошибке:

Не знаю почему у вас не компилируется, (возможно нагрузку не снимаете с 0,1, пинов) у меня компилит.
Но мне интересно, как вы собрались одной командой сразу сбрасывать счетчик, и тут же записывать в память?
что вы там ожидаете увидеть wink
Может попробовать развязать вкл и выкл на две клавиши? и все начнет работать...

В проекте выход 0 и 1 переместил на 11 и 13.
Прикрепления: Migalka4.flp(496Kb)


PC, E8400, 3.5Gb, Win7-32, ver.FLP(portable)
 
DWD Дата: Воскресенье, 08.11.2015, 00:55 | Сообщение # 7
Подполковник
Группа: Проверенные
Сообщений: 279
Награды: 12
Репутация: 5
Статус: Offline
Цитата rw6cm ()
Не знаю почему у вас не компилируется, (возможно нагрузку не снимаете с 0,1, пинов) у меня компилит.

Но отличие только чисто программное - отсутствие  или наличие блока записи в EEPROM. Однако если блока нет, то всё нормально, а поставишь - ошибка выскакивает.

При этом нагрузка не снимается в обоих случаях.

Цитата rw6cm ()
Но мне интересно, как вы собрались одной командой сразу сбрасывать счетчик, и тут же записывать в память?

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

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

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

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

Как же быть?

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

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




Сообщение отредактировал DWD - Воскресенье, 08.11.2015, 00:33
 
rw6cm Дата: Воскресенье, 08.11.2015, 03:00 | Сообщение # 8
Генерал-майор
Группа: Проверенные
Сообщений: 478
Награды: 43
Репутация: 32
Статус: Offline
Цитата DWD ()
будет ли Ваш вариант с константой отслеживать напряжение питания? Я что-то сомневаюсь...

Конечно нет. У меня шилд с кнопками на Унке стоит. Там кнопки как раз на 0 пине весят. Влом было менять)))
Вот и поставил константой высокий уровень. А вторую константу если обратили внимание поменял на инт., т.к. ловил уже грабли с разносортицей,
теперь стараюсь однотипные переменные к элементу подводить.
Цитата DWD ()
Так вот, при переходе в выключенное состояние запускается запись в EEPROM текущего состояния счётчика, а при включении - извлечение из памяти и запись в счётчик.

Дело в том что при откл./вкл. питания, которое я понял для вас критично, 0 на триггере запустит запись,
и в ячейку запишется 0, т.к. счетчику команда на уставку придет только после вкл кнопкой.
Следовательно отчет начнется с ноля. В моем варианте (далеко не идеальном) "Вкл" нужно "верх" а "выкл" "вниз" и все сохраниться.
Но если наоборот то...
В общем думаю мысль понятна, что еепром здесь не виновата smile


PC, E8400, 3.5Gb, Win7-32, ver.FLP(portable)
 
DWD Дата: Понедельник, 09.11.2015, 12:18 | Сообщение # 9
Подполковник
Группа: Проверенные
Сообщений: 279
Награды: 12
Репутация: 5
Статус: Offline
От ошибки при компиляции избавился, но всё равно не сохраняет.

А вот Ваш вариант рабоатет так, как Вы и говорили:
Цитата rw6cm ()
"Вкл" нужно "верх" а "выкл" "вниз" и все сохраниться.
Но если наоборот то...

Нужно подумать на досуге, почему и переделать так, что бы сохранялось от любой кнопки. smile




Сообщение отредактировал DWD - Понедельник, 09.11.2015, 12:19
 
DWD Дата: Вторник, 10.11.2015, 11:51 | Сообщение # 10
Подполковник
Группа: Проверенные
Сообщений: 279
Награды: 12
Репутация: 5
Статус: Offline
Ни чего не могу понять...
rw6cm, сравнивая Ваш вариант со своим, не могу найти разницу. Имеется в виду в сигналах и их временнных характеристиках. Что у Вас, что у меня процесы записи и чтения в(из) EEPROM одинаковые, но Ваш вариант сохраняет, а мой нет. :)

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

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

В аттаче переделанный вариант. Может подскажете что для оптимизации кода? smile
Прикрепления: 1728132.flp(511Kb)




Сообщение отредактировал DWD - Вторник, 10.11.2015, 11:54
 
rf80 Дата: Вторник, 05.01.2016, 21:41 | Сообщение # 11
Лейтенант
Группа: Проверенные
Сообщений: 66
Награды: 1
Репутация: 0
Статус: Offline
Подскажите что за ошибка выскакивает при выборе переменной из EEPROM
фото во вложении

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

Прикрепления: 2656345.png(264Kb)
 
faramir777 Дата: Пятница, 08.01.2016, 16:19 | Сообщение # 12
Сержант
Группа: Проверенные
Сообщений: 46
Награды: 5
Репутация: 5
Статус: Offline
Цитата rf80 ()
при нажатии на выбор переменной опять выскакивает окно


У меня тоже самое sad


E8400 4gb win10 64bit, pipo w4 win8 32bit
 
rf80 Дата: Пятница, 08.01.2016, 17:43 | Сообщение # 13
Лейтенант
Группа: Проверенные
Сообщений: 66
Награды: 1
Репутация: 0
Статус: Offline
faramir777, Добрый вечер я нашел решение проблемы.
ссылка на патч https://yadi.sk/d/BmQwP5MjmCcCT
скачай и скопируй в место где установлена программа с заменой.
После этого заработало и корректней стали прописываться входы появилась галочка дребезг контактов.

И по работе не сразу разобрался была задача подсчет импульсов и запись в EEPROM и чтение.
счетчик моточасов в общем сделал.
разрешение записи и чтения нужно разбить по времени тогда работает стабильно.
 
faramir777 Дата: Суббота, 09.01.2016, 13:49 | Сообщение # 14
Сержант
Группа: Проверенные
Сообщений: 46
Награды: 5
Репутация: 5
Статус: Offline
rf80, спасибо, теперь все работает!

E8400 4gb win10 64bit, pipo w4 win8 32bit
 
rf80 Дата: Суббота, 09.01.2016, 13:50 | Сообщение # 15
Лейтенант
Группа: Проверенные
Сообщений: 66
Награды: 1
Репутация: 0
Статус: Offline
Не за что сам только начал неделю назад разбираться
 
Форум » Баг - Трекер » Новые » Проблемма EEPROM (Программа на записывает переменую)
Страница 1 из 11
Поиск:

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