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

Помогите пожалуйста начинающему

Добавлено: Ср авг 19, 2009 16:07:40
BlackCat
Огромная просьба помогите написать программу для МК, очень сложно вникать в программирование, а задача не очень сложная (имхо)

Тип МК не важен, лишь бы ножек поменьше было (габариты играют роль)

Задача - сформировать задержку Х мс по изменению состояния входа с 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 этого этапа.
В этом цикле не проверяем нажатие Прог.

Вот такой алгоритм
Думаю тут использовать внутренный генератор МК, чтобы как можно меньше было деталей.

Ребята! Помогите пожалуйста!

Добавлено: Ср авг 19, 2009 16:18:41
Pooher
А не проще сделать на таймере (555) + логика(раз уж с программированием проблемы). Размеры совсем не большие получатся.

Добавлено: Ср авг 19, 2009 16:20:52
BlackCat
Если можно сформировать 10 четких отрезков с шагом 0,1 сек то покажите плз как это сделать, но мне кажется на мк логичнее

Добавлено: Ср авг 19, 2009 17:53:02
VIRGO
А зачем такой "мудрёный" алгоритм программирования задержки?
Не проще поставить 4 джампера? (до 16 фиксированных значений)

Добавлено: Ср авг 19, 2009 18:13:10
BlackCat
Да джамперами можно тоже, даже индикация и программирование не нужно, только Старт оставить

Добавлено: Ср авг 19, 2009 20:48:56
Аlex
4 джампера, 1 кнопка (пуск/стоп) и один ЛЕД (показывает состояние). И всё :)
Можно вообще без кнопки и ЛЕДа, пусть всегда будет на готове. Тогда нужно 4 вывода на джамперы и 2 вывода вход/выход. Итого 6 выводов МК. Ябы сделал на 8-ми выводном ПИКе, например PIC12F675/629 И в корпус мышки влезет.

Добавлено: Ср авг 19, 2009 20:49:53
VIRGO
И "Старт" не надо. По включению питания задержка устанавливается автоматически по состоянию джамперов.

Добавлено: Ср авг 19, 2009 22:01:02
Аlex
Вот примерно так.
В архиве проект протеуса, hex и исходник.

Добавлено: Чт авг 20, 2009 07:27:20
BlackCat
Алекс! Огромное вам спасибо!
Такой вариант тоже пойдет, единственная проблема я скачал Протеус, а там проект не открывается, пишет что он был создан версией постарее чем у меня, и не вижу схемы. Можете ее выложить в граф. формате?
И если искать человека с программатором для PIC12F675/629 ему давать файл 123.hex и все, этого достаточно для прошивки?
Сорри за нубские вопросы)

Да, и еще хотел попросить можете выложить прошивку 2 вариант для клика мыши не 100 мс, а 50 мс (проверю и этот вариант)

И еще момент вы включили в программу:
4.1 Делаем задержку 0,5 сек статическую (она не меняется)
Не могу найти ее в тексте программы?
Наверно я не точно сформулировал задачу. Задержка должна быть 500 мс+Х (Х=100-1000 мс с шагом 100)

Добавлено: Чт авг 20, 2009 08:30:19
VIRGO
BlackCat писал(а): Задержка должна быть 500 мс+Х (Х=100-1000 мс с шагом 100)
Аlex написал вам прогу для четырёх джамперов, максимальная задержка до 1500 мс (всего 15 значений). Просто устанавливайте значения задержки от 500 до 1500 мс.

Добавлено: Чт авг 20, 2009 08:35:23
BlackCat
А соррри все! Разобрался! Так и есть) В двоичном коде вводить я понял 0-F (0000-1111) 0-15 Диапазон регулирования 100-1500
Ну че с нуба взять

Добавлено: Чт авг 20, 2009 12:57:10
Аlex
проект не открывается, пишет что он был создан версией постарее чем у меня, и не вижу схемы. Можете ее выложить в граф. формате?
Попробуйте открыть этот, должен открыться.
Если что, в архиве скрин проекта (чтото типа схемы :) ).

Сделал 500+х . В архиве 2 прошивки на 100 Мс и на 50 Мс.

Удачи !

Добавлено: Чт авг 20, 2009 13:26:59
BlackCat
Да, все открылось, я даже симуляцию провел, все работает как и задумано!
Будем воплощать это в железе.
Еще раз огромное спасибо!

Добавлено: Чт авг 20, 2009 14:43:07
Аlex
Да незачто.
Ищите PIC12F675, программа написана под него. Для 629-ого нужно немного переделывать.
Сопротивления R3-R6 (которые на +5V с джамперов) попробуйте не ставить, должно работать без них. Я програмно подтянул внутренние сопротивления. Странно, в протеусе они почему-то не подтягиваються :?
Вобщем удачи! Если чё МЯУкайте, поможем :)

Добавлено: Чт авг 20, 2009 15:57:04
BlackCat
Ага, спасибо за совет
Звонил, узнавал 12F675 как раз есть, так что все без изменений пока

Добавлено: Пт авг 21, 2009 03:03:52
BlackCat
Алекс, не сочтите за наглость.
Тут еще подумал, возможно шага в 100 мс будет немного грубо
Пожалуйста, сделайте еще 1 вариант прошивки.
Условия те-же, но шаг сейчас 50мс (500мс+Х, Х=50-750мс шаг 50) Все те-же 4 джампера
Время клика 50 мс (уже готовый проект изменить)
Это уже 100% будет все :)

Добавлено: Пт авг 21, 2009 14:10:37
Аlex
Пожалуйста.