Вс ноя 08, 2015 20:57:07
Вс ноя 08, 2015 22:16:18
Пн ноя 09, 2015 05:00:54
Пн ноя 09, 2015 06:24:24
А если проц завис, то может быть такая ситуация, что он не уйдет в обработчик прерывания WDT?Если не ошибаюсь, у некоторых контроллеров AVR перед тем как "собака" перезапустит контроллер, можно уйти в обработчик прерывания WDT
Пн ноя 09, 2015 06:57:34
Пн ноя 09, 2015 07:31:34
Пн ноя 09, 2015 11:27:37
Вт ноя 10, 2015 00:31:55
Z_h_e писал(а):Кстати. Поглядел структурную схему расширенного WDT и кое-что почитал
Пн май 16, 2016 13:49:47
Ср май 18, 2016 10:15:16
Ср май 18, 2016 15:29:43
Нужно устанавливать так, чтобы его переполнение возникало реже чем Вы сбрасываете собаку.electronik_tver писал(а):Делитель WDT устанавливал и больше и меньше
Если с прерыванием, то нужен обработчик его.electronik_tver писал(а): и с прерыванием WDT и без
Ср май 18, 2016 22:14:41
dandan писал(а):Если код такой, появляются очень странные глюки:
Ср май 18, 2016 22:40:48
Я думаю даже не следует использовать, вроде рабочую конструкцию, когда перед запретом прерывания добавляется доп.команда. Вероятно лучше всего будет все-таки уходить на вектор прерывания. Если прерывание не обслуживается в коде совсем, то тогда по вектору прерывания установить команду RET. Если обработчик прерывания иногда нужен, то перед сном, можно установить флаг T, а самом начале обработчика прерывания установить конструкцию вроде следующей:YS писал(а):Я много думал. У меня есть подозрение, что при пробуждении МК...
obr_preriv:
BRTS PC+2
ret
...
...
...
reti
Чт май 19, 2016 09:00:13
чтобы переполнение возникало реже чем Вы сбрасываете собаку
Сбросьте собаку в начале программы и сразу установите его предделитель
то нужен обработчик его
Протеус пишет много разных сообщений. И про собаку тоже пишет
Чт май 19, 2016 10:28:25
Чт май 19, 2016 12:06:18
Да нет там ничего хитрого. Запускаете Вашу программу в симуляции и шагаете. Шагнули - поглядели состояние важных регистров, еще раз шагнули - еще посмотрели.electronik_tver писал(а):Честно я не умею делать пошаговую отладку, у меня недостаточно опыта
Ну как же сразу то, сначала у Вас настройка предделителя генератора, потом таймеров, по факту еще в код встрояются скрытые команды, типа установка указателя стека и фиг знает чего еще там автокод делает. Но это по идее все мелочи, а вот функция lcd_init(16);, которая тоже стоит до настройки предделителя, возможно использует временные задержки.electronik_tver писал(а):В начале программы как раз стоит сброс собаки и установка предделителя:
Обязательно проверьте, что товарищ YS говорит.YS писал(а):electronik_tver, fuse-биты контроллера верно выставлены?
Он же еще и время напишет, когда это происходит.electronik_tver писал(а):Да пишет и как раз их я и читаю, я прекрасно понимаю что сброс произошел от переполнения WDT
Чт май 19, 2016 15:47:35
fuse-биты верно выставлены?
еще и время напишет
по поводу пошаговой отладки
сначала у Вас
Чт май 19, 2016 16:33:37
Лично я не знаю. Но дам хороший совет - не пользуйтесь автокодом, иначе ничему не научитесь.electronik_tver писал(а):а CVAVR позволяет пошаговую отладку делать?
Чт май 19, 2016 19:48:11
не пользуйтесь автокодом, иначе ничему не научитесь
Чт май 19, 2016 19:56:40
пока только использование автокода и позволяет мне программировать.