Технический форум по робототехнике.
Alim » 13 авг 2012, 09:34
Всем Привет.
Необходимо перезагружатьть микроконтроллер по запросу через UART.
Как это можно организовать?
Romikgy » 13 авг 2012, 09:56
через watchdog
Alim » 13 авг 2012, 11:39
А других вариантов нет?
а то с watchdog'ом не работал ни разу.
Добавлено спустя 7 минут 39 секунд:
напримир после приема кокого-нибудь символа на ножку reset подать 0
(Так вообще можно сделать?)
RootAdmin » 13 авг 2012, 11:57
Да почему нельзя. Можно.
Но может проще "выпустить" процессор из бесконечного цикла? Добежит до конца - и начнет заново.
boez » 13 авг 2012, 13:44
Если это авр - можно перейти на нулевой адрес. Но это будет не совсем настоящий reset. Настоящий - или заводить ногу проца ему же на ресет, или ватчдогом.
RootAdmin » 13 авг 2012, 14:23
Ну да, регистры не почистятся.
dccharacter » 13 авг 2012, 15:19
В STM32 есть команда ресета проца. Использовал в отладке ПИД-а - прога с компа сама тьюнит коэффициенты и ресетит проц для тестирования.
legion » 14 авг 2012, 20:17
Прыгать на нулевой адрес, в начале инициализации мк принудительно обнулять регистры и ОЗУ. Делов-то на пару байт. Еще регистры I/O вычистить, которые используются в коде, да.
dccharacter » 14 авг 2012, 20:41
Или завести вотчдог и подождать.
Duhas » 14 авг 2012, 20:41
кажется мне что вочдог люто проще других вариантов.. да и научиться им пользоваться никак не вредно
dccharacter » 14 авг 2012, 20:49
Alim » 15 авг 2012, 14:55
Всем большое спасибо.
Ссылок на корректную инфу побольше бы.
dccharacter » 15 авг 2012, 15:15
1. Ссылок на конекретный микроконтроллер побольше бы
2. ссылка на конкретную инфу:
www.google.com
RootAdmin » 15 авг 2012, 16:25
Да-да. Какой контроллер и какой язык?
Alim » 16 авг 2012, 13:21
atmega 16/8535/32
C/C++