Вопросы чЯйника

Раздел начинающих пользователей
Правила форума
В песочнице можно спрашивать когда незнаешь где спросить.
В песочнице нелзя посылать в гугл
В песочнице можно задавать любой вопрос, но на него могут и неответить.
Песочница для тех, кто начинает свои вопросы с защиты чайников от пинков.
В песочницу будут перетаскиваться вопросы неполучившие ответа.
Песочница - попытка навести порядок.
На песочницу большие надежды.

Re: Вопросы чЯйника

Сообщение Taska (Максим) » 07 дек 2017, 10:13

Я просто переделал, прогу. После срабатывания собаки происходит сброс мы читаем бит WDRF, если он равен 1, то зажигаем диоды, считываем еепром, плюсуем значение и опять записываем в еепром.
Аватар пользователя
Ник: Taska
Имя: Максим
(Кривой Рог)
Легенда
Легенда
Информация о пользователе

Re: Вопросы чЯйника

Сообщение Прохожий (Прохожий) » 07 дек 2017, 10:19

Сам проект где можно посмотреть? :)
Ник: Прохожий
Имя: Прохожий
Ученик
Ученик
Информация о пользователе

Re: Вопросы чЯйника

Сообщение Taska (Максим) » 07 дек 2017, 10:31

Что на него смотреть все как у тебя, самое главное изменить atmega32.FCD.
//Initialise="MCUCSR=0x00;\n\twdt_disable();\n"- было.
Initialise="\n\twdt_disable();\n" - стало.
Ну и опять же не обошлось без помощи нашей Бабули, ей спасибо.
У вас нет доступа для просмотра вложений в этом сообщении.
Аватар пользователя
Ник: Taska
Имя: Максим
(Кривой Рог)
Легенда
Легенда
Информация о пользователе
Вернуться наверх

Re: Вопросы чЯйника

Сообщение Прохожий (Прохожий) » 07 дек 2017, 11:04

Спасибо,помог разобраться :) Дело оказалось совсем не во вставках на Си :)
И так, сбросить выборочно бит WDRF (перезагрузка по ватчдогу) в регистре MCUCSR так и не удалось. На практике, у меня вышло так, что при нормальной работе бит WDRF ноль. При срабатывании ватчдога он устанавливается в 1, которую сбрасываем или отключением по питания (не забываем, что контроллер некоторое время живёт за счёт электролитов) или программно всего регистра через MCUCSR = 0x00;

В общем вопрос. Можем ли мы сбрасывать MCUCSR по-битно?
Ник: Прохожий
Имя: Прохожий
Ученик
Ученик
Информация о пользователе
Вернуться наверх

Re: Вопросы чЯйника

Сообщение andrewproffi (Андрей) » 07 дек 2017, 16:18

работа с битами...
MCUCSR AND= ~ (1<< WDRF);
Аватар пользователя
Ник: andrewproffi
Имя: Андрей
(Томск)
Разработчик
Разработчик
Информация о пользователе
Вернуться наверх

Re: Вопросы чЯйника

Сообщение Прохожий (Прохожий) » 07 дек 2017, 16:49

Делал такое, единицу так и не записал... хотя завтра проверю ещё раз :)
MCUSR &= ~(1<<WDRF);
А так то получается круто конечно :) Если пользоваться этими данными причину сбоев выяснять гораздо проще :) Собака реально считается только как собака (WDRF: Watchdog Reset Flag), reset считается тоже как reset (EXTRF: External Reset Flag), отключение питания, как отключение питания (PORF: Power-on Reset Flag), а вот контроль порога по питанию, при занижении питания ниже порога, считался сам по себе, но когда жмём собаку, сколько к ней, столько же и к нему плюсуется :)
Важно! При подсчёте занижения напряжения питания относительно порога, важно, что бы частота у МК была минимальная. А то на кварце 16МГц его колбасило ещё до порога :) Пришлось на внутренний генератор 1МГц перейти :)
Ник: Прохожий
Имя: Прохожий
Ученик
Ученик
Информация о пользователе
Вернуться наверх

Re: Вопросы чЯйника

Сообщение andrewproffi (Андрей) » 08 дек 2017, 03:18

Прохожий писал(а):Делал такое, единицу так и не записал... хотя завтра проверю ещё раз :)
MCUSR &= ~(1<<WDRF);

эта запись для установки бита в НОЛЬ
для установки в единицу:
MCUSR |= (1<<WDRF);
Аватар пользователя
Ник: andrewproffi
Имя: Андрей
(Томск)
Разработчик
Разработчик
Информация о пользователе
Вернуться наверх

Re: Вопросы чЯйника

Сообщение Прохожий (Прохожий) » 08 дек 2017, 06:59

Привет, Андрей :) ( ты тот Андрей (Radiosoft)???...) :
В общем MCUCSR |= (1<<WDRF); на Atmega_32A не записывает единицу. Ставил в цикле, от кнопки,в этом же цикле считывал. Есть у меня такое предположение, что по-битно в регистр MCUCSR ни записать, ни стереть, ничего нельзя. Может быть при старте выставился как выставился, а мы только скидываем целиком, когда по-пользовались :) Регистр так-то информационный :) Если кто-то сможет проверить на своём железе, было бы здорово :)
Ник: Прохожий
Имя: Прохожий
Ученик
Ученик
Информация о пользователе
Вернуться наверх

Re: Вопросы чЯйника

Сообщение andrewproffi (Андрей) » 08 дек 2017, 07:34

Привет, тот самый.
согласно даташиту его биты доступны как для чтения так и для записи пользователем, но тонкостей не знаю, не пробовал.
У вас нет доступа для просмотра вложений в этом сообщении.
Аватар пользователя
Ник: andrewproffi
Имя: Андрей
(Томск)
Разработчик
Разработчик
Информация о пользователе
Вернуться наверх

Re: Вопросы чЯйника

Сообщение Прохожий (Прохожий) » 08 дек 2017, 09:18

andrewproffi писал(а):Привет, тот самый.
согласно даташиту его биты доступны как для чтения так и для записи пользователем, но тонкостей не знаю, не пробовал.

Так я сюда за советом и обратился, что у меня эти биты не записываются :) Вот, думаю, может ещё кто в железе посмотрит и своё мнение скажет...всякое бывает :) Вот парни подсказали, что нужно, оказывается, в самом фловкоде это дело подправить по атмеге_32...подправил, уже пошло веселее :)


MCUCSR
Atmega_32A. 1МГц тактовая от внутреннего генератора (16МГц на кварце не позволяли уйти за предел 4 Вольта при занижении питания).
Перед каким либо действием в программаторе записывал 00 в соответствующие ячейки EEPROM (по умолчанию пишутся единицы, влазить в конфиг программатора не хотел). С отключением питания соответственно, поэтому Power-on Reset Flag всегда не меньше единицы.

WDRF: Watchdog Reset Flag BORF: Brown-out Reset Flag EXTRF: External Reset Flag PORF: Power-on Reset Flag
5 включений питания
00 05 00 05
5 активаций собаки
05 01 00 01
5 нажатий резет
00 01 06 01
5 занижений питания ниже установленного фьюзами порога 4В
00 06 00 01
Ник: Прохожий
Имя: Прохожий
Ученик
Ученик
Информация о пользователе
Вернуться наверх

Пред.След.

Вернуться в ПЕСОЧНИЦА

Кто сейчас на форуме

Пользователь просматривает форум: нет зарегистрированных пользователей