Опрераторы
- Войдите на сайт для отправки комментариев
Вс, 28/01/2018 - 19:54
Такой вопрос, написал скетч, создал оператор FOR с циклом в нем и там же создал оператор IF, в котором прерывание BREAK. Собственно в чем вопрос, Функция BREAK подействует на FOR, через IF???
Такой вопрос, написал скетч, создал оператор FOR с циклом в нем и там же создал оператор IF, в котором прерывание BREAK. Собственно в чем вопрос, Функция BREAK подействует на FOR, через IF???
Функция BREAK подействует на FOR, через IF???
"Функция BREAK", если она здорова и нормально тренируется, должна пробить FOR через IF. Мы будем за неё болеть!
Два вопроса:
1. Что мешает проверить самому?
2. Код "совершенно секретный" или "особой важности", что здесь его показать нельзя?
Такой вопрос, написал скетч, создал оператор FOR с циклом в нем и там же создал оператор IF, в котором прерывание BREAK. Собственно в чем вопрос, Функция BREAK подействует на FOR, через IF???
Если лень попробовать, напиши на всякий случай BREAK 2 раза, один для IF, второй для FOR.
напиши на всякий случай BREAK 2 раза, один для IF, второй для FOR.
+100500! И как я не додумался?
А их нужно последовательно писать или параллельно для увеличения пробивной силы?
фигня ваш брейк! return круче на порядок! И кстати включать его можно где угодно! Выход - гарантирован.
GOTO разделывает ваш return как бог черепаху.
Лошадью ходи!https://www.youtube.com/watch?v=2N5bNkfmOTA
GOTO разделывает ваш return как бог черепаху.
прости меня Господи, GOTO
А що Ви имеете супротив goto?
А що Ви имеете супротив goto?
Ну, знаете-ли, грешно это, к запрещенным приемчикам прибегать. Не-по-па-нятиям! Вас ни разу к ответу за , прости меня Господи, GOTO не призывали?
Да призывали как-то. Послал их jmp в ассемблерных листингах считать.
А их нужно последовательно писать или параллельно для увеличения пробивной силы?
Нужно написать цикл для многократного вызова BREAK :)
2 причины) Он капец какой длинный строк под 600))) и проблема в IRremout, то есть ик приемник не хочет работать как надо. Да и я один раз сюда выкладывал скетч, сайт мне его перевел, вот теперь думаю как бы 2 раз не накосячить) А по поводу проверки, я чет уже туплю после бесчисленных попыток решить проблему выхода из цикла и выполнить указанное действие при появлении данных на ик приемнике. Я попробую сейчас его выложить. Если не затупит)))
Собственно проблема в том, этот скетч для ангельских глазок на диодах WS2812B, а дело в том, что инфра красный приемник если не устанавливать IF с отсечением ненужных сигналов, не выполняет вычитание сложение, и т. п., но видно по меганию диодов, что он видит пульт, а работает с отсечение и всеми положенными ему операциями, только в основном цикле loop. А если дописать отсечение в другой ветке цикла допустим nam3 (); там он вообще не реагирует.
У Вас пиццот раз встречается
517
if
( irrecv.decode( &results )) {
// если данные пришли
518
if
(results.value == aaa || results.value == bbb ||
519
results.value == ccc || results.value == ddd ||
520
results.value == eee || results.value == fff ||
521
results.value == ggg || results.value == hhh ||
522
results.value == iii || results.value == jjj)
думаю, стоило бы вынести это в функцию, код станет более читабельным.
Конструкция
094
NEW:
095
096
if
(условие){...;...;
105
goto
NEW;
106
}
по идее должна быть записана как
094
while(условие){
...;
...;
}
GOTO разделывает ваш return как бог черепаху.
Меня возмущает отсутствие gosub
В великом языке INTERCAL была полная противоположность GOTO - оператор COMEFROM ("получить управление ИЗ"). Вот его мне иногда реально не хватает :))))
Собственно проблема в том, этот скетч для ангельских глазок на диодах WS2812B, а дело в том, что инфра красный приемник если не устанавливать IF с отсечением ненужных сигналов, не выполняет вычитание сложение, и т. п., но видно по меганию диодов, что он видит пульт, а работает с отсечение и всеми положенными ему операциями, только в основном цикле loop. А если дописать отсечение в другой ветке цикла допустим nam3 (); там он вообще не реагирует.
Собственно крупные проблемы у вас в delay(), насиловании EEPROM (он еще жив?) и субпространственных прыжках внутри switch() с помощью GOTO. Ну и мелких не счесть.
Он капец какой длинный строк под 600)))
Здесь скетчи на 5 тысяч строк выкладывают: http://arduino.ru/forum/proekty/transistor-tester-arduino
А по поводу проверки, я чет уже туплю после бесчисленных попыток решить проблему выхода из цикла и выполнить указанное действие при появлении данных на ик приемнике.
Операторы goto back0; не нужны, вместо них можно сразу писать break;
Информация из справочника на сайте: http://arduino.ru/Reference/Break
вот это неправильно
047
int
aaa = 0xFFA25D;
048
int
bbb = 0xFFE21D;
049
int
ccc = 0xFF629D;
050
int
ddd = 0xFF22DD;
051
int
eee = 0xFF02FD;
052
int
fff = 0xFFA857;
053
int
ggg = 0xFFE01F;
054
int
hhh = 0xFF906F;
055
int
iii = 0xFF9867;
056
int
jjj = 0xFFB04F;
тип не соответствует константам. Лучше замени это и это
144
if
( irrecv.decode( &results )) {
145
if
(results.value == 0xFFA25D || results.value == 0xFFE21D ||
146
results.value == 0xFF629D || results.value == 0xFF22DD ||
147
results.value == 0xFF02FD || results.value == 0xFFA857 ||
148
results.value == 0xFFE01F || results.value == 0xFF906F ||
149
results.value == 0xFF9867 || results.value == 0xFFB04F){
на
если вернулся индекс меньше 0, код в массиве не найден, если больше или равно - строй свои switch-и с case-ами.
А вапще говнокод, канешна, жуткий....
Оператов break, на мой взгляд, в любом языке означает (дословно) прервать. Это как бы подразумевает выход либо из while/for, либо из switch/case.
Тут складывается впечатление, что автор копипасту сунул без минимальных знаний в программировании. Даже 30 минут пожалел на просмотр видео уроков с Youtube.
Он выведен по подному разу в каждом отдельном действии, я мог бы его вывесть в основной цикл, или один раз в цикле, тогла очень сложно будет попасть в момент, когда нужно нажать кнопку. В этоим проблема тоже)))
EEPROM работает) delay я применяю на уровне своих знаний) зная что задержку можно только так сделать) Я не углублялся в познания программирования, для меня это муть, вс со временем, чем дальше иду, тем больше нового узнаю.
А можно пожалуйста поподробнее, или ссылочку или название, с чем придется работать, тяжело когда не понятно) А очень хочется знать.
EEPROM работает)
Ничего страшного, не перживайте, это скоро пройдёт.
break выдает ошибку, говорит могу выйти только из циклов While for Do. из If не могу. Сорян
Хотя я чуть подзаморочусь и подумаю в чем пробл. Спасибо. за ссылку.
Я уйму видео пересмотрел в ютубе, да, умом и знаниями, я не блещу, тяжело, когда не у кого спросить. Для меня, главное что работате. Откуда может выбросить break, я в курсе, изза многочисленных несостыковок, он ошибку выдает. По этому пока так.
И можно собственно обозначать ошибки, а не говорить что все стрвшно и плохо, я за этим сюда и пришел, что все плохо, я и так знаю, мне факты нужны!!!
И можно собственно обозначать ошибки, а не говорить что все стрвшно и плохо, я за этим сюда и пришел, что все плохо, я и так знаю, мне факты нужны!!!
Вы даже основ не знаете. Какие вам факты ещё нужны?
Ну естественно я не прогаммист, мне дано железо, могу из говна и палом что то сделать, программирование для меня муть страшная, но интересная. По этому я спрашиваю. Какие основы?
Вот хороший курс по программированию Arduino. Там уроков 12. Может больше. Все смотреть не обязательно, но половины будет достаточно.
С моим IQ == 56 он был осознан легко. Рекомендую.
И можно собственно обозначать ошибки, а не говорить что все стрвшно и плохо, я за этим сюда и пришел, что все плохо, я и так знаю, мне факты нужны!!!
Вам крупно повезет, если кто-то возьмется Ваш код править, тем более , что описание ТЗ Вы не предоставили. А из ваших не совсем каноничных записей понять предполагаемую логику работы устройства затруднительно. Я так думаю(с)
Ну естественно я не прогаммист
не знаю, что в этом естесственного? Для человека, занимающегося микроконтроллерами - естесственно быть программистом - если не по должности, то хотя бы в душе. А тем. кто в душе "непрограммист" - тут вообще делать нечего, имхо.
СПАСИБО БОЛЬШОЕ!!! Рад что есть люди, которые прошли весь путь программирования и помогают) Больше бы таких) Еще раз спасибо!
SSSRMaster. Вы что тупой. Есть две книги- http://people.toiit.sgu.ru/Sinelnikov/PT/C/Kern_Ritch.pdf и https://vk.com/doc16756779_228187070?hash=88e5b6ccd4f822602c&dl=ccc12f550fe4ac896f
Вот их надо знать как закон Ома. А потом уже садиться за поектирования более менее сложных систем. Скачайте, купите и читайте по полного просветления. Считайте что это Старый и Новый Завет . И у вас не будет goto , там где достаточно return.
Ух как бомбит) Ладно, будем раздираться с проблемой как получится) Спасибо за помощь)
Да и собственно проблема не переходах, а в том, что пульт не определяется в циклических процесах, я не могу понять почему, и как это исправить, может много разделов для определения пульта сделал, может не правильное отсечение ненужной инфы, а то не хочется, чтобы заного все делал.
Да, чего вы все к гоуту привязались? То им делэй не нравится, то гоуту - что за дискриминация?!?
Пошёл писать устав "Общества защиты прав операторов перехода!"
Да и собственно проблема не переходах, а в том, что пульт не определяется в циклических процесах, я не могу понять почему
написали же выше - константы кодов пульта заданы неправильно, они и не будут определяться - ни в циклах, ни снаружи.
Ну и вообще весь код можно сократить строк на 200 - тогда и ошибки будет легче искать.
Какую функцию выполняет число после return X ? Вот полазил, не нашел.
расходимся ....
Какую функцию выполняет число после return X ? Вот полазил, не нашел.
Полазьте ещё. Под диваном посмотрите.
Хотя, ... форма допуска у Вас какая? А то функция секретная, её кому попало не раскрывают.
Просьба на коментарии в цикле не обращайте внимание, они левые.
Все
goto
NEW;
надо поменять на return; программу это не исправит но идиотизм уменьшится.А как сделать тпк, чтобы он вернулся сразу к началу? Что то мне подсказывает что он не возвращается назад