Тип МК не важен, лишь бы ножек поменьше было (габариты играют роль)
Задача - сформировать задержку Х мс по изменению состояния входа с 1 на 0 и выдать на выходе MK короткий импульс логического 0
Х должно программироваться с 0,1 сек до 1 сек с шагом 0,1 сек
Вообщем как я представляю алгоритм работы:
К МК подключены 2 кнопки - "Прог" и "Пуск"
Также подключены 2 светодиода - Красный и Зеленый
Имеется 1 вход (на нем постоянно присутствует лог 1) и 1 выход (выход подключен к + питания подтягивающим резистором МК) на нем тоже лог 1.
Работа программы разбита на 3 этапа:
Первый Этап - ИНДИКАЦИЯ
1. Красный индикатор потушен
2. Зеленый индикатор мигает столько раз, сколько мы запрограммировали значение Х (тоесть если задержка 0,5 сек то мигает 5 раз) - 1 секунда горит 1 секунда не горит
3. Зеленый индикатор потушен 5 секунд.
4. Возврат к п. 1
В этом цикле постоянно проверяем нажатие кнопок Прог и Старт.
Не проверяем состояние входа.
Если нажата Прог, переходим к следующему этапу:
Второй Этап - ПРОГРАММИРОВАНИЕ
1. Красный индикатор так и потушен остается.
2. Загорается зеленый непрерывно (готовность принять нажатие )
3. Нажимаем и отпускаем кнопку Прог столько раз, сколько нужно
задержки ( например 0,6 сек нужно 6 нажатий)
4. Если нажатия прекратились более 3 сек МК считает себя запрограммированым и возвращается к п 1 ИНДИКАЦИЯ
В этой части не проверяем нажатие другой клавиши и состояние входа.
Если нажата клавиша Старт
Третий Этап - ФОРМИРУЕМ ЗАДЕРЖКУ
1. Тушим зеленый индикатор
2. Зажигаем непрерывно красный индикатор
3. Начинаем проверять состояние входа МК с 1 на 0
4. Если 0 увидели то:
4.1 Делаем задержку 0,5 сек статическую (она не меняется)
4.2 Делаем задержку запрограммированую Х
4.3 На выходе МК делаем лог 0 на 100 мс (это время спорное,
нужно его минимизировать это минимальное время клика
левой кнопки мыши, чтобы его успел засечь контроллер мыши)
4.4 Тушим красный индикатор и возвращаемся на п 1 ИНДИКАЦИЯ
5. Если на входе 0 нет, то к п 3 этого этапа.
В этом цикле не проверяем нажатие Прог.
Вот такой алгоритм
Думаю тут использовать внутренный генератор МК, чтобы как можно меньше было деталей.
Ребята! Помогите пожалуйста!


