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

Вопросы настройки, программирования, прошивки микроконтроллеров и микросхем программируемой логики
Закрыто
Родился
Сообщения: 8
Зарегистрирован: Ср авг 19, 2009 15:32:25

Сообщение 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 этого этапа.
В этом цикле не проверяем нажатие Прог.

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

Ребята! Помогите пожалуйста!
Последний раз редактировалось BlackCat Ср авг 19, 2009 16:26:55, всего редактировалось 1 раз.
Реклама
Мучитель микросхем
Аватара пользователя
Сообщения: 491
Зарегистрирован: Вс янв 07, 2007 01:45:48
Откуда: Российская Федерация, будь она неладна...

Сообщение Pooher »

А не проще сделать на таймере (555) + логика(раз уж с программированием проблемы). Размеры совсем не большие получатся.
Научить нельзя, можно научиться. Пифагор.
Вставь недостающие буквы в слово *у*ня. Если у тебя получилось слово кухня, значит ты интеллигентный человек.
Реклама
Родился
Сообщения: 8
Зарегистрирован: Ср авг 19, 2009 15:32:25

Сообщение BlackCat »

Если можно сформировать 10 четких отрезков с шагом 0,1 сек то покажите плз как это сделать, но мне кажется на мк логичнее
Друг Кота
Аватара пользователя
Сообщения: 3268
Зарегистрирован: Вс июл 23, 2006 01:32:05
Откуда: г.Москва

Сообщение VIRGO »

А зачем такой "мудрёный" алгоритм программирования задержки?
Не проще поставить 4 джампера? (до 16 фиксированных значений)
R3Dio 73!
Реклама
Эиком - электронные компоненты и радиодетали
Родился
Сообщения: 8
Зарегистрирован: Ср авг 19, 2009 15:32:25

Сообщение BlackCat »

Да джамперами можно тоже, даже индикация и программирование не нужно, только Старт оставить
Реклама
Аlex

Сообщение Аlex »

4 джампера, 1 кнопка (пуск/стоп) и один ЛЕД (показывает состояние). И всё :)
Можно вообще без кнопки и ЛЕДа, пусть всегда будет на готове. Тогда нужно 4 вывода на джамперы и 2 вывода вход/выход. Итого 6 выводов МК. Ябы сделал на 8-ми выводном ПИКе, например PIC12F675/629 И в корпус мышки влезет.
Последний раз редактировалось Аlex Ср авг 19, 2009 20:57:43, всего редактировалось 4 раза.
Реклама
Друг Кота
Аватара пользователя
Сообщения: 3268
Зарегистрирован: Вс июл 23, 2006 01:32:05
Откуда: г.Москва

Сообщение VIRGO »

И "Старт" не надо. По включению питания задержка устанавливается автоматически по состоянию джамперов.
R3Dio 73!
Аlex

Сообщение Аlex »

Вот примерно так.
В архиве проект протеуса, hex и исходник.
Вложения
123.rar
(13.64 КБ) 169 скачиваний
Родился
Сообщения: 8
Зарегистрирован: Ср авг 19, 2009 15:32:25

Сообщение BlackCat »

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

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

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

Сообщение VIRGO »

BlackCat писал(а): Задержка должна быть 500 мс+Х (Х=100-1000 мс с шагом 100)
Аlex написал вам прогу для четырёх джамперов, максимальная задержка до 1500 мс (всего 15 значений). Просто устанавливайте значения задержки от 500 до 1500 мс.
R3Dio 73!
Родился
Сообщения: 8
Зарегистрирован: Ср авг 19, 2009 15:32:25

Сообщение BlackCat »

А соррри все! Разобрался! Так и есть) В двоичном коде вводить я понял 0-F (0000-1111) 0-15 Диапазон регулирования 100-1500
Ну че с нуба взять
Аlex

Сообщение Аlex »

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

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

Удачи !
Вложения
123.rar
(35.17 КБ) 155 скачиваний
Родился
Сообщения: 8
Зарегистрирован: Ср авг 19, 2009 15:32:25

Сообщение BlackCat »

Да, все открылось, я даже симуляцию провел, все работает как и задумано!
Будем воплощать это в железе.
Еще раз огромное спасибо!
Аlex

Сообщение Аlex »

Да незачто.
Ищите PIC12F675, программа написана под него. Для 629-ого нужно немного переделывать.
Сопротивления R3-R6 (которые на +5V с джамперов) попробуйте не ставить, должно работать без них. Я програмно подтянул внутренние сопротивления. Странно, в протеусе они почему-то не подтягиваються :?
Вобщем удачи! Если чё МЯУкайте, поможем :)
Родился
Сообщения: 8
Зарегистрирован: Ср авг 19, 2009 15:32:25

Сообщение BlackCat »

Ага, спасибо за совет
Звонил, узнавал 12F675 как раз есть, так что все без изменений пока
Родился
Сообщения: 8
Зарегистрирован: Ср авг 19, 2009 15:32:25

Сообщение BlackCat »

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

Сообщение Аlex »

Пожалуйста.
Вложения
123.rar
(13.69 КБ) 157 скачиваний
Закрыто

Вернуться в «Микроконтроллеры и ПЛИС»