Перейти к блогу GetChip.net - блог        JilTE[1] - в разработке     Модификации устройств - модификации

 
Текущее время: 12 окт 2024, 20:29

Часовой пояс: UTC + 3 часа [ Летнее время ]



Начать новую тему Ответить на тему  [ Сообщений: 19 ]  На страницу 1, 2  След.
Автор Сообщение
 Заголовок сообщения: Mod#121 импульс на выходе
СообщениеДобавлено: 23 авг 2017, 13:51 
Не в сети

Зарегистрирован: 23 мар 2015, 22:31
Сообщения: 17
Подскажите, пожалуйста, как можно подправить исходник (Альтернативное обучение удержанием кнопки), чтобы на выходе PD4 получать импульс 100мс при нажатии на кнопки, которые управляют этим выходом.
Мое решение в приложении не рабочее. В макете при нажатии на любую кнопку - всегда импульс на выходе PD4.


Вложения:
45.png
45.png [ 7.26 КБ | Просмотров: 14373 ]
Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Mod#121 импульс на выходе
СообщениеДобавлено: 23 авг 2017, 14:55 
Не в сети
Аватара пользователя

Зарегистрирован: 29 май 2011, 17:59
Сообщения: 3769
Откуда: Россия
Во-первых, на скрине нет управление портом PD4, а есть PВ4. Во-вторых, в прерываниях не делают временных задержек. ;)

Чтобы сделать задержку, тебе необходимо создать дополнительную переменную для счётчика импульсов и дополнительный флаг в регистре флагов (r22 – регистр флагов). При установке лог 1 на необходимом порте одновременно «поднимаешь» флаг данного выхода. При поднятом флаге должен начать работать счётчик импульсов. В данной программе это удобнее реализовать в прерывании сторожевого таймера. Его период составляет 16 мс, что означает при шести импульсах счётчика задержка около 96 мс (16 * 6 = 96), а при семи импульсах счётчика задержка будет уже около 112 мс. В основном цикле ты проверяешь флаг порта или управляющий бит регистра порта, и если он поднят то проверяешь счётчик импульсов, как только счётчик станет больше или равно семи, то «отключаешь» порт, сбрасываешь флаг порта и обнуляешь переменную счётчика. Таким образом получаешь требуемый импульс задержки на требуемом выходе.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Mod#121 импульс на выходе
СообщениеДобавлено: 24 авг 2017, 17:02 
Не в сети

Зарегистрирован: 23 мар 2015, 22:31
Сообщения: 17


Вложения:
ss.png
ss.png [ 8.35 КБ | Просмотров: 14347 ]
Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Mod#121 импульс на выходе
СообщениеДобавлено: 24 авг 2017, 20:09 
Не в сети
Аватара пользователя

Зарегистрирован: 29 май 2011, 17:59
Сообщения: 3769
Откуда: Россия


Вложения:
1.png
1.png [ 21.88 КБ | Просмотров: 14342 ]
Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Mod#121 импульс на выходе
СообщениеДобавлено: 25 авг 2017, 12:36 
Не в сети

Зарегистрирован: 23 мар 2015, 22:31
Сообщения: 17
Получается, что я совершено не так понял...
Спасибо огромное!!!!


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Mod#121 импульс на выходе
СообщениеДобавлено: 25 авг 2017, 14:52 
Не в сети
Аватара пользователя

Зарегистрирован: 29 май 2011, 17:59
Сообщения: 3769
Откуда: Россия
В принципе за выходом можно и не наблюдать, а только лишь отслеживать переменную…
1a.png
1a.png [ 5.17 КБ | Просмотров: 14324 ]


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Mod#121 импульс на выходе
СообщениеДобавлено: 29 авг 2017, 12:53 
Не в сети

Зарегистрирован: 23 мар 2015, 22:31
Сообщения: 17
Оба варианта работают аналогично.
Сейчас так (по номеру кнопок):
1. Восстановить: A - импульс, Выключить: A - нет. B и С - каждый раз изменение состояния (если ранее были сохранены в EEPROM).
2. Перебор: A - импульс каждый раз, B и С - каждый раз изменение состояния.
3. Нагрузка A: A - импульс через раз (на включение).
4. Нагрузка B: A - импульс каждый раз, B - каждый раз изменение состояния.
5. Нагрузка C: A - импульс каждый раз, C - каждый раз изменение состояния.

Алгоритм можно подпилить в процедуре _Do_Act, но очень смущают паразитные импульсы на нагрузке А при нажатии кнопок 4 и 5 (включение/выключение нагрузок B и C).


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Mod#121 импульс на выходе
СообщениеДобавлено: 29 авг 2017, 13:20 
Не в сети
Аватара пользователя

Зарегистрирован: 29 май 2011, 17:59
Сообщения: 3769
Откуда: Россия


Вложения:
1b.png
1b.png [ 14.87 КБ | Просмотров: 14245 ]
Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Mod#121 импульс на выходе
СообщениеДобавлено: 30 авг 2017, 11:14 
Не в сети

Зарегистрирован: 23 мар 2015, 22:31
Сообщения: 17
Изменил, но поведение такое же, как описано выше.


Вложения:
ir_control_source_alt_learn_Impulse.rar [47.03 КБ]
Скачиваний: 710
Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Mod#121 импульс на выходе
СообщениеДобавлено: 30 авг 2017, 12:20 
Не в сети
Аватара пользователя

Зарегистрирован: 29 май 2011, 17:59
Сообщения: 3769
Откуда: Россия
Причина понятна, а значит решаема… но имеется несколько вопросов:
а) Есть ли необходимость в сохранении состояние нагрузок в EEPROM? Необходимо знать, что при каждом управлении нагрузками (кроме вскл./выкл. всё) производится запись в EEPROM. Но данная память имеет своё ограниченное количество записей/перезаписей (1 000 000).
б) При подаче команды «выключить всё», нужен ли сигнал на порт РВ4?
в) При переборе нагрузок как должно вести себя импульсный выход (РВ4)?

Вообще для понимания… чем управляет порт РВ4?


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 19 ]  На страницу 1, 2  След.

Часовой пояс: UTC + 3 часа [ Летнее время ]


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы можете начинать темы
Вы можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB