Опрос кнопки. Застрял.
- Войдите на сайт для отправки комментариев
Пт, 09/10/2015 - 01:05
Застрял на пустяковой задаче для Arduino. Проверяю нажатие кнопки, если наждата - жду 30 мс, потом снова проверяю. Если нажата - кнопку держат, снова в начало и в цикл, пока не отпустят, если не нажата - выполняю (команды) и снова в начало опроса.
Из языков знаю ассемблер для микроконтроллера 8051, там эта задача решается за 10 инструкций. Языка Arduino не знаю, гуглю второй день толку мало. Запутался с применением if for do while - я так полагаю что-то из этого мне надо.
http://arduino.ru/forum/programmirovanie/klass-titanovyi-velosiped-dlya-taktovoi-knopki
нифигасе...
Керниган и Ритчи
http://arduino.ru/Reference/While
А простых условных переходов нет в этом языке? проверить бит на порте, перейти (или не перейти) по метке? Или скопировать байт с порта в аккумулятор, исключающее ИЛИ со значением, проверка аккумулятора на ноль (как в MCS-48)?
Керниган и Ритчи
Можно ближе
http://arduino.ru/Reference
Кому татор, а кому лятор. Вы эти ассемблеоные замашки бросьте :) тут, я не побоюсь этого слова С.
Нет , конечно можно и на ассемблере слабать, только вот зачем ?
Кому татор, а кому лятор. Вы эти ассемблеоные замашки бросьте :) тут, я не побоюсь этого слова С.
Нет , конечно можно и на ассемблере слабать, только вот зачем ?
Так в Ассемблере все намного проще и логичнее.
Всем спасибо, я понял, это не моя игрушка.
Уже скачал Ревича "Ассемблер AVR". Сотру загрузчик
Уже скачал Ревича "Ассемблер AVR". Сотру загрузчик
Chip Erase
http://habrahabr.ru/post/152052/
Операций на моск :)
не морочьте голову мосьё, гавнакодьте как все на сях, или ... Не морочьте нам тут голову ...
ардуино это прикольная штука, чтобы быстро, на коленке сделать прототип-эскиз , грифельная доска, пластилин...
маслом писать будете ( из гранита рубить вечноэ, на вестаке строгать нетленноэ), когда Вам заказчик отстегнет :)
не морочьте голову мосьё, гавнакодьте как все на сях, или ... Не морочьте нам тут голову ...
Ни в коем случае не буду морочить. Придти на этот форум с своим ламерским вопросом было моей ошибкой, извиняюсь. Вы тут дальше лепите, не смею вам мешать.
так шо? не будет скетчей в бинарном коде?
кто мне ужмёт титановый велосипед в 50 байт?
Алюминиевые агурцы :)
Не спорьте коллеги, давно известно, что настоящий программист может написать фортрановскую программу на любом языке :)
ИИСТИНА сие есть!
Прграммистъ - стиль мышления.
Прграммистъ - стиль мышления.
да, ладно - нет смысла гордиться профессиональной деформацией сознания.
Аберрацией :) , кичиться :))
где мои бинарные скетчи?
Загружаемые на тумблерах :)
где мои бинарные скетчи?
Загружаемые на тумблерах :)
такие у меня уже есть http://habrahabr.ru/post/152052/
клаву с 0 1 тоже приготовил
ентер - шозанах?! нет в бинарном коде символа \n !
где мои бинарные скетчи?
скоро будут, все уже готово.
скоро будут, все уже готово.
шо это?
подключи дуино к пинам кнопок - не 19-й чай век, вручную кнопки нажимать.
Это кнопочный пуульт для ручного ввода двоичных кодов
Это не для дуино. Это я учился управлять экранчиком на HD44780 вручную, чтоб понять как писать программу для упраления экранчиком с МК.
Это не для дуино.
я понял, зачем это
но, зачем это, если протоколы управления LCD есть в свободном доступе?
Для моего МК (AT89S52) не нашел устраивающих меня примеров на Ассемблере, пришлось подпрограмму управления дисплеем писать самому.
Описания протокола, - да есть, и я ими пользовался. Требовалось кое что окончательно уточнить для себя.
Фигасе, прошлый раз я такое видел в 1989 году :) загрузчик через это в 8080 запихивал .
шо это?
подключи дуино к пинам кнопок - не 19-й чай век, вручную кнопки нажимать.
Ну вот. Таки написал почти так, как хотел.
Такой вопрос. Тут можно обойтись без goto? А то говорят, что goto - не совсем хорошо.
Тютель, например так:
А для чнго вообще goto на начало loop? Выйти из loop нафиг, он сам ещё раз вызовется.
А для чнго вообще goto на начало loop? Выйти из loop нафиг, он сам ещё раз вызовется.
Не знаю как вернутся иначе в начало проверки кнопки.
Ну вот. Таки написал почти так, как хотел.
как бы ты не старался - у тебя получится это #1
потом набегут программисты и ты напишешь класс
*объясните кто ТС, что программа в лупе работает в цикле.
*объясните кто ТС, что программа в лупе работает в цикле.
Это я знаю. Просто мне никто ни сказал, и я нигде не прочитал, что
- это выход из лупа, и что не нужно никуда делать переход.
Это мне стало понятно только из сообщения dimax, за что ему большое спасибо.
Это я знаю. Просто мне никто ни сказал, и я нигде не прочитал, что
*почему мне никто никогда ничего не говорит?(риторический вопрос)
- это выход из лупа, и что не нужно никуда делать переход.
выход из лупа куда?
Насколько я знаю, из него нельзя выйти. Он снова начнется.
Насколько я знаю, из него нельзя выйти. Он снова начнется.
ну, ты же выше писал, что тебя dimax научил выходить из лупа?
Прошу прощения, выходить из условия.
Прошу прощения, выходить из условия.
ок.
ты точно уверен, что из условия, для корректной его обработки, необходим выход?
как это происходит в ассемблере? - происходит отработка оператора if() и всё зависает?
В Ассемблере нет оператора IF. Есть инструкция CJNE и некоторые другие, для организации ветвления. Выходить там некуда.
В Ассемблере нет оператора IF. Есть инструкция CJNE и некоторые другие, для организации ветвления. Выходить там некуда.
ок.
тогда, бросай это всё нахрен и учи матчасть
http://arduino.ru/Reference
http://arduino.ru/Reference/Loop
После вызова функции setup(), которая инициализирует и устанавливает первоначальные значения, функция loop() делает точь-в-точь то, что означает её название, и крутится в цикле, позволяя вашей программе совершать вычисления и реагировать на них. Используйте её для активного управления платой Arduino.
http://arduino.ru/Reference/If
if, используется в сочетании с операторами сравнения, проверяет, достигнута ли истинность условия, например, превышает ли входное значение заданное число. Формат оператора if следующий:
if
(someVariable > 50)
{
// выполнять действия
}
Программа проверяет, значение someVariable больше чем 50 или нет. Если да, то выполняются определенные действия. Говоря иначе, если выражение в круглых скобках истинно, выполняются операторы внутри фигурных скобок. Если нет, программа пропускает этот код.