Официальный сайт компании Arduino по адресу arduino.cc
КАК ЗА RESETить АРДУИНО ПОСЛЕ 15 минут РАБОТЫ.
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
Ср, 19/04/2017 - 15:23
Нужно чтобы через 15 мин. происходил сброс.
Ну, проверяйте в lopp (millis() >= 900000ul) и как только стало истиной, передайте управление на нулевой адрес.
На нулевой адрес это правильно. Но многие не знают как на Arduino Это сделать?
На нулевой адрес это правильно. Но многие не знают как на Arduino Это сделать?
те, кто не знает - цепляют пин на RESET
Этот ответ понятен - цеплять пин на сброс. Меня интересует как сделать программным способом переход на 0 адрес. Типа для 580вм80а "JMP 00H"
Спасибо. Пока писал - уже ответили.
Типа для 580вм80а "JMP 00H"
В AVR ресет всё по тому же адресу :)
Этот ответ понятен - цеплять пин на сброс. Меня интересует как сделать программным способом переход на 0 адрес. Типа для 580вм80а "JMP 00H"
Спасибо. Пока писал - уже ответили.
наверное так и писать:
Только вот перейти на 0 и сделать ресет - разные вещи. После перехода переферия останится как есть, а не установится по сбросу. Вот собственно зачем ногу на ресет заводят, но там тоже не просто.
Только вот перейти на 0 и сделать ресет - разные вещи. После перехода переферия останится как есть, а не установится по сбросу. Вот собственно зачем ногу на ресет заводят, но там тоже не просто.
на спутниках три типа ресета приходится делать, интересно на AVR это как реализуется?
Ну как еще один вариант использовать вызов сторожевого таймера.
На нулевой адрес это правильно. Но многие не знают как на Arduino Это сделать?
Это уже столько раз обсуждалось, что Вы наверное, имели в виду "многие не умеют набрать в окне поиска сдлва "Программный ресет""
Ну как еще один вариант использовать вызов сторожевого таймера.
Дак стандартный загрузчик его не сбрасывает ведь, и будет висеть, моргать и ребутится. Вощем как ни крутись, а нада писать правильный код чтоб стабильно работало. И схемотехнику грамотную. А ребут делать один раз и навсегда ;)
ПС. Я из некоторых нано уже кнопки ребута повыпаивал. А нафига они если не используются?
ПС. Я из некоторых нано уже кнопки ребута повыпаивал. А нафига они если не используются?
и, как ты перезапускаешь свою дуино? блок питания выдёргиваешь?
Нужно чтобы через 15 мин. происходил сброс.
чем вызвана такая стабильность сброса??? Вероятностью повисания в течении этого времени? так до программного ресета можно и не дожить.
Нужно что-то на подобии супервайзера, к примеру 555й - если не получен импульс сброса в течении Х сек с момента последнего сброса, на выходе логический сигнал сброса (одновибратор). На вход ФВЧ первого порядка от повисания ноги МК, как управление ресетом одновибратора.
В общих чертах так, в деталях нужно думать или искать готовые решения, включая спец микрухи заточенные под эту задачу.
ПС. Я из некоторых нано уже кнопки ребута повыпаивал. А нафига они если не используются?
и, как ты перезапускаешь свою дуино? блок питания выдёргиваешь?
А зачем перезапускать? Работает себе, чего его ребутить понапрасну. Ну питание выключится когда надо выключить устройство, включитс когда надо.. Как мы дома телевизор и холодильник ребутим. Вот дето и дуню так. А при прошивке нана сама ребутится. Вот кнопка и не нужна вобще.
Сторожевой таймер ставил всеравно через какоето время завис.
void setup() {
}
Может на 555 спаять таймер сброса , ипусть ресетит через время N минут. Но это крайней вариант. Хочется чтото внутри дуни , дописать что то в скечи . Кто знает как это сделать , дописать. Помогите.
А зачем перезапускать?
Ну, а если хочется сделать блинк без loop и без циклов?
Я создал предыдущую тему: (сервоприводы работают 20-25 минут после зависают) но там что то нет обсуждения, прилось создать другую.
ВОТ ЭТА ТЕМА:
Суть программы , с копьютера по COM порту идут данные координаты Х и У , ардуино их получает и переводит в градусы поворота сервоприводов от 0 - 54 , все роботает нормально , но проходит 20-25 минут сервы могут завернуться кудато в сторону, а могут и нет , и все, происходит зависание сервоприводов, хотя ТХ мигает то есть данные с компа идут, нажимаю RESET на ардуинке опять начинает работать нормально примерно 20-25 мин. В ЧЕМ МОЖЕТ БЫТЬ ДЕЛО?
Вот скеч.
#include <Servo.h>
Servo servo1;
Servo servo2;
int x=27;
int y=20;
int ledPin = 13;
String datas;
String readString;
void setup() {
pinMode(ledPin, OUTPUT);
Serial.begin(115200);
servo1.attach(10);
servo2.attach(11);
}
void loop() {
if(Serial.available() > 0) {
//datas = Serial.read();
char c = Serial.read();
readString += c;
if(readString.indexOf("coordinate") >=0){
x=Serial.read();
delay(3);
y=Serial.read();
}
}
servo1.write(x);
servo2.write(y);
}
Я создал предыдущую тему:
И что?
там что то нет обсуждения
Как нет? Я Вам там сказал как нужно выкладывать скетч и ссылку дал. Вы на это наплевали. И чего Вы ждёте? Пока скетч не будет выложен как положено, его на 90% и читать-то никто не будет.
Вы плюёте на правила форума (в которые Вас прямо носом ткнули), а форум плюёт на Вас - третий закон Ньютона никто не отменял.
прилось создать другую.
Я создал предыдущую тему:
И что?
там что то нет обсуждения
Как нет? Я Вам там сказал как нужно выкладывать скетч и ссылку дал. Вы на это наплевали. И чего Вы ждёте? Пока скетч не будет выложен как положено, его на 90% и читать-то никто не будет.
Вы плюёте на правила форума (в которые Вас прямо носом ткнули), а форум плюёт на Вас - третий закон Ньютона никто не отменял.
прилось создать другую.
исправил, сразу не понял , что код надо так вставлять.
Как минимум после строки 25 (до закрытия if) надо добавить
readString="";
А углы в каком формате передаются?
Углы=координатом Х и У.
Мне надо что бы ресет произошел через 20 минут.
Нафик вам ресет, если вы не будете память переполнять?
Я уже не знаю какое решение предпренять. Вижу пока ресет каждые 20 минут. Тогда ардуинка работает сервы не зависают.
Я уже не знаю какое решение предпренять. Вижу пока ресет каждые 20 минут. Тогда ардуинка работает сервы не зависают.
Как минимум после строки 25 (до закрытия if) надо добавить
readString="";
Т.е. это пробовать не собираетесь...
))))
Не, ну смотрите. Вы в readString только и делаете что добавляете все новые и новые пришедшие символы. Вот память и заканчивается! okta дело говорит.
Вставил readString=""; . Сеичас провожу тест. Пока работает 28 мин.
50 минут . Работает. Я думаю проблема решилась. СПАСИБО okta , Logik.
Ок. А ведь был шанс пройти Дао Костылей. ))
Смотрите - сделали ребут через 15мин. Значить раз в 15мин контролер на несколько секунд, пока ребутится, не принимает сигналы с сериала и команды теряются. Не беда костыль костылем подпираем - делаем проверку, услышала ли ардуина команду, если услышала в ответ отправит чегото. В конце концев оно както там заработает, по крайней мере лучше чем было, но глюки изредка всеравно будут оставатсь (и добавятся новые добавленные в процессе борьбы), а если команды пойдут чаще, то память закончится раньше чем ребут наступит и проблема вернется.
Вот собственно в таком состоянии находится практически весь используемый нами софт (((
Ваш случай - отличный простой пример типичной проблемы.
Я рад и доволен! 2ч21м еще работает, не каких глюков. до вечера по тестирую. Я думаю эта проблема исчерпана. Теперь можно собирать свой проект до кучи. Доделывать корпус и запихивать все туда. Да еще микрофон надо сделать направленным.
Нужно что-то на подобии супервайзера, к примеру 555й - если не получен импульс сброса в течении Х сек с момента последнего сброса, на выходе логический сигнал сброса (одновибратор). На вход ФВЧ первого порядка от повисания ноги МК, как управление ресетом одновибратора.
В общих чертах так, в деталях нужно думать или искать готовые решения, включая спец микрухи заточенные под эту задачу.
Когда еще только знакомился с дуиной и не знал "сторожевого пса", замутил от 555(1006), каждую секунду светик мигает, если не мигнул, через пять секунд аппаратный сброс. Девайс уж года три работает, продукты сохраняет.))))
Когда еще только знакомился с дуиной и не знал "сторожевого пса", замутил от 555(1006), каждую секунду светик мигает, если не мигнул, через пять секунд аппаратный сброс. Девайс уж года три работает, продукты сохраняет.))))
ОФФТОП
Ну, я сам не силен в программировании, по этой причине часто берусь за паяльник, по этой же причини читаю топики. Иногда, полезное узнаешь, конечно чаще мусор, его не менее 90%. Несколько скуден по функционалу данный ресурс, не нашел способ настроить фильтр поиска по топикам во вкладке следить в профиле. Да и отметить наиболее заинтересовавшие посты не представляется возможным. Для тех мелочей, что я ваяю, программных знаний вполне достаточно, а вот аппаратная сторона в купе со слесаркой убивает массу времени. Но мне, намного приятнее держать паяльник, чем отлавливать баги в моем недокоде (даром что рабочем). Мне проще на RC цепях с компаратором организовать Reset по условию. Правда теперь появилась задача с управлением частотным преобразователем и программным ПИД регулятором, где обязательно потребуется этот пес... Все же лепить обвязку вокруг корпуса намного интереснее, чем ЧеПатать сотни строк, но без последнего, к сожаления, никак.
читаю топики. Иногда, полезное узнаешь, конечно чаще мусор, его не менее 90%.
слесаркой убивает массу времени.
приятнее держать паяльник, чем отлавливать баги
. Все же лепить обвязку вокруг корпуса намного интереснее, чем ЧеПатать сотни строк,
О да! (( От мысли про корпус просто рвота.
последние 2 корпуса были из обувной губки БУ :)
))) Возьму на заметку. А я ардуино мини иногда в коробочку от тиктака засовую.
))) Возьму на заметку. А я ардуино мини иногда в коробочку от тиктака засовую.
если нужно побольше, но дорого зараза 60руб и выше