Как сделать кнопку ПУСК и СТОП?
Здравствуйте. Как сделать так, что бы при нажатии кнопки, запускалась основная программа, а другой кнопкой останавливалась?
- Реклама
В теле программы опрашивать их и по состоянию принимать решение. Или я чего-то недопонимаю?
Docendo discimus
При включении, программа должна стоять, а после нажатия кнопки, запуск программы.
Код: Выделить всё
while(!PINX.Y); // на случай, если при включении кнопка нажата
whike(PINX.Y); // ждем нажатия кнопки
// пооййехали
...
...
...Docendo discimus
- Сообщения: 758
- Зарегистрирован: Вс фев 10, 2013 15:26:00
Для понимания: программа не может "стоять".
Следующий клок тикнул - следующая инструкция выполняется.
Остановить тактовый генератор теоретически можно, но практически вместо "стоять" сделали "зациклиться".
В отрыве от контекста получился конь в вакууме - формальный вопрос, формальный ответ. "Лаба".
Рисуй весь алгоритм, пляши от конечной задачи (с точки зрения пользователя)... и руками на бумажке это полезнее, чем запостить в интернет.
---
Не тупи.
Следующий клок тикнул - следующая инструкция выполняется.
Остановить тактовый генератор теоретически можно, но практически вместо "стоять" сделали "зациклиться".
В отрыве от контекста получился конь в вакууме - формальный вопрос, формальный ответ. "Лаба".
Рисуй весь алгоритм, пляши от конечной задачи (с точки зрения пользователя)... и руками на бумажке это полезнее, чем запостить в интернет.
---
Не тупи.
Последний раз редактировалось nirq Сб окт 26, 2013 21:23:28, всего редактировалось 1 раз.
- Реклама
При чём здесь "не может стоять"?pitato писал(а):при нажатии кнопки, запускалась ...программа
Docendo discimus
Вот так программа не может стоять- если сделать условием начала выполнения программы какое- то событие (нажатие кнопки), то пока это событие не произойдёт программа всё равно будет с каждым тактом опрашивать состояние кнопки.... пока кнопку не нажмут...
Для зануд:
А что там внутри этой черной штучки с железными какими-то торчащими проволоками делается - вообще по барабану.
Будем считать, что опрос кнопки осуществляет не_основная программа.запускалась основная программа
Docendo discimus
Всегно одна командаПри включении, программа должна стоять
HALT
Все остальное в обработке прерываний
халт равнозначно исполнению нопов. Опять тема для зануд. 
Docendo discimus
Вот эта программа. Надо, чтобы при нажатии кнопки ПУСК (без фиксации) запускался цикл программы.
$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
$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
Мы уже тут разодрались вхлам. Не до вас.
Погодите со своим бэйсиком - может кто еще подтянется. 
Docendo discimus
если баском то проще,значит так,2 кнопки-старт и стопpitato писал(а):Вот эта программа. Надо, чтобы при нажатии кнопки ПУСК (без фиксации) запускался цикл программы.
в основной программе постоянно опрашиваем не нажато ли стоп,если не нажато-выполняем основную программу,если нажато-уходим на зацикленную подпрограмму в которой постоянно опрашивается кнопка стоп,например
DO
IF _STOP=0 THEN GOTO PR__START-здесь опрашиваем,если нажато-уходим---
...........
LOOP
..........
PR__START:
DO
IF _START=0 THEN GOTO LABEL
LOOP
LABEL:
return
примерно так,надо видеть всю программу


