Сброс одного контроллера другим

CEBKACooler
Offline
Зарегистрирован: 14.01.2014

Тут такое дело. Купил 2 контроллера - мега2560 и про мини328 5В. Планировалось, что мини будет обрабатывать сигнал с пульта и сбрасывать мегу. Попробывал 2 сбособа - не один не работает. 

первый такой: с порта мини сигнал меняется с LOW на HIGH, тем самым вызывая прерывания у меги. В прерывание вызвана функция програмного сброса 

1 void(* resetFunc) (void) = 0; // Reset MC function
2  
3 resetFunc(); //вызов

Работает непонятно как. Срабатывает только с раза 10 нажатия на пульте. Я думаю, что сказывается использование delay у меги, хотя по идее он должен его игнорить.

второй метода такой: один из портов я подключаю к ножке reset(у меги и мини объеденены),, и когда нужный сигнал прихоидт с пульта, на порту становится значение LOW, что другими словами земля, которая и должна сбрасывать оба контроллера. Но и тут ничего не работает.

Подскажите, как можно сбрасывать мегу другим контроллером?

CityCat
CityCat аватар
Offline
Зарегистрирован: 13.06.2013

CEBKACooler, земля у обоих контроллеров соединена?

А про Watchdog вы слышали?

toc
Offline
Зарегистрирован: 09.02.2013

CEBKACooler,
1. в документации написано, что нельзя сбрасывать чип с помощью его же вывода притянутого к земле. То есть ваш второй вариант должен работать если удалить связь с ножкой reset на 328mini.
2. лучше используйте ватчдог.