nvz писал(а):...Проверил новый HEX, ситуация та же: таймера не нашёл.....
Не там искал, или я его не туда спрятал. Я только время зачем-то разделил на два (во вложении исправил), а так все работает. Запускается таймер при замыкании KEY_2, а KEY_1 при этом разомкнут, а работает если при замкнутом KEY_2 замкнуть KEY_1.
Сейчас буду разбираться с рычагами... Видно не так понял, что нажато, что замкнуто, где положение 1, где нолик... А теперь еще разобраться "если был перевод со 2 положения в 0"...
Soir писал(а): Запускается таймер при замыкании KEY_2, а KEY_1 при этом разомкнут, а работает если при замкнутом KEY_2 замкнуть KEY_1.
Таймер запускается после размыкания KEY_2 (KEY_1 тоже разомкнут), а работает при замыкании KEY_1 после паузы. Порядок работы: KEY_2 замкнут (таймер обнуляется) - KEY_1 и KEY_2 разомкнуты (таймер запускается) - KEY_1 замкнут (таймер работает) - KEY_2 замкнут или оба входа разомкнуты (таймер обнуляется).
Недоработки:
1. при переходе с KEY_2 на KEY_1 на выходе МК должны быть импульсы с предустановленной выдержкой.
2. при таком переключателе невозможно проверить блокировку KEY_2 при замкнутом KEY_1.
3. хотелось бы предустанавливать выдержку с помощью кнопки и светодиода.
Не очень понял. Давай лучше по аналогии с рычагами: рычаг в 0 - оба входа разомкнуты, рычаг в 1 положении (прерывистый режим) - замкнут KEY_1, рычаг во 2 положении (непрерывный режим) - замкнут KEY_2.
Сперва включается в непрерывный режим (KEY_2 замкнут) - стекло очищается, потом рычаг в 0 (KEY_1 и KEY_2 разомкнуты) - таймер считает, потом рычаг в прерывистый режим (KEY_1 замыкается) - импульсы с посчитанным временем.
Если после непрерывного режима переключить сразу в прерывистый - таймер не запускается, идут импульсы с предустановленным временем.
Активный сигнал на входах МК - нолик, при появлении нолика на Вх.2 (KEY_2 замкнут) происходит обнуление таймера. При появлении на Вх.2 единички через 0,5 сек определяется есть ли нолик на Вх.1: если есть - импульсы предустановленные, если единичка - запуск таймера, который считает до появления нолика на Вх.1 (импульсы с временем таймера). Если нолик на Вх.1 не появится в течении 100 сек. - таймер обнуляется и ждёт появления нолика на Вх.2 для последующего запуска...
nvz писал(а):Не очень понял. Давай лучше по аналогии с рычагами...
Да и я про это же. Мне кажется мы смотрим на разные схемы и говорим о разных прошивках.
В моей последней схеме KEY_1 и 2 уже нет. Там есть переключатель на три положения - 0, 1, 2 в соответствии с описанием. Чтобы не путаться, давай забудем про KEY_1, KEY_2, замыкается, прерывистый режим, стекло очищается и т.д. Из терминов оставим только положение 0,1,2.
nvz писал(а):рычаг в 0 - оба входа разомкнуты, рычаг в 1 положении (прерывистый режим) - замкнут KEY_1, рычаг во 2 положении (непрерывный режим) - замкнут KEY_2.
Сперва включается в непрерывный режим (KEY_2 замкнут) - стекло очищается, потом рычаг в 0 (KEY_1 и KEY_2 разомкнуты) - таймер считает, потом рычаг в прерывистый режим (KEY_1 замыкается) - импульсы с посчитанным временем.
Если после непрерывного режима переключить сразу в прерывистый - таймер не запускается, идут импульсы с предустановленным временем.
Так и делал. Или работает не так?
nvz писал(а):При появлении на Вх.2 единички через 0,5 сек определяется есть ли нолик на Вх.1: если есть - импульсы предустановленные
Вот это не сделал. Там пока 5 сек. То есть, если при преходе из положения 2 в положение 0 задержаться на 5 сек в положении 1, то запустится режим 5 сек. Если пройти дальше в положение 0 запускается счетчик, при переводе снова в 1 работает по этому счетчику. После возврата в 0 и повторного включения в 1 - по умолчанию - 5 сек. Как-то так. Забыл проект дома, по памяти может и не все так, дописывал засыпая.
Soir писал(а):...если при преходе из положения 2 в положение 0 задержаться на 5 сек в положении 1, то запустится режим 5 сек.
Вот этого я не знал... А так вроде всё штатно, обязательно необходима блокировка Вх.2 при активном Вх.1 из-за конструктивных особенностей схемы. Неплохо бы таймер заставить считать до десятых долей секунд... ну и конечно предустановка.
nvz писал(а):...обязательно необходима блокировка Вх.2 при активном Вх.1 из-за конструктивных особенностей схемы.
В чем заключается блокировка? Какие конструктивные особенности? Если это переключатель, то он не может одновременно быть в нескольких положениях? Давай подробнее.
nvz писал(а):Неплохо бы таймер заставить считать до десятых долей секунд... ну и конечно предустановка.
Десятые доли..? Мы точно об автомобильных дворниках говорим?
Про предустановку тоже подробнее, что устанавливается, каким образом, нужна ли запись в EEPROM...
Во время таймированных импульсов в 1 положении, эти импульсы будут попадать и на Вх.2, надо чтобы в это время Вх.2 их не видел, т.е. этот вход необходимо блокировать.
С десятыми долями я погорячился.
В настоящее время в конструкции предустановка 5 секунд. Неплохо бы её менять. Можно добавить кнопку и светодиод. При нажатии кнопки светодид вспыхивает каждую секунду c 1 до 10, после нужного количества кнопка отпускается и кол-во секунд записывается в EEPROM.
nvz писал(а):т.е. этот вход необходимо блокировать.... В настоящее время в конструкции предустановка 5 секунд. Неплохо бы её менять. Можно добавить кнопку и светодиод. При нажатии кнопки светодид вспыхивает каждую секунду c 1 до 10, после нужного количества кнопка отпускается и кол-во секунд записывается в EEPROM.
Проверяй что получилось. Старался учесть все, но не факт.
Проверил, есть недоработка: Предустановка 5 сек., при первом переключении из 2 в 1 выдержка перед взмахом меньше 5 секунд, потом снова в 2, оттуда в 1 и всё, светодиод молчит как партизан на допросе.
Блокировка работает: дорисовал кнопку, проверил.
nvz писал(а):Проверил, есть недоработка: Предустановка 5 сек., при первом переключении из 2 в 1 выдержка перед взмахом меньше 5 секунд, потом снова в 2, оттуда в 1 и всё, светодиод молчит как партизан на допросе.
Ситуации, не оговоренные в ТЗ, я прописывал на свое усмотрение. Предполагалось режим установки через 0. То есть, если побывали в положении 2, то надо в 1, а затем в 0 для возврата в первоначальное состояние. Дергание 1-2-1 не предусматривалось.
Исправил. Проверяй дальше.
Soir писал(а):..если при преходе из положения 2 в положение 0 задержаться на 5 сек в положении 1, то запустится режим 5 сек.
А это откуда?
Мы же рассматриваем последний вариант, или будем подымать все где что не так было в предыдущих? Тем более, что я писал, что это "пока". Не надо вырывать значащие слова из цитат.
Извини, если нахамил. Ты даёшь ссылку на ТЗ, но там по другому предполагалось.. Да ладно..
Скорей всего завтра соберу и опробую, сегодня день не рабочий...
Собрал схему на печатке, начал пробовать - не пошло. Предустановка работает нормально, а вот таймер..... Имитировал замыкания входов вручную, то есть для запуска таймера просто убирал сигнал со 2 положения. Подумал что что-то, где-то, но потом смоделировал эту ситуацию в Протеусе - тоже таймер не запускается (см. рисунок)
Непонятно, какое отношение Вх.1 имеет к запуску таймера?
nvz писал(а):Может виноват и дребезг контактов. Сейчас платку готовлю для проверки на авто, сделаю - отпишу.
В прошивке отслеживается последовательность прохождения положений 0-1-2-1-0... Защита от дребезга присутствует. На твоей схеме все переключения идут через 0, поэтому все некорректно работает.