Кто на новенького?
- Войдите на сайт для отправки комментариев
Ср, 17/06/2015 - 16:57
Добрый всем день! Я абсолютно первый раз включил как положенно новичку диодную мигалку, но возник вопрос -что надо прописать, что бы диод помигал 6 раз и отключился? Не нашел пока ответа.
Перенести код мигалки из loop() в setup() и завернуть его в шестикратный for.
Т.е loop() не использовать вообще? А как завернуть в шестикратный for? Я ведь пока не знаю как это делать.
http://arduino.ru/Reference/For
Я посмотрел ссылку но к сожалению не понял, там слишком для меня заумно написанно. Кто может, приведите простой пример.
Каникулы блин...
Руководство по программированию
Разберитесь с for и приходите пересдавать через неделю.
Спасибо всем за полное развернутое объяснение моего вопроса...
Теперь все понял, большое спасибо за помощь!!!
Код с for немного меньше по объему и не используется глобальная переменная.
Прикольная ссылка ))
Так, какой же код лучше использовать, точнее будет надежней -1 или 2-ой?
по твоему первому посту любой подойдёт
Я не увидел время горения диода, это как то отдельно устанавливается или так и надо?
Правильная логика работы не может обойтись без глобальных объектов.
Это, конечно, простейший пример, который можно реализовать по-разному, но с точки зрения правильного подхода к программированию второй вариант, безусловно, лучше. Причем, по нескольким причинам.
1. Блок инициализации нужен именно для инициализации ни для чего другого. Это - принципиалтный момент, во-первых, потому что желательно минимизировать время инициализации, в во-вторых, потому что управляющей программе (которая вызывает функции setup b loop) тоже, вероятно, что-то надо инициализировать.
2. Цикл работы должен по возможности занимать минимальное время. Потому как управляющей программе между двумя последовательными вызовами loop может понадобиться сделать какую-то работу. В идеале даже команда delay вызываться не должна, но в простейших программах она, как правило, интенсивно используется. Но еае только вы столкнетесь с какой-нибудь реальной задачей, в которой надо одновременно делать несколько действий, то окажется, что delay применять категорически нельзя, и всю логику нужно будет делать на чтении показаний чаксов и сравнении их с глобальными переменными - по одной (или больше) для каждого из одновременно выполняемых процессов.
Так что за основу лучше блать вариант с глобальной переменной и без лишних команд в setup.
Блок инициализации нужен именно для инициализации ни для чего другого. Это - принципиалтный момент
Странная у Вас логика. Можно подумать, что функция setup() - это нечто сугубо специализированное, в котором не дай бог что-то написать не относящееся к "инициализации". А по сути, функция как функция, выполняющаяся только один раз.
loop() - такая же равноправная функция, только зацикленная сама на себя.
Пропишите в ней в конце:
for (;;) {}
или
while (true) {}
и будет у вас два setup().
"Если хорошентко задуматься, можно выдумать еще ерундее" (с) не мое
Если Вы не профессионал и пишете программы исключительно для себя, то можете писать, как Бог на душу положит. Но если хотите, чтобы программы работали надежно, были легки для воспричтия, отладки, сопровождения и усовершенствования, следует придерживаться определенных правил. Если этого не придерживаться, на определенном этапе разработки, когда в программу потребуется внести очередное усовершенствование, вдруг окажется, что самый простой способ сделать это - переписать программу с нуля (но уже придерживаясь определенных принципов).
Когда программа проста, ее можно написать десятками различных способов, но по мере усложнения программы количество способов стремительно сокращается - отпадают те, которые не могут обеспечить либо возможность отладки, либо даже выполнение требуемого алгоритма.
В частности, необходимость выполнения нескольких действий одновременно (например, опрос датчика положения и управление мотором) требует вполне определенного подхода к организации программы. Способ, предлагаемый разработчиками arduino, это допускает, и не надо его ломать, даже если это кажется более прстым и понятным.
Когда программа проста, ее можно написать десятками различных способов, но по мере усложнения программы количество способов стремительно сокращается - отпадают те, которые не могут обеспечить либо возможность отладки, либо даже выполнение требуемого алгоритма.
В частности, необходимость выполнения нескольких действий одновременно (например, опрос датчика положения и управление мотором) требует вполне определенного подхода к организации программы. Способ, предлагаемый разработчиками arduino, это допускает, и не надо его ломать, даже если это кажется более прстым и понятным.
Я так понимаю вы строем ходите? Это же оптимально и по правилам.
А Вы, полагаю, предпочитаете есть руками - так ведь намного проще и удобнее, нежели ножом и вилкой.
Не поверите, я много чего ем руками. Например, печеньки. Даже не представляю, как их можно есть ножом и вилкой.
Не придумывайте себе сложности в простых вещах. Не надо изобретать "правильный" инструмент чтобы поковырять в носу, для этого прекрасно подходит собственный палец, хоть и не совсем эстетично.
А Вы, полагаю, предпочитаете есть руками - так ведь намного проще и удобнее, нежели ножом и вилкой.
(Поставил на стол суп) удачи вам с ножом и вилкой!
Когда программа проста, ее можно написать десятками различных способов, но по мере усложнения программы количество способов стремительно сокращается - отпадают те, которые не могут обеспечить либо возможность отладки, либо даже выполнение требуемого алгоритма.
От ведь как все запутано! НО! По Вашей логике есть только один способ написать "самую сложную" программу. Афигенчик. А я то по незнанию считал что при увеличении количества функции способы решения растут в геометрической прогрессии. Ошибался видать.
Когда программа проста, ее можно написать десятками различных способов, но по мере усложнения программы количество способов стремительно сокращается - отпадают те, которые не могут обеспечить либо возможность отладки, либо даже выполнение требуемого алгоритма.
От ведь как все запутано! НО! По Вашей логике есть только один способ написать "самую сложную" программу. Афигенчик. А я то по незнанию считал что при увеличении количества функции способы решения растут в геометрической прогрессии. Ошибался видать.
шото я начинаю скучать по Лешаку - он бы объяснил всем, где форматирование исходников зимует.
По мере увеличения количества функций количество способов добиться стабильной работы всех этих функций действительно сокращается.
Когда нужно перенести в руках один кирпич, это можно сделать массой способов: в правой руке, в левой руке, на правой ладони, на левой ладони, справа подмышкой, слева подмыщкой, обхватив двумя руками, на двух ладонях. А если перенести нужно сразу 6 кирпичей, то, прожалуй, остается только стопкой, обхватив двумя руками.
По мере увеличения количества функций количество способов добиться стабильной работы всех этих функций действительно сокращается.
Когда нужно перенести в руках один кирпич, это можно сделать массой способов: в правой руке, в левой руке, на правой ладони, на левой ладони, справа подмышкой, слева подмыщкой, обхватив двумя руками, на двух ладонях. А если перенести нужно сразу 6 кирпичей, то, прожалуй, остается только стопкой, обхватив двумя руками.
Забористая у Вас трава! Завидую.
По мере увеличения количества функций количество способов добиться стабильной работы всех этих функций действительно сокращается.
Когда нужно перенести в руках один кирпич, это можно сделать массой способов: в правой руке, в левой руке, на правой ладони, на левой ладони, справа подмышкой, слева подмыщкой, обхватив двумя руками, на двух ладонях. А если перенести нужно сразу 6 кирпичей, то, прожалуй, остается только стопкой, обхватив двумя руками.
Вы главное не снимайте шоры. Ведь мир побокам огромен и пугает.
Когда уже закончатся эти каникулы.
Хотите предложу пяток вариантов как перенести сразу десяток кирпичей?
Так что за основу лучше блать вариант с глобальной переменной и без лишних команд в setup.
Полностью с вами согласен.Возможно люди не работали с большими проэктами когда нужно измерять порядка 150-200 аналоговых каналов и при этом около 300 дискретных.(для тролей это не для Ардуино). Так вот, чтобы у вас мозги не закипели к концу проэкта необходимы переменные в шапке программы.Как говориться всё по полочкам.
А учиться писать программу грамотно это личное дело каждого. Ну вот простой пример приведу:
Как на ваш взгляд правильнее написать программу - "Зажечь светодиод и каждый цикл его снова зажигать. Или проще его зажечь,сказать что он уже горит и больше его не зажигать."
В итоге мы получим тоже самое ,но зато сократим время на выполнение команды зажечь.(команд может быть много)
Глобальные переменные вообще зло и от них надо избавляться по возможности. Это же еще в начальной школе проходят.
Есть большая река и маленький ручей, у вас есть лодка и палка. Вопрос- что вам удобнее будет
использовать для преодоления маленького ручья - лодка или палка? Так же я думаю и использование глобальных переменных имеет свою нишу, где удобно её использовать, а где можно и без неё обойтись. Или я не прав?
Как на ваш взгляд правильнее написать программу - "Зажечь светодиод и каждый цикл его снова зажигать. Или проще его зажечь,сказать что он уже горит и больше его не зажигать."
В итоге мы получим тоже самое ,но зато сократим время на выполнение команды зажечь.(команд может быть много)
Гы. Еще один Билл Гейтс. Проще его на прямую к питанию подсоединить.
Как на ваш взгляд правильнее написать программу - "Зажечь светодиод и каждый цикл его снова зажигать. Или проще его зажечь,сказать что он уже горит и больше его не зажигать."
В итоге мы получим тоже самое ,но зато сократим время на выполнение команды зажечь.(команд может быть много)
Гы. Еще один Билл Гейтс. Проще его на прямую к питанию подсоединить.
Ну от вас другого ответа я и не ожидал.Ага и без резистора подсоедини.
Гы. Еще один Билл Гейтс. Проще его на прямую к питанию подсоединить.
Ну от вас другого ответа я и не ожидал.Ага и без резистора подсоедини.
Ой! Да Вы еше и Фрейд? Мне так нельзя напрямую подсоединять, а Вам достаточно "сказать что он уже горит" и искуственный интеллект Вашей программы щелкнув каблуками и козырнув считает сиё одиннадцатым заветом. Не верю! (с)
Доктор!!! Чё куришь? Мне кажется ты тут для троллинга сидишь и только. Что то дельных советов я от тебя не слыхал тут.
Зато Вы у нас просто кладезь полузных советов! Аж 2 раза уже постами про резисторы на светодиоды отметились. Брависсимо! И видимо все мои посты прочитали? Если так - ура! У меня есть тайный поклонник! Если нет - то Ваше заявление голословно.
Зато Вы у нас просто кладезь полузных советов! Аж 2 раза уже постами про резисторы на светодиоды отметились. Брависсимо! И видимо все мои посты прочитали? Если так - ура! У меня есть тайный поклонник! Если нет - то Ваше заявление голословно.
Доктор!!! Завязывай курить !!! Я человеку дельным советом помог, а ты продолжаешь ахинею нести. Притормози.
Где Ваш полезный совет? Поддержка охинеи что все надо прописывать глобальными переменными вместо использования сетапа? Вы таки делаете мне смешно. Хотя с другой стороны - сам чёта посоветовал, сам себя похвалил. Профит!
эт ты типа научил его блинк прошивать?
есть такое понятие в русском языке " медвежья услуга".
Где Ваш полезный совет? Поддержка охинеи что все надо прописывать глобальными переменными вместо использования сетапа? Вы таки делаете мне смешно. Хотя с другой стороны - сам чёта посоветовал, сам себя похвалил. Профит!
Не нервничай. У них видишь по 300 аналоговых каналов нужно опрашивать одновременно. Я боюсь себе представить тот тех процесс где это может понадобиться.
Ну если мне не в падлу было потратить 10 минут для написания скетча. Вам чего от этого?Зависть что ли?На кой вы вообще на форумах сидите?Поржать над теми кто ничего не знает.Вы себя вспомните сначала . Все когда то были тупыми в этой области.
Помочь тем кто хочет научиться. А из-за таких как Вы они так тупыми и помрут.
О, пацану реально не в падлу 10 минут клаву топтать..
Открою небольшой секрет. Там есть пртмеры встроеные. И еще в прошлом году новичкам, как вы говорите, было не в падлу изучать эти примеры и пытаться склеить из примеров что то свое. В этом году вам уже даже примеры лень изучать.
Зачем изучать чей то пример, если я могу написать свой. Я вот не пойму чего вы хотите тут доказать.Не бывает одинаковых мозгов они у нас у всех разные. ****** чей то скетч это уже лень для меня.
Зачем изучать чей то пример, если я могу написать свой. Я вот не пойму чего вы хотите тут доказать.Не бывает одинаковых мозгов они у нас у всех разные. ****** чей то скетч это уже лень для меня.
МА-ЛА-ДЕЦ!
Инструкции тоже не читай. Сам же можешь написать. :)
По мере увеличения количества функций количество способов добиться стабильной работы всех этих функций действительно сокращается.
Когда нужно перенести в руках один кирпич, это можно сделать массой способов: в правой руке, в левой руке, на правой ладони, на левой ладони, справа подмышкой, слева подмыщкой, обхватив двумя руками, на двух ладонях. А если перенести нужно сразу 6 кирпичей, то, прожалуй, остается только стопкой, обхватив двумя руками.
типа - как перенести пять арбузов ? :)
....что же будет в 2016...20 ? :(
Chilori ,
JollyBiber , Puhlyaviy , leshak и др. ( порядок погонял не по статусу, произвольный ) -
оне изволили меня пинать полгода по ..... , пока не увеличился V мозга моего....
...читай и думай :)
от вышеперечисленных во второй строке - благодарностей не надо ! :)
посмотри их совместный сайт "Реабилитация блондинок" - статистика - 86% перекрасились !!!!!!!
Chilori ,
JollyBiber , Puhlyaviy , leshak и др. ( порядок погонял не по статусу, произвольный ) -
оне изволили меня пинать полгода по ..... , пока не увеличился V мозга моего....
...читай и думай :)
от вышеперечисленных во второй строке - благодарностей не надо ! :)
посмотри их совместный сайт "Реабилитация блондинок" - статистика - 86% перекрасились !!!!!!!
Жалуешься? Ябеда.
нееееа , просто сдал !
чё жаловацца ? спасибо за науку !
:)
Лешака не трожьте - он святой!