Страница 2 из 2

Re: Переключение режима кнопкой.

Добавлено: Вс окт 23, 2016 15:23:02
Demiurg
Парень, я допускаю, что очень мало знаешь про МК, толком ничего не читал, решил сразу сходу начать. Чтож, попробую последний раз. У МК есть сторожевой таймер, который сбрасывает МК, если он зависнет. WatchDog. Для того чтобы не было незапланированного сброса по сторожевому таймеру, его нужно периодически сбрасывать командой wdr. В зависимости от МК, сторожевой таймер включается фьюзами, либо программно. Время можно настраивать. Смотрим в даташит.
Мы не знаем, какой у вас МК. Представим, что у вас МК, в котором сторожевой включается фьюзами. По умолчанию, без настроек, время до сброса 16 мс. В программе у вас используются циклы временных задержек. А теперь смотрим на 16 мс и 100 мс и так далее в вашей программе. Команды сброса сторожевого таймера я в вашей программе не вижу.
Пы.Сы. Вижу что информация - не в коня корм. Потому, пожалуй, наверное, отпишусь от темы, потому как ТС ничего не делает для того, чтобы разобраться. Самому в первую очередь. По советам участников. Удачи.

Re: Переключение режима кнопкой.

Добавлено: Вс окт 23, 2016 16:10:50
sTRog
МК у меня - attiny 13A. Если из кода я убираю - обработчик кнопки - он работает как часы, несмотря на задержки в циклах. Как только стоит добавить обработчик кнопки - он считает, что на ножку подают питание и переключает режим, хотя ножка отвязана. На этой ножке переодические появляется напряжение раз в секунду, затем падает на секунду, хотя в коде я нигде не давал команды на подачу напряжение на эту ножку.
И если программа зависает - то после перезапуска, она и начинать должна с начала кода. А микроконтроллер в моем случае подолжает работать не останавливаясь, просто переключаясь переодические с одного режима на другой.
Т.е. если бы дело было в WatchDog - то мой мк работал только в одном режиме и не совсем корректно. А он работает в двух, хотя я их не переключаю.

Re: Переключение режима кнопкой.

Добавлено: Вс окт 23, 2016 16:18:14
Demiurg
Секундные импульсы тоже не могут ниоткуда взяться, может у вас на макетке выводы меж собой замыкают. Вы пробовали свою программу в симуляторе проверять?

Re: Переключение режима кнопкой.

Добавлено: Вс окт 23, 2016 16:54:39
sTRog
Я вытравил плату и все это припаяно на ней, перемычей нет - проверял, думаю проблема либо в коде, либло в МК, поэтому я и выложил код, чтобы узнать есть ли в нем ошибки, которые могут вызывать данную проблему.

Re: Переключение режима кнопкой.

Добавлено: Вс окт 23, 2016 17:10:15
Demiurg
Попробуйте отключить от МК все нагрузки. Проверять светодиодами сигналы.

Re: Переключение режима кнопкой.

Добавлено: Вс окт 23, 2016 19:37:04
sTRog
Т.е. в коде ошибки нет, которая могла бы сие вызывать?