Сброс одного контроллера другим
- Войдите на сайт для отправки комментариев
Тут такое дело. Купил 2 контроллера - мега2560 и про мини328 5В. Планировалось, что мини будет обрабатывать сигнал с пульта и сбрасывать мегу. Попробывал 2 сбособа - не один не работает.
первый такой: с порта мини сигнал меняется с LOW на HIGH, тем самым вызывая прерывания у меги. В прерывание вызвана функция програмного сброса
1 |
void (* resetFunc) ( void ) = 0; // Reset MC function |
2 |
3 |
resetFunc(); //вызов |
Работает непонятно как. Срабатывает только с раза 10 нажатия на пульте. Я думаю, что сказывается использование delay у меги, хотя по идее он должен его игнорить.
второй метода такой: один из портов я подключаю к ножке reset(у меги и мини объеденены),, и когда нужный сигнал прихоидт с пульта, на порту становится значение LOW, что другими словами земля, которая и должна сбрасывать оба контроллера. Но и тут ничего не работает.
Подскажите, как можно сбрасывать мегу другим контроллером?
CEBKACooler, земля у обоих контроллеров соединена?
А про Watchdog вы слышали?
CEBKACooler,
1. в документации написано, что нельзя сбрасывать чип с помощью его же вывода притянутого к земле. То есть ваш второй вариант должен работать если удалить связь с ножкой reset на 328mini.
2. лучше используйте ватчдог.