Как сделать кнопку ПУСК и СТОП?

Обсуждаем контроллеры компании Atmel.
Ответить
Родился
Сообщения: 5
Зарегистрирован: Пт сен 25, 2009 13:29:11
Откуда: Скадовск. УКРАИНА

Сообщение pitato »

Здравствуйте. Как сделать так, что бы при нажатии кнопки, запускалась основная программа, а другой кнопкой останавливалась?
Контактная информация:
Реклама
Друг Кота
Аватара пользователя
Сообщения: 7016
Зарегистрирован: Вс июл 12, 2009 19:15:29
Откуда: Ижевск

Сообщение pyzhman »

В теле программы опрашивать их и по состоянию принимать решение. Или я чего-то недопонимаю?
Docendo discimus
Контактная информация:
Реклама
Родился
Сообщения: 5
Зарегистрирован: Пт сен 25, 2009 13:29:11
Откуда: Скадовск. УКРАИНА

Сообщение pitato »

При включении, программа должна стоять, а после нажатия кнопки, запуск программы.
Контактная информация:
Друг Кота
Аватара пользователя
Сообщения: 7016
Зарегистрирован: Вс июл 12, 2009 19:15:29
Откуда: Ижевск

Сообщение pyzhman »

Код: Выделить всё

while(!PINX.Y); // на случай, если при включении кнопка нажата
whike(PINX.Y); // ждем нажатия кнопки
// пооййехали
...
...
...
Docendo discimus
Контактная информация:
Реклама
Эиком - электронные компоненты и радиодетали
Опытный кот
Сообщения: 758
Зарегистрирован: Вс фев 10, 2013 15:26:00

Сообщение nirq »

Для понимания: программа не может "стоять".
Следующий клок тикнул - следующая инструкция выполняется.

Остановить тактовый генератор теоретически можно, но практически вместо "стоять" сделали "зациклиться".


В отрыве от контекста получился конь в вакууме - формальный вопрос, формальный ответ. "Лаба".
Рисуй весь алгоритм, пляши от конечной задачи (с точки зрения пользователя)... и руками на бумажке это полезнее, чем запостить в интернет.

---

Не тупи.
Последний раз редактировалось nirq Сб окт 26, 2013 21:23:28, всего редактировалось 1 раз.
Реклама
Друг Кота
Аватара пользователя
Сообщения: 7016
Зарегистрирован: Вс июл 12, 2009 19:15:29
Откуда: Ижевск

Сообщение pyzhman »

pitato писал(а):при нажатии кнопки, запускалась ...программа
При чём здесь "не может стоять"?
Docendo discimus
Контактная информация:
Реклама
Друг Кота
Аватара пользователя
Сообщения: 44024
Зарегистрирован: Пн ноя 30, 2009 03:00:01
Откуда: Нерезиновая

Сообщение АлександрЛ »

:))) Правильно поставленный вопрос стоять будет долго.... :)))
Вот так программа не может стоять- если сделать условием начала выполнения программы какое- то событие (нажатие кнопки), то пока это событие не произойдёт программа всё равно будет с каждым тактом опрашивать состояние кнопки.... пока кнопку не нажмут...
Друг Кота
Аватара пользователя
Сообщения: 7016
Зарегистрирован: Вс июл 12, 2009 19:15:29
Откуда: Ижевск

Сообщение pyzhman »

Для зануд:
запускалась основная программа
Будем считать, что опрос кнопки осуществляет не_основная программа. :)) А что там внутри этой черной штучки с железными какими-то торчащими проволоками делается - вообще по барабану.
Docendo discimus
Контактная информация:
Друг Кота
Аватара пользователя
Сообщения: 13253
Зарегистрирован: Ср апр 06, 2011 09:58:13
Откуда: Кузбасс

Сообщение Bear2011 »

При включении, программа должна стоять
Всегно одна команда

HALT :)))

Все остальное в обработке прерываний
Друг Кота
Аватара пользователя
Сообщения: 7016
Зарегистрирован: Вс июл 12, 2009 19:15:29
Откуда: Ижевск

Сообщение pyzhman »

халт равнозначно исполнению нопов. Опять тема для зануд. :))
Docendo discimus
Контактная информация:
Родился
Сообщения: 5
Зарегистрирован: Пт сен 25, 2009 13:29:11
Откуда: Скадовск. УКРАИНА

Сообщение pitato »

Вот эта программа. Надо, чтобы при нажатии кнопки ПУСК (без фиксации) запускался цикл программы.


$regfile = "m32def.dat" ' используемый микроконтроллер ATmega32
$crystal = 16000000 ' частота установленного кварца 16 mHz

Config Portb.3 = Input ' конфигурируем вывод 3 порта B на вход - подключаем к нему кнопку ПУСК
Config Portb.2 = Output ' конфигурируем вывод 2 порта B на выход - подключаем к нему светодиод
Portb.2 = 0 'устанавливаем по умолчанию на ножке порта лог 0
Do ' начало цикла программы
Portb.2 = 1 'устанавливаем на ножке порта лог 1 - светодиод горит
Waitms 500 ' задержка в милисекундах 500мс = 0,5 секунды
Portb.2 = 0 'устанавливаем на ножке порта лог 0 - светодиод гаснет
Waitms 500 ' задержка в милисекундах 500мс = 0,5 секунды
Loop
End
Контактная информация:
Друг Кота
Аватара пользователя
Сообщения: 7016
Зарегистрирован: Вс июл 12, 2009 19:15:29
Откуда: Ижевск

Сообщение pyzhman »

Мы уже тут разодрались вхлам. Не до вас. :)) Погодите со своим бэйсиком - может кто еще подтянется. :))
Docendo discimus
Контактная информация:
Мучитель микросхем
Сообщения: 494
Зарегистрирован: Пн авг 12, 2013 19:07:47
Откуда: башкирия мелеуз

Сообщение pavel1979 »

pitato писал(а):Вот эта программа. Надо, чтобы при нажатии кнопки ПУСК (без фиксации) запускался цикл программы.
если баском то проще,значит так,2 кнопки-старт и стоп
в основной программе постоянно опрашиваем не нажато ли стоп,если не нажато-выполняем основную программу,если нажато-уходим на зацикленную подпрограмму в которой постоянно опрашивается кнопка стоп,например
DO
IF _STOP=0 THEN GOTO PR__START-здесь опрашиваем,если нажато-уходим---
...........
LOOP
..........
PR__START:
DO
IF _START=0 THEN GOTO LABEL
LOOP
LABEL:
return
примерно так,надо видеть всю программу
Ответить

Вернуться в «AVR»