Итог - при включении светик горит 16сек, потом начинает мигать. После срабатывания ватчдога - мигает часто-часто - то есть типичный случай бесконечного ресета.
Этот же самый бутлоадер в Нано - работает!!! ватчдог ресетится как положено.
Вывод - налицо несовместимость оптибута с атмегой328 с внутренним клоком 8МГц. Если это так = давно бы куча других ардуинщиков столкнулась бы с этим. Вопрос - почему я не вижу в гугле десятков подобных жалоб?
Варианты:
А) - я идиот. Уже готов согласится, при условии, что кто0нибудь обьяснит, в чем именно.
Б) - мне попалась бракованая партия контроллеров. Не исключено. Проверить просто - нужна другая папртия. Может кто-нибудь не пожалеет получаса, повторит перечисленные выше пп 1-5 и напишет свой результат?
А с родным нановским загружались? Если да, то хня какая то, я голые чипы сразу на уновский перешиваю, а если без кварца то тем, что ссылался. Все без проблем шьется потом.
Вы перед загрузкой, плату как Уно выбираете?
А с родным нановским загружались? Если да, то хня какая то, я голые чипы сразу на уновский перешиваю, а если без кварца то тем, что ссылался. Все без проблем шьется потом.
Вы перед загрузкой, плату как Уно выбираете?
свежекупленная через USB прекрасно загружалась, но не работал WDT
за сегодня перепробовал уже массу загрузчиков, и штатных UNO NANO и присланные и оптибут
Давайте, по шагам. Взяли дуню, залили в нее скетч "ArduinoISP", подключили вашу нану пятью проводками, выбрали программатор "Arduino as ISP", выбрали плату "Uno" и свой порт. Дальше жмем "Записать загрузчик", у которой как программатор мигают RX,TX, на принимающей вроде на 13 пине тоже блымкает. Так делаете?
Давайте, по шагам. Взяли дуню, залили в нее скетч "ArduinoISP", подключили вашу нану пятью проводками, выбрали программатор "Arduino as ISP", выбрали плату "Uno" и свой порт. Дальше жмем "Записать загрузчик", у которой как программатор мигают RX,TX, на принимающей вроде на 13 пине тоже блымкает. Так делаете?
P/S через USB ASP не лил, не знаю.
да, только вместо дуни ArduinoISP (уже не первый раз Tiny и ProMini им много прошивал), так что здесь ошибок нет,
я думал что вдруг загрузчик надо строго через AVRDUDEPROG прошивать.
Чет сомнения берут, нахрена тогда и загрузчик нужен. Попробуйте тестером пробегитесь, может лапка где отошла, где то жаловались недавно на кривые наны.
Чет сомнения берут, нахрена тогда и загрузчик нужен. Попробуйте тестером пробегитесь, может лапка где отошла, где то жаловались недавно на кривые наны.
да не....уж сколько Robotdyn покупаю - пайка вечная, опять же - утром то работало ок, до заливки другого загрузчика, но проверю, не долго времени займет.
щас наверное USB UART напрямую подключу к пинам 0 и 1 посмотрю что получиться - проверил - не работает - светодиод TX на Nano вспыхнул пару раз на доли секунды и все....
Перепробовал все советы, перечитал кучу форумов, сносил и полностью переустанавливал Arduino IDE и драйверы, экспериментировал на трех компах.
Решение: взял optiboot_atmega328.hex последнюю версию, прошил им flash через avrdudeprog33.
Прекрасно стал загружаться со скоростью COM порта 115200, WDT заработал, причем без строк обнуления MCUSR.
Единственная проблема: после моих экспериментов в списке плат Arduino IDE исчезли платы Optiboot, файлы boards все проверил - все вроде ОК. При загрузке выбираю плату Arduino Nano/
Единственная проблема: после моих экспериментов в списке плат Arduino IDE исчезли платы Optiboot, файлы boards все проверил - все вроде ОК. При загрузке выбираю плату Arduino Nano/
Никто не подскажет как вылечить?
andycat- неделю не был на форуме, а тут такая активность :)
Насчет списка плат - насколько знаю, он определяется только записями в файле boards - так что проверяйте. У этих файлов для разных версий ИДЕ немного разный формат, так что если брали файлы из инете, они могут в вашей ИДЕ не распознаваться.
Насчет списка плат - насколько знаю, он определяется только записями в файле boards - так что проверяйте. У этих файлов для разных версий ИДЕ немного разный формат, так что если брали файлы из инете, они могут в вашей ИДЕ не распознаваться.
версия 1.8.5 и не менялась....буду ковыряться дальше....
Выкладываю как я боролся с wdt. и победил, и только по информации этой темы.
на руках есть 3 nano 2 из них промаркированны как v4.
1. одну из них делаю ArduinoISP вливанием примера.
2. к ней подключаю вторую 10-rst, 11-11, 12-12, 13-13, gnd-gnd, +5-+5.
3. в IDE1.8.1 выбираю программатор Arduino as ISP
4. в IDE выбираю плату UNO
5. в IDE выбираю Записать Загрузчик - загрузчик не записывается. ошибка.
6. в IDE выбираю плату NANO
7. в IDE выбираю Записать Загрузчик - загрузчик загружен удачно.
8. повторяю процесс с выбором платы UNO. в IDE выбираю плату UNO
9. в IDE выбираю Записать Загрузчик - загрузчик загружен удачно.
проверил работоспособность 2 кодов этой темы 30 и 51 если не ошибаюсь.
выбрав програматор AVRISP, а на програматоре по умолчанию AVRISP mkII NANO шилась только при нажатии ресета только, AVRISP без нажатия ресета шется из среды IDEv181.
проверил варианты с разными нанами, все работает.
один
#include <avr/wdt.h>
void setup() {
wdt_disable(); // бесполезная строка до которой не доходит выполнение при bootloop
Serial.begin(9600);
Serial.println("Setup..");
Serial.println("Wait 5 sec..");
delay(5000); // Задержка, чтобы было время перепрошить устройство в случае bootloop
wdt_enable (WDTO_8S); // Для тестов не рекомендуется устанавливать значение менее 8 сек.
Serial.println("Watchdog enabled.");
}
int timer = 0;
void loop(){
// Каждую секунду мигаем светодиодом и значение счетчика пишем в Serial
if(!(millis()%1000)){
timer++;
Serial.println(timer);
digitalWrite(13, digitalRead(13)==1?0:1); delay(1);
}
// wdt_reset();
}
Атмега328 , голая , прошита загрузчиком на 1Мгц от внутреннего тактирования .Все прекрасно работает с дежурной собакой. Проверено. Версия 1.8.5, MiniCore .
Проверяю работу собаки немного измененным кодом, для включения проверки замкнуть пин 8 на землю.
// modify Victor UA6EM 09.12.2018
// To activity WDT Timer Pse connect Pin8 to GND
#include <avr/wdt.h>
unsigned int timer = 0;
void setup() {
wdt_disable();
pinMode(8,INPUT_PULLUP);
Serial.begin(9600);
Serial.println("Setup..");
Serial.println("Wait sec..");
delay(1000);
if(digitalRead(8) == LOW){
wdt_enable (WDTO_8S); // Для тестов не рекомендуется устанавливать значение менее 8 сек.
Serial.println("Watchdog enabled.");
}else{
Serial.println("Watchdog DISABLE.");
}
}
void loop(){
// Каждую секунду мигаем светодиодом и значение счетчика пишем в Serial
if(!(millis()%1000)){
timer++;
Serial.println(timer);
digitalWrite(13, digitalRead(13)==1?0:1); delay(1);
}
}
Проверяю работу собаки немного измененным кодом, для включения проверки замкнуть пин 8 на землю.
Что то Вы сложное затеяли. Если не дружит с загрузчиком, сразу вечный перезагруз. Достаточно просто включить. У меня так было.
Если ушла в постоянный перезагруз как шить без программатора?
Ну или стрельбище устраивать, выставлять делей в 5 секунд в сетапе и попадать в окно при заливке скетча, а здесь снял перемычку, передернул плату и перешивай любой скетч
Вспоминаем 17 мгновений, Штирлиц умел не только зайти, но и выйти ))) (из темы)
Проверяю работу собаки немного измененным кодом, для включения проверки замкнуть пин 8 на землю.
Что то Вы сложное затеяли. Если не дружит с загрузчиком, сразу вечный перезагруз. Достаточно просто включить. У меня так было.
А сложное это Влад затеял, это ж надо же так замутить с условными выражениями , я о состоянии пина 13 (строка 29 скетча), что пришлось лезть в классику (стр.55 РиК)
Если ушла в постоянный перезагруз как шить без программатора?
отлично все шьется, 8 сек до первого срабатывания собаки более чем достаточно для перешивки.
Для проверки ватчдога достаточно обыкновенного блинка, например мой вариант в сообщении #3 этой темы
Мы люди аульские простые, зачем создавать себе сложности если их можно не создавать, а один дюпон под руками всегда имеется, ткнул перемычку - проверяю, не ткнул - обычная ардуинка и, делай с ней что хошь )))
Я этого НЕ ПИСАЛ!!!! Я, когда кому-то, что-то советую, то авторский код НЕ МЕНЯЮ, без необходимости.
И millis()%1000 - совсем не мой стиль, неужели не видно???
И, даже с учетом сказанного, я, все равно, не могу понять, почему мне авторство приписали?
Не надо - "мопед не мой".
Жду твой мопед про оптибут!
Чего хотелось бы?
Устанока аддона чтобы появились платы с оптибутом и там были все варианты, в том числе и с кварцами в 20 мегагерц и со всеми скоростями компорта
А вообще loop там интересный, можно включать в песочницу и объяснять новичкам почему именно так написана программа, к примеру - delay(1)
я с интересом бы послушал, что именно ты будешь обьяснять новичкам.
На мой скромный взгляд - строка 6 совсем не образец для подражания. Как уже сказали. вместо тернарного оператора правильнее было бы поставить отрицание, а делей в 1мс и вовсе лишний.
А вообще loop там интересный, можно включать в песочницу и объяснять новичкам почему именно так написана программа, к примеру - delay(1)
я с интересом бы послушал, что именно ты будешь обьяснять новичкам.
На мой скромный взгляд - строка 6 совсем не образец для подражания. Как уже сказали. вместо тернарного оператора правильнее было бы поставить отрицание, а делей в 1мс и вовсе лишний.
При строке - if(!(millis()%1000)) ?
Вы точно так думаете?
А если тактовая процессора 1700 Mhz Ваше мнение не изменится? )))
Писать на С надо жеж аппаратно независимо, не так ли?
Писать на С надо жеж аппаратно независимо, не так ли?
Вот это полная херня написана! Писать для микроконтроллера, хоть на С, хоть на Паскале, хоть на Фортране - НЕВОЗМОЖНО "аппаратно независимо".
Идея аппаратно независимого кода, и все эти "стандарты" (кстати запрещающие пользоваться union, например) рождены для огромных, необозримых проэктов, используемых и переносимых на новые платформы, и для коллективной разработки.
------------------------
Теперь про смешной код: ЕЩЕ РАЗ: он не мой!
В этом коде delay(1) - необходим, потому, что millis()%1000 останется равным 0 в течении 1 мс, а цикл - значительно короче.
Попробуй поменять время собаке на меньшее.
Попробовал 1сек - без разницы.
Упростил тест до предела, чтобы эксперимент был максимально чистым:
1. Взял новую (еще ни разу не шитую) атмегу328р
2. Собрал на макетке классическую обвязку
3. Прошил оптибутовский загрузчик с фьзами 0xE2 0xDE 0x05
4. подключил к 7 пину светодиод
5. 3алил мега-простой скетч
Итог - при включении светик горит 16сек, потом начинает мигать. После срабатывания ватчдога - мигает часто-часто - то есть типичный случай бесконечного ресета.
Этот же самый бутлоадер в Нано - работает!!! ватчдог ресетится как положено.
Вывод - налицо несовместимость оптибута с атмегой328 с внутренним клоком 8МГц. Если это так = давно бы куча других ардуинщиков столкнулась бы с этим. Вопрос - почему я не вижу в гугле десятков подобных жалоб?
Варианты:
А) - я идиот. Уже готов согласится, при условии, что кто0нибудь обьяснит, в чем именно.
Б) - мне попалась бракованая партия контроллеров. Не исключено. Проверить просто - нужна другая папртия. Может кто-нибудь не пожалеет получаса, повторит перечисленные выше пп 1-5 и напишет свой результат?
В) - предлагайте свои варианты
что то не выходит у меня :(
Arduino Nano от Robotdyn
простой скетч:
Вываливается в бесконечный ресет :(
я правильно понимаю загрузчик необходимо прошивать?
Не поделитесь ссылочкой на скачку?
Вываливается в бесконечный ресет :(
я правильно понимаю загрузчик необходимо прошивать?
Не поделитесь ссылочкой на скачку?
Загрузчики в начале темы. Оптибутовский HEX в моем сообщении и нановский от Дракулы.
P/S То, что в Вашем скетче, это для голого МК, почитайте у Влада в постах.
Спасибо.
P/S То, что в Вашем скетче, это для голого МК,
в смысле? на любом Ардуино это должно вроде работать.
Нет?
итак прошил загрузчик
Optiboot on 32pin (SMT) CPUs (Nano, Pro Micro, etc.)
вот такой скетч заработал ОК
но у меня перестали загружаться скетчи по USB, скорость ком порта ставил на 115200
как прописано в boards
optiboot32.upload.speed=115200
что я делаю не так?
Вот здесь скорость пониже. Работает.
Вот здесь скорость пониже. Работает.
спасибо, но там частота МК 8 Мгц, с моим 16 Мгц не совместимо :(
буду дальше искать
Так на 16 обычные оптибуты нормально работают, тот же уновский из поставки.
Кинь в личку e-mail, у меня есть откомпилированный для 16 и для 8 мгц, со скоростью обмена 57600
Так на 16 обычные оптибуты нормально работают, тот же уновский из поставки.
э.... не понял, просьба разьяснить.
мне на Nano залить от UNO 16 мгц оптибутовский?
Кинь в личку e-mail, у меня есть откомпилированный для 16 и для 8 мгц, со скоростью обмена 57600
andycat2013@yandex.ru
спасибо
Именно так. В Нано залить УНО и потом всегда выбирать плату как УНО. Будет все намного лучше
P.S. два файлика отправил
мне на Nano залить от UNO 16 мгц оптибутовский?
Истинно, тот, что с IDE идет. И не париться.
загрузил UNO который штатный, не помогло, с USB не загружаются скетчи :(
прошил оптибутовский на скорость 1 мгц и скоростью обмена 9600 - все равно не работает
что же там китайцы интересно напаяли
А с родным нановским загружались? Если да, то хня какая то, я голые чипы сразу на уновский перешиваю, а если без кварца то тем, что ссылался. Все без проблем шьется потом.
Вы перед загрузкой, плату как Уно выбираете?
А с родным нановским загружались? Если да, то хня какая то, я голые чипы сразу на уновский перешиваю, а если без кварца то тем, что ссылался. Все без проблем шьется потом.
Вы перед загрузкой, плату как Уно выбираете?
свежекупленная через USB прекрасно загружалась, но не работал WDT
за сегодня перепробовал уже массу загрузчиков, и штатных UNO NANO и присланные и оптибут
https://github.com/Optiboot/optiboot
бесполезно - платка Nano категорически отказывается прошиваться через USB
RX TX не моргают при загрузке
может быть я конечно делаю что то не так ?
записываю загрузчик через Arduino IDE, выбираю нужную плату и Записать загрузчик
подключено естественно через USB ASP
после мне IDE пишет что загрузчик успешно записан.
Давайте, по шагам. Взяли дуню, залили в нее скетч "ArduinoISP", подключили вашу нану пятью проводками, выбрали программатор "Arduino as ISP", выбрали плату "Uno" и свой порт. Дальше жмем "Записать загрузчик", у которой как программатор мигают RX,TX, на принимающей вроде на 13 пине тоже блымкает. Так делаете?
P/S через USB ASP не лил, не знаю.
Давайте, по шагам. Взяли дуню, залили в нее скетч "ArduinoISP", подключили вашу нану пятью проводками, выбрали программатор "Arduino as ISP", выбрали плату "Uno" и свой порт. Дальше жмем "Записать загрузчик", у которой как программатор мигают RX,TX, на принимающей вроде на 13 пине тоже блымкает. Так делаете?
P/S через USB ASP не лил, не знаю.
да, только вместо дуни ArduinoISP (уже не первый раз Tiny и ProMini им много прошивал), так что здесь ошибок нет,
я думал что вдруг загрузчик надо строго через AVRDUDEPROG прошивать.
мысль возникла: может такое быть что производитель заложил в загрузчик инциализацию/включение USB/UART конвертера? и он тупо не включается
Чет сомнения берут, нахрена тогда и загрузчик нужен. Попробуйте тестером пробегитесь, может лапка где отошла, где то жаловались недавно на кривые наны.
Чет сомнения берут, нахрена тогда и загрузчик нужен. Попробуйте тестером пробегитесь, может лапка где отошла, где то жаловались недавно на кривые наны.
да не....уж сколько Robotdyn покупаю - пайка вечная, опять же - утром то работало ок, до заливки другого загрузчика, но проверю, не долго времени займет.
щас наверное USB UART напрямую подключу к пинам 0 и 1 посмотрю что получиться - проверил - не работает - светодиод TX на Nano вспыхнул пару раз на доли секунды и все....
причем при загрузке через USB видно что контроллер перезагружается, но заливка не происходит
Итак победил я эту Arduino Nano v3 от Robotdyn.
Перепробовал все советы, перечитал кучу форумов, сносил и полностью переустанавливал Arduino IDE и драйверы, экспериментировал на трех компах.
Решение: взял optiboot_atmega328.hex последнюю версию, прошил им flash через avrdudeprog33.
Прекрасно стал загружаться со скоростью COM порта 115200, WDT заработал, причем без строк обнуления MCUSR.
Единственная проблема: после моих экспериментов в списке плат Arduino IDE исчезли платы Optiboot, файлы boards все проверил - все вроде ОК. При загрузке выбираю плату Arduino Nano/
Никто не подскажет как вылечить?
Единственная проблема: после моих экспериментов в списке плат Arduino IDE исчезли платы Optiboot, файлы boards все проверил - все вроде ОК. При загрузке выбираю плату Arduino Nano/
Никто не подскажет как вылечить?
andycat- неделю не был на форуме, а тут такая активность :)
Насчет списка плат - насколько знаю, он определяется только записями в файле boards - так что проверяйте. У этих файлов для разных версий ИДЕ немного разный формат, так что если брали файлы из инете, они могут в вашей ИДЕ не распознаваться.
Насчет списка плат - насколько знаю, он определяется только записями в файле boards - так что проверяйте. У этих файлов для разных версий ИДЕ немного разный формат, так что если брали файлы из инете, они могут в вашей ИДЕ не распознаваться.
версия 1.8.5 и не менялась....буду ковыряться дальше....
платы появились теперь какая то ошибка которую не могу понять :(
Текущая выбранная плата зависит от ядра 'arduino:arduino', которое не установлено.
День добрый!
Выкладываю как я боролся с wdt. и победил, и только по информации этой темы.
на руках есть 3 nano 2 из них промаркированны как v4.
1. одну из них делаю ArduinoISP вливанием примера.
2. к ней подключаю вторую 10-rst, 11-11, 12-12, 13-13, gnd-gnd, +5-+5.
3. в IDE1.8.1 выбираю программатор Arduino as ISP
4. в IDE выбираю плату UNO
5. в IDE выбираю Записать Загрузчик - загрузчик не записывается. ошибка.
6. в IDE выбираю плату NANO
7. в IDE выбираю Записать Загрузчик - загрузчик загружен удачно.
8. повторяю процесс с выбором платы UNO. в IDE выбираю плату UNO
9. в IDE выбираю Записать Загрузчик - загрузчик загружен удачно.
проверил работоспособность 2 кодов этой темы 30 и 51 если не ошибаюсь.
выбрав програматор AVRISP, а на програматоре по умолчанию AVRISP mkII NANO шилась только при нажатии ресета только, AVRISP без нажатия ресета шется из среды IDEv181.
проверил варианты с разными нанами, все работает.
один
два
Nano стала удачно ребутиться!
Всем спасибо.
Атмега328 , голая , прошита загрузчиком на 1Мгц от внутреннего тактирования .Все прекрасно работает с дежурной собакой. Проверено. Версия 1.8.5, MiniCore .
Проверить и на 8Мгц ?
Проверяю работу собаки немного измененным кодом, для включения проверки замкнуть пин 8 на землю.
Проверяю работу собаки немного измененным кодом, для включения проверки замкнуть пин 8 на землю.
Что то Вы сложное затеяли. Если не дружит с загрузчиком, сразу вечный перезагруз. Достаточно просто включить. У меня так было.
Проверяю работу собаки немного измененным кодом, для включения проверки замкнуть пин 8 на землю.
Что то Вы сложное затеяли. Если не дружит с загрузчиком, сразу вечный перезагруз. Достаточно просто включить. У меня так было.
Если ушла в постоянный перезагруз как шить без программатора?
Ну или стрельбище устраивать, выставлять делей в 5 секунд в сетапе и попадать в окно при заливке скетча, а здесь снял перемычку, передернул плату и перешивай любой скетч
Вспоминаем 17 мгновений, Штирлиц умел не только зайти, но и выйти ))) (из темы)
Вспоминаем 17 мгновений, Штирлиц умел не только зайти, но и выйти ))) (из темы)
Весьма тонко, учитывая что один из участников темы Штирлиц. Хм...)
Проверяю работу собаки немного измененным кодом, для включения проверки замкнуть пин 8 на землю.
Что то Вы сложное затеяли. Если не дружит с загрузчиком, сразу вечный перезагруз. Достаточно просто включить. У меня так было.
А сложное это Влад затеял, это ж надо же так замутить с условными выражениями , я о состоянии пина 13 (строка 29 скетча), что пришлось лезть в классику (стр.55 РиК)
Если ушла в постоянный перезагруз как шить без программатора?
Так же, как и загрузчик заливать. Собака, она грозная, но ArduinoISP боится.
P/S 29 строку Влад похоже на автомате писал, я бы там восклицательным знаком обошелся.
Если ушла в постоянный перезагруз как шить без программатора?
Так же, как и загрузчик заливать. Собака, она грозная, но ArduinoISP боится.
P/S 29 строку Влад похоже на автомате писал, я бы там восклицательным знаком обошелся.
Как сказал бы ЕвгенийПетрович - а нахрена ))) (я о программаторе)
Если Влад на автомате такие конструкции пишет, что же он напишет на пулемёте )))
Я этого НЕ ПИСАЛ!!!! Я, когда кому-то, что-то советую, то авторский код НЕ МЕНЯЮ, без необходимости.
И millis()%1000 - совсем не мой стиль, неужели не видно???
И, даже с учетом сказанного, я, все равно, не могу понять, почему мне авторство приписали?
Не надо - "мопед не мой".
Если ушла в постоянный перезагруз как шить без программатора?
отлично все шьется, 8 сек до первого срабатывания собаки более чем достаточно для перешивки.
Для проверки ватчдога достаточно обыкновенного блинка, например мой вариант в сообщении #3 этой темы
Бывает нужно пару раз нажать "записать загрузчик" (на USBASP), но шьется всё.
Я этого НЕ ПИСАЛ!!!! Я, когда кому-то, что-то советую, то авторский код НЕ МЕНЯЮ, без необходимости.
И millis()%1000 - совсем не мой стиль, неужели не видно???
Влад, вот не люблю с тобой спорить - но этот код ты выкладывал как свой в сообщении №13. и даже millis()%1000 - там было. Вот цитата:
==========================
вот пример кода, который я ТОЬКО ЧТО проверил на голом 328 в ДИП корпусе.
Вот видео, снял и кинул на Ютуб
Вот код:
Хотя нет, Влад, прощу прощения - у ua6em в сообщении #80 другой код. Твой код в сообщении #78. Но millis()%1000 в твоем коде все же есть.
Если ушла в постоянный перезагруз как шить без программатора?
отлично все шьется, 8 сек до первого срабатывания собаки более чем достаточно для перешивки.
Для проверки ватчдога достаточно обыкновенного блинка, например мой вариант в сообщении #3 этой темы
Мы люди аульские простые, зачем создавать себе сложности если их можно не создавать, а один дюпон под руками всегда имеется, ткнул перемычку - проверяю, не ткнул - обычная ардуинка и, делай с ней что хошь )))
Я этого НЕ ПИСАЛ!!!! Я, когда кому-то, что-то советую, то авторский код НЕ МЕНЯЮ, без необходимости.
И millis()%1000 - совсем не мой стиль, неужели не видно???
И, даже с учетом сказанного, я, все равно, не могу понять, почему мне авторство приписали?
Не надо - "мопед не мой".
Жду твой мопед про оптибут!
Чего хотелось бы?
Устанока аддона чтобы появились платы с оптибутом и там были все варианты, в том числе и с кварцами в 20 мегагерц и со всеми скоростями компорта
Хотя нет, Влад, прощу прощения - у ua6em в сообщении #80 другой код. Твой код в сообщении #78. Но millis()%1000 в твоем коде все же есть.
ну значит " и про старушку снимают порнушку"... Я мог чьё-то редактировать и оставить... Стыдно до жути!!! Но ты прав.
Если ушла в постоянный перезагруз как шить без программатора?
отлично все шьется, 8 сек до первого срабатывания собаки более чем достаточно для перешивки.
Для проверки ватчдога достаточно обыкновенного блинка, например мой вариант в сообщении #3 этой темы
я твой пример пропустил мимо ушей, тады да, там 16 секунд ждёт )))
Как говорил профессор - существует 99 способов...
А вообще loop там интересный, можно включать в песочницу и объяснять новичкам почему именно так написана программа, к примеру - delay(1)
А вообще loop там интересный, можно включать в песочницу и объяснять новичкам почему именно так написана программа, к примеру - delay(1)
это ты про какой код?
не нашел ни в одном из трех кодов (твоем, моем и Дракулы) - строчки delay(1)
А вообще loop там интересный, можно включать в песочницу и объяснять новичкам почему именно так написана программа, к примеру - delay(1)
это ты про какой код?
не нашел ни в одном из трех кодов (твоем, моем и Дракулы) - строчки delay(1)
Как нет? Вот жеж она, в loop ))) (строка 6)
А вообще loop там интересный, можно включать в песочницу и объяснять новичкам почему именно так написана программа, к примеру - delay(1)
я с интересом бы послушал, что именно ты будешь обьяснять новичкам.
На мой скромный взгляд - строка 6 совсем не образец для подражания. Как уже сказали. вместо тернарного оператора правильнее было бы поставить отрицание, а делей в 1мс и вовсе лишний.
А вообще loop там интересный, можно включать в песочницу и объяснять новичкам почему именно так написана программа, к примеру - delay(1)
я с интересом бы послушал, что именно ты будешь обьяснять новичкам.
На мой скромный взгляд - строка 6 совсем не образец для подражания. Как уже сказали. вместо тернарного оператора правильнее было бы поставить отрицание, а делей в 1мс и вовсе лишний.
При строке - if(!(millis()%1000)) ?
Вы точно так думаете?
А если тактовая процессора 1700 Mhz Ваше мнение не изменится? )))
Писать на С надо жеж аппаратно независимо, не так ли?
Писать на С надо жеж аппаратно независимо, не так ли?
Вот это полная херня написана! Писать для микроконтроллера, хоть на С, хоть на Паскале, хоть на Фортране - НЕВОЗМОЖНО "аппаратно независимо".
Идея аппаратно независимого кода, и все эти "стандарты" (кстати запрещающие пользоваться union, например) рождены для огромных, необозримых проэктов, используемых и переносимых на новые платформы, и для коллективной разработки.
------------------------
Теперь про смешной код: ЕЩЕ РАЗ: он не мой!
В этом коде delay(1) - необходим, потому, что millis()%1000 останется равным 0 в течении 1 мс, а цикл - значительно короче.