Бесконечный цикл.
- Войдите на сайт для отправки комментариев
Втр, 29/04/2014 - 17:50
Вот код, который зажигает диод на ардуино:
void setup() { pinMode(13, OUTPUT); digitalWrite(13, HIGH) } void loop() { }
Код ниже делает то же самое:
void setup() { pinMode(13, OUTPUT); } void loop() { digitalWrite(13, HIGH) }
Но делает это постоянно. Вот у меня вопрос, на микроконтроллер это как-то влияет? Повышение энергопотребления например или нагревается может?
Вот у меня вопрос, на микроконтроллер это как-то влияет? Повышение энергопотребления например или нагревается может?
Ну очевидно же, что в первом случае у Вас светодиод включается в начале работы и далее не гаснет, а во втором случае - включается при каждом цикле loop(), что приводит к преждевременному износу включающего мосфета, который 16000 раз в секунду дергается процессором. Ресурс переключений мосфета хоть и большой, но не бесконечный...
Ну и нагрев от этой операции, понятное дело, будет присутствовать.
что-то вы сейчас фигню написали. этой командой устанвливается бит в регистре. если он уже установлен... то он уже установлен. )
Вот у меня вопрос, на микроконтроллер это как-то влияет? Повышение энергопотребления например или нагревается может?
для предотвращения износа контроллера, имеет смысл состояние пина хранить в переменной и, перед перезаписью состояния пина, сравнивать желаемое с имеющимся.
а, если серьёзно, то почему
а, не
?
что бы наверняка переключиться.
Та часть мк которая его устанавливает этого незнает и установит регистр езе раз и так до посинения.
я настаиваю, что мой код куда надежнее установит единицу))
а если серьезно, то не возможно утверждать что один код более бесполезный чем другой. Оба хороши (в плане бесполезности :)
я настаиваю, что мой код куда надежнее установит единицу))
а если серьезно, то не возможно утверждать что один код более бесполезный чем другой. Оба хороши (в плане бесполезности :)
Да тут не стоит вопрос про то, как надежно установить 1 или 0, меня интересует именно влияние постоянного, в каждом или почти каждом цикле, выставления порта в 1 или 0 на микроконтроллер.
та нифига не произойдет, это равносильно что писать в переменную.
о каком износе может идти речь?
Да никуда он не выставляется, он уже выставлен, его можно прочитать оттель, там, где уже выставлена единица выставление еще одной единицы означает НИЧЕГОНЕДЕЛАНЬЕ!
Да тут не стоит вопрос про то, как надежно установить 1 или 0, меня интересует именно влияние постоянного, в каждом или почти каждом цикле, выставления порта в 1 или 0 на микроконтроллер.
извините, это я просто глумился. Не о том беспокоитесь. Заботиться нужно о решении реальной задачи (пусть даже с целью только обучения). Ничего не произойдет если без конца долбить digitalWrite с одним и тем же значением. Как выше написали "порт выставлен в 1, это значит, что он выставлен в 1". Добавить нечего
та нифига не произойдет, это равносильно что писать в переменную.
о каком износе может идти речь?
У ячейки памяти износа нет?
Стоит больше заботиться об износе програмиста, чем тех ячеек памяти RAM которые меняет его программа
вот флэш память программ (10000 циклов ресурс) и eeprom (100000) о них заботиться стоит
У ячейки памяти износа нет?
у меня встречный вопрос. покажите мне ОЗУ, которое убилось банальным перезаписыванием в ней информации. На устройстве скорее текстолит войдет в полураспад, нежели озу износится.
у меня встречный вопрос. покажите мне ОЗУ, которое убилось банальным перезаписыванием в ней информации. На устройстве скорее текстолит войдет в полураспад, нежели озу износится.
если учесть, что речь идёт не об ОЗУ, а о состоянии порта, то проблема износа приобретает потусторонний смысл.