Форум программистов, компьютерный форум, киберфорум
Наши страницы
Микроконтроллеры Atmega AVR
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.95/109: Рейтинг темы: голосов - 109, средняя оценка - 4.95
THI BIOST
0 / 0 / 0
Регистрация: 23.01.2010
Сообщений: 1,142
1

НедоRESET контроллера

08.08.2010, 18:32. Просмотров 19687. Ответов 45
Метки нет (Все метки)

Тут просто столкнулся - может кому полезно будет:
- железяка питается от DC/DC 12->3.3.
- напряжение питания растёт очень медленно.
- регистры не чистятся (BOD level - 2.7, но не помогает)

Если просто ресет на контроллер подать - все регистры обнуляются нормально.

(Всегда чистил регистры и память на старте, а тут обленился, почистил только память - получил граблями по лбу).
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.08.2010, 18:32
Ответы с готовыми решениями:

Статистика контроллера
Как (если вообще возможно) получить информацию о текущем состоянии контроллера, сколько байт ROMа...

Записать с контроллера на SD-карту
Гуглил. Находил. Компиллировал. Ругался. Ставил FatFS. Гуглил снова. Находил, компиллировал и снова...

Защита контроллера от статики
Подскажите способы защиты контроллера от статического напряжения. При чем искра пробивает на...

Программирование контроллера LPC368FBD100
Здравствуйте, имеется контроллер LPC368FBD100, подскажите можно ли прошить его посредством UART не...

програмная перезагрузка контроллера
Доброго времени суток всем возникла необходимость во время паботы программы перезагрузить...

45
xroymom
0 / 0 / 0
Регистрация: 24.01.2010
Сообщений: 727
08.08.2010, 18:35 2
регистры в этом случае это РОН или РВВ?
0
THI BIOST
0 / 0 / 0
Регистрация: 23.01.2010
Сообщений: 1,142
08.08.2010, 18:35 3
РОНы
0
THI BIOST
0 / 0 / 0
Регистрация: 23.01.2010
Сообщений: 1,142
08.08.2010, 18:39 4
Ну, то есть, до того питал без DC/DC - всё работало. Как впаял и подключил 12 вольт - начались глюки при включении. Сначала грешил на I2C периферию (ей тоже не хорошо при таком питании).
0
08.08.2010, 18:39
xroymom
0 / 0 / 0
Регистрация: 24.01.2010
Сообщений: 727
08.08.2010, 18:43 5
Я так понимаю ты пишешь на ассемблере? У меня файлик есть, в котором прописана инициализация стека, очистка памяти и рон, я его подключаю ко всем проектам и не парюсь по этому поводу. Сама по себе очистка РОН - 5 строчек.
Код
ldi ZL,30
clr ZH
dec ZL
st Z,ZH
brne PC-2
0
Midvid
0 / 0 / 0
Регистрация: 23.01.2010
Сообщений: 966
08.08.2010, 18:49 6
А я уже заранее готовлюсь к тому что в РОНах может быть чё угодно...
0
THI BIOST
0 / 0 / 0
Регистрация: 23.01.2010
Сообщений: 1,142
08.08.2010, 18:50 7
У меня очень давно есть макросы на данную тему :) Просто они раздельные - установка стека, чистка регистров и чистка памяти. В один прекрасный момент при копипасте очередного проекта выкинул очистку регистров и инициализацию стека (флешу чуть-чуть не хватало - это была Tiny13) - в во всех других железяках, что до сих пор работают - эта проблема ни разу не возникла (работающие железяки перед глазами).
0
swk
0 / 0 / 0
Регистрация: 22.10.2015
08.08.2010, 19:31 8
У меня давно уже в подсознании сидит - при запуске программы в разделе инициализации сразу задаю всем использованным переменным и портам значения по умолчанию или хотя бы 0, для определенности. Перед этим часто еще обнуляю память, хотя в последнее время, думаю - не стоит, раз все равно переменные чищу. Просто привык... Хоть нормальные компиляторы Паскаля обычно ругаются на непроинициализированные переменные, в которых при использовании может оказаться что угодно, привык не надеяться на это. Береженного бог бережет, а небереженного милиция стережет...
0
pspost
0 / 0 / 0
Регистрация: 17.02.2010
Сообщений: 192
09.08.2010, 19:35 9
Чувствую, что вы тут о чём-то полезном говорите, но не могу понять о чём.
Зачем чистить регистры при старте? И память? Ведь по логике первой операцией с регистром/переменной будет запись или инициализация, и только потом чтение. Откуда грабли?

Про DC-DC.
Чего напряжение питания растёт очень медленно?
0
Otikro
0 / 0 / 0
Регистрация: 26.01.2010
Сообщений: 442
09.08.2010, 19:46 10
Зачем чистить регистры при старте? И память?
В идеальном случае конечно чистить ничего не надо. Но, допустим произошел збой и контроллер перезагрузился, что тогда мы будем иметь в регистрах и памяти?
0
pspost
0 / 0 / 0
Регистрация: 17.02.2010
Сообщений: 192
09.08.2010, 20:16 11
Цитата Сообщение от Otykro
Но, допустим произошел збой и контроллер перезагрузился, что тогда мы будем иметь в регистрах и памяти?
А какая разница, программа ведь тоже запустится с начала...
0
Otikro
0 / 0 / 0
Регистрация: 26.01.2010
Сообщений: 442
09.08.2010, 20:17 12
Программа то запустится, а в регистрах и памяти мусор останется.
0
pspost
0 / 0 / 0
Регистрация: 17.02.2010
Сообщений: 192
09.08.2010, 20:32 13
Цитата Сообщение от Otykro
Программа то запустится, а в регистрах и памяти мусор останется.
А это куда делось:
Цитата Сообщение от pspost
....по логике первой операцией с регистром/переменной будет запись или инициализация, и только потом чтение.
0
stt
0 / 0 / 0
Регистрация: 03.11.2012
Сообщений: 9
09.08.2010, 20:35 14
Цитата Сообщение от pspost
Цитата Сообщение от Otykro
Программа то запустится, а в регистрах и памяти мусор останется.
А это куда делось:
Цитата Сообщение от pspost
....по логике первой операцией с регистром/переменной будет запись или инициализация, и только потом чтение.
А представь, если контроллер по прерыванию какую- то лажу из своих недр достанет да и обработает?
0
Гарнист
0 / 0 / 0
Регистрация: 22.01.2010
Сообщений: 3,496
09.08.2010, 20:49 15
Цитата Сообщение от STT
А представь, если контроллер по прерыванию какую- то лажу из своих недр достанет да и обработает?
Это какую же лажу? Давайте на конкретных примерах.
Главной ошибкой быдлокодеров начинающих программеров всех времён и народов было представление, что «в регистрах что-то есть изначально». За это ещё Петя Нортон в восемдесятлохматом году линейкой по рукам бил. Он же приучал к аксиоме: значения регистров неопределены. Точка. Хочешь поюзать регистр - инициализируй.
А повальная инициализация всего - напоминает эротический массаж своей собственной письки. Интересное, приятное, но при этом совершенно бестолковое занятие. Зачем обнулять регистр, или ячейку памяти, если туда потом всё равно будет записано осмысленное значение? Наверное, чтобы поднять степень осмысленности того, что потом запишут?
Дрочеры от аудиофильства «тренируют» провода, пропуская через них розовый шум в определённом направлении. (ага, сигнал переменного тока, бугога, в направлении, бугога) А дрочеры от ТруЪпрограмминга тренируют регистры, записывая туда нули. Ну тогда уж, после каждого использования регистра/переменной обнуляйте его, на всякий случай. А то вдругчо?
0
Yurkom
0 / 0 / 0
Регистрация: 23.05.2007
Сообщений: 792
09.08.2010, 20:59 16
Гарнист, +100
0
xroymom
0 / 0 / 0
Регистрация: 24.01.2010
Сообщений: 727
09.08.2010, 21:12 17
Поржал. Пусть меня считают "дрочером от ТруЪпрограмминга", но мне как-то не жалко 16 слов на очистку памяти и регистров...
0
kyr_tt
0 / 0 / 0
Регистрация: 23.01.2010
Сообщений: 1,368
09.08.2010, 21:39 18
Да, очень интересно. Дрочим или так пройдёт. С другой стороны
, вздрочнём может полегчает.
0
svk
0 / 0 / 0
Регистрация: 20.10.2009
Сообщений: 7
09.08.2010, 21:42 19
По-моему, к регистрам общего назначения надо относиться как к локальным переменным в процедурах на ЯВУ - нельзя рассчитывать на то, что в них будет что-то определенное при входе в процедуру, но и заранее инициировать - глупо. Инициировать в начале работы программы (явно или неявно) надо только глобальные и статические переменные, но их не следует держать в регистрах.
0
swk
0 / 0 / 0
Регистрация: 22.10.2015
09.08.2010, 21:45 20
Цитата Сообщение от xroymom
Поржал. Пусть меня считают "дрочером от ТруЪпрограмминга", но мне как-то не жалко 16 слов на очистку памяти и регистров...
Мне тоже. Просто были времена, когда при разборках с программой приходилось просматривать дампы памяти. И я уже привык, что там все чисто, а то, что использовалось. сразу выделяется на этом фоне. Очень удобно было, лучше, чем разбираться в каше случайных значений, ломая голову, само оно там было или программа этот срач накидала. Ну и вообще я люблю, когда у меня в мозгах и памяти все чистенько, аккуратненько...
А после включения в регистрах и памяти может быть все, что угодно. Регистры чистить особого смысла нет, а вот память - полезно. Правда, у PIC и вся память (ОЗУ) - все те же регистры...
Программы у меня в большинстве случаев многозадачные, все бегает кругами по флажкам, и многие переменные могут использоваться с самого начала программы. Поэтому всегда задаю значения по умолчанию, не дожидаясь, пока переменную проинициализирует какое - то событие или команда извне. Вроде мелочь, но сразу отпадает масса проблем, из за которых другие теряют кучу времени, пытаясь потом понять, почему программа ведет себя непонятно как. Как напишешь, так она и отработает...
0
09.08.2010, 21:45
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.08.2010, 21:45

Программный Reboot контроллера.
Дин контроллер АтМега16. Как его программно перезагрузить? среда AVR Studyo 5, компилятор WinAVR....

Странное поведение контроллера
Всем привет! Уже который день не можем разобраться с проблемой, очень странного поведения...

Читать ID FT232R со стороны контроллера
Собственно вопрос в названии темы, возможно прочитать ID FT232R со стороны контроллера, например...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru