Помогите пожалуйста начинающему
Добавлено: Ср авг 19, 2009 16:07:40
Огромная просьба помогите написать программу для МК, очень сложно вникать в программирование, а задача не очень сложная (имхо)
Тип МК не важен, лишь бы ножек поменьше было (габариты играют роль)
Задача - сформировать задержку Х мс по изменению состояния входа с 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 этого этапа.
В этом цикле не проверяем нажатие Прог.
Вот такой алгоритм
Думаю тут использовать внутренный генератор МК, чтобы как можно меньше было деталей.
Ребята! Помогите пожалуйста!
Тип МК не важен, лишь бы ножек поменьше было (габариты играют роль)
Задача - сформировать задержку Х мс по изменению состояния входа с 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 этого этапа.
В этом цикле не проверяем нажатие Прог.
Вот такой алгоритм
Думаю тут использовать внутренный генератор МК, чтобы как можно меньше было деталей.
Ребята! Помогите пожалуйста!