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

Тип переменной

Добавлено: 10 фев 2018, 13:53
JORA555
Уважаемые форумчане.
Написал программу с ИК управлением. Коды нажатия клавиш меняются, поэтому сделано сравнение команды ИК приемника и записанной команды из EEProm. Но одна из функций работает непонятно.

Вариант №1:
ИК приемник выдает сигнал типа "Long integer", код записанной команды "Long integer". Сравниваю компаратором на равенство. Работает корректно при коротком нажатии, но при удержании кнопки пульта, выход компаратора сбрасывается в "0" через 1-2 секунды.

Вариант №2:
Типы сигналов те же, только перед сравнением конвертирую сигналы в строку и сравниваю уже строки. При удержании кнопки сколько держишь кнопку, столько выход блока "сравнение строк" держится в состоянии "1".

В первом варианте скетч занимает на 12% меньше памяти контроллера, которая и так уже на пределе. Но долгое нажатие не отрабатывается.
Подскажите, в чем может быть причина.

Тип переменной

Добавлено: 10 фев 2018, 14:17
Sancho
О пультах
А лучше оба варианта в студию - все экстрасенсы уволились

Тип переменной

Добавлено: 10 фев 2018, 14:23
JORA555
Если дело в пульте, то почему при сравнении строк удержание кнопки отрабатывает корректно. Дело, как мне кажется, именно в алгоритме работы ардуино с переменными разных типов.
За статью спасибо, Ее бы пол года назад увидеть, многие бы вопросы отпали.

Тип переменной

Добавлено: 10 фев 2018, 14:26
Sancho
JORA555 писал(а): 10 фев 2018, 14:23о почему при сравнении строк удержание кнопки отрабатывает корректно.
На этот вопрос я не могу ответить ввиду отсутствия файлов.

Тип переменной

Добавлено: 10 фев 2018, 18:44
JORA555
Дико извиняюсь, Sancho. Ссылку посмотрел, а о выкладывании плат забыл.
Суть проблемы можете увидеть на плате №1. Увы, другие платы пришлось удалить из-за большого размера файла (не прикреплялся во вложение), но они на работу оставшейся части программы не влияют.
Заранее благодарен за помощь.