Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Мега 16 сбрасывается
Форум разработчиков электроники ELECTRONIX.ru > Сайт и форум > В помощь начинающему > MCS51, AVR, PIC, STM8, 8bit
andr_k55
Сброс через 5-8 часов работы. Прога в кодевизион 1.25.5проф, 5в, 4мгц, стек увелич до 512, все перем volаtilе, где проблема?
rvk
Вариантов море и маленькая чашечка. Возможно питание срабатывает, стек переполняется, то что Вы его увеличили не гарантия.
Допустим программа влетает в цикл вызова одной и той же подпрограммы из нее, ну и все, он Вам ее будет вызывать до бесконечности,
тут и 512 Мб стека не хватитsmile.gif Очень трудно сказать вот так вслепую, неизвестно, какое питание, какая схема обвязки процессора,
какими портами и как часто он дергает, какие условия эксплуатации, как разведена плата, может у Вас кз на плате, и порт, который
дергается раз в 5 часов сбрасывает процессор.Дайте больше информации.
_Pasha
Цитата(andr_k55 @ Jan 31 2009, 18:33) *
все перем volаtilе

Так в нормальном софте не бывает, следовательно проблема - в софте.
haker_fox
Цитата(_Pasha @ Feb 1 2009, 01:17) *
Так в нормальном софте не бывает, следовательно проблема - в софте.

Гм... вообще, как правильно заметили выше, проблем может быть очень много. Но разделить их можно на две большие категории: аппаратные и программные. Соответственно хотелось бы ощутить тут схему девайса, топологию печатки, описание девайса (что делает, что к нему подключено и тд и тп). Чем больше информации предоставит нам уважаемый andr_k55, тем быстрее ему можно будет помочь. Слов же
Цитата
Сброс через 5-8 часов работы. Прога в кодевизион 1.25.5проф, 5в, 4мгц, стек увелич до 512, все перем volаtilе, где проблема?
явно недостаточно.
andr_k55
Сброс на 2 платах, макетной и рабочей. Питание 12в ас 4диода дроссель кренка кондеры. В схеме 2строчн. Экран, ацп, прерыв. От таймера 1 ~1/15 сек, от таймера 2 ~1кгц. Основн прога почти ничего. Вывод на экран в таймере 1, таймер2 кнопки и логика, ацп сам. Низкая частота преобразования.

Входы ч-з оптроны, выходы релейные ч-з uln2003, порт c экран, а0,а1 ацп.

Опросили кнопки и входы, приняли решение, выставили на выход и на индикацию, записали в еепром.
Сергей Борщ
Цитата(andr_k55 @ Jan 31 2009, 23:12) *
Сброс на 2 платах, макетной и рабочей. Питание 12в ас 4диода дроссель кренка кондеры. В схеме 2строчн. Экран, ацп, прерыв. От таймера 1 ~1/15 сек, от таймера 2 ~1кгц. Основн прога почти ничего.
Лучше все же привести схему. Идеально - вместе с разводкой. Остается непонятным, как у вас выполнена цепь сброса, какие емкости стоят на стабилизаторе, как разведено питание? Если прога "всего ничего" - лучше показать и ее. 

И зачем вы экономите буквы и запятые в своих сообщениях? Вы хотите, чтобы вам помогли, или хотите потренировать нас в решении ребусов/телепатии?
andr_k55
Пишу с мобильного. Схема сброса-резистор 10 ком на +5в. Емкости 100 мкф до стабилизатора и 470 мкф после, возле выводов питания 0,1 мкф. Основная прога while(1){}, все в прерываниях, время выполнения меньше периода вызова прерывания. Если всеже проблема в питании?
haker_fox
Цитата(andr_k55 @ Feb 1 2009, 13:35) *
Если всеже проблема в питании?

Просто схему покажите и разводку печатки. Также выложите программу.
Цитата(andr_k55 @ Feb 1 2009, 13:35) *
Пишу с мобильного.

Лучше бы с компьютера)
_Pasha
Цитата(andr_k55 @ Feb 1 2009, 09:35) *
все в прерываниях, время выполнения меньше периода вызова прерывания.

При этом вариантов, подходящих под данное определение, два - с блокировкой вложенных и без. В первом случае достаточно, чтобы суммарное время выполнение прерываний было, как говорите, меньше максимального периода, во втором - еще веселее. 
Про железо - на релейных выходах во время теста что-нить подключено? 
Товарисч! Хватит темнить!
SysRq
Цитата(_Pasha @ Feb 1 2009, 17:16) *
Товарисч! Хватит темнить!

+1.

Может это и не "сброс" вовсе. Просто похоже.
Andrew_k5
Выложить ни прогу ни схему ни печатку нет возможности. Проблемы с устройсвом есть, из последних к АЦП подключен датчик температуры обычный терморезистор напрямую без развязки, в прерывании АЦП данные записываем в Temperatura[0], потом вычисления и вывод на ЖКИ, так вот в проге есть ограничения диапазона если больше 150 градусов, выводить 150, все работало, проверял переменным резистором, потом выдает на ЖКИ температуру более 150.

if (Temperatura[0]>408&&Temperatura[0]<650) {TempOilIntegr=(Temperatura[0]-409)*10/15+Tcalibr-30;}
if (Temperatura[0]<409) TempOilIntegr=0;
if (Temperatura[0]>649) TempOilIntegr=150;

if (TempOilIntegr>TempOil) TempOil++;
if (TempOilIntegr<TempOil) TempOil--;

Вывод на ЖКИ TempOil.

Цитата(_Pasha @ Feb 1 2009, 18:16) *
При этом вариантов, подходящих под данное определение, два - с блокировкой вложенных и без. В первом случае достаточно, чтобы суммарное время выполнение прерываний было, как говорите, меньше максимального периода, во втором - еще веселее. 
Про железо - на релейных выходах во время теста что-нить подключено? 
Товарисч! Хватит темнить!

Реле управляет контакторами. Прерывания с блокировкой вложенных. Темнить не собирался как и все выкладывать тоже.

Цитата(SysRq @ Feb 1 2009, 18:37) *
+1.

Может это и не "сброс" вовсе. Просто похоже.

Может и не сброс, просто обнуление всех переменных.
Палыч
Цитата(Andrew_k5 @ Feb 6 2009, 15:50) *
потом выдает на ЖКИ температуру более 150.
Так ведь вычисленная TempOilIntegr может быть больше 150, если Tcalibr больше 20. Отсюда и TempOil может быть >150. Может быть, с расчетами что-то намудрили... Где-то, наверное, какой-нибудь расчёт с предположением, что TempOilIntegr или TempOil всегда не больше 150 ?
Andrew_k5
Цитата(Палыч @ Feb 6 2009, 15:55) *
Так ведь вычисленная TempOilIntegr может быть больше 150, если Tcalibr больше 20. Отсюда и TempOil может быть >150. Может быть, с расчетами что-то намудрили... Где-то, наверное, какой-нибудь расчёт с предположением, что TempOilIntegr или TempOil всегда не больше 150 ?


При включении Tcalibr читается с еепрома, если больше 60 то присваивается среднее значение 30, в программе тоже диапазон изменения ограничивается 0-60. Откуда берется нестабильная работа, работала день..пять.
Больше 150 но не 600.

[quote name='Andrew_k5' date='Feb 6 2009, 16:15' post='542174']
При включении Tcalibr читается с еепрома, если больше 60 то присваивается среднее значение 30, в программе тоже диапазон изменения ограничивается 0-60. Откуда берется нестабильная работа, работала день..пять.
Больше 150 но не 600.
[/quote
При каких обстоятельствах в еепром может записаться "мусор"?
Палыч
Цитата(Andrew_k5 @ Feb 6 2009, 16:20) *
Больше 150 но не 600.

Так у Вас и индикация "600" бывает?
Цитата(Andrew_k5 @ Feb 6 2009, 16:15) *
При каких обстоятельствах в еепром может записаться "мусор"?
Например, низкое напряжение питания...
Но, честно сказать, на Вашем месте в программе, наверное, нужно искать ошибку - написана программа очень небрежно. На примере тех немногих строк, что Вы привели: при Temperatura[0] равным 649, TempOilIntegr может быть равным 160 (при Tcalibr = 30); замеренная температура поднялась (пусть Temperatura[0] стало 650), а вычесленная TempOilIntegr - упала до 150... Как -то у Вас кривовато написано...
Andrew_k5
Цитата(Палыч @ Feb 6 2009, 17:41) *
Так у Вас и индикация "600" бывает?
Например, низкое напряжение питания...
Но, честно сказать, на Вашем месте в программе, наверное, нужно искать ошибку - написана программа очень небрежно. На примере тех немногих строк, что Вы привели: при Temperatura[0] равным 649, TempOilIntegr может быть равным 160 (при Tcalibr = 30); замеренная температура поднялась (пусть Temperatura[0] стало 650), а вычесленная TempOilIntegr - упала до 150... Как -то у Вас кривовато написано...

Рабочий диапазон температур 0-120 градусов, на экране растет до 1000...
андрей3
Цитата(andr_k55 @ Feb 1 2009, 09:35) *
Пишу с мобильного. Схема сброса-резистор 10 ком на +5в. Емкости 100 мкф до стабилизатора и 470 мкф после, возле выводов питания 0,1 мкф. Основная прога while(1){}, все в прерываниях, время выполнения меньше периода вызова прерывания. Если всеже проблема в питании?

Питание организовано плохо. До стабилизатора надо не менее 1000 мкф , после достаточно 10 мкф + 0.1 керамика
Andrew_k5
У меня дома холодильник - генератор помех, при включении контроллеры сбрасываются, неужели просадка по питанию?
muravei
Цитата(Andrew_k5 @ Mar 16 2009, 17:29) *
неужели просадка по питанию?

Нет! Может еще и наводка на вашу "разводку" laughing.gif
-контакты в холодильнике искрят не хило
smac
Цитата(muravei @ Mar 16 2009, 21:26) *
Нет! Может еще и наводка на вашу "разводку" laughing.gif
-контакты в холодильнике искрят не хило

99 % что так оно и есть, но холодильник холодильнику рознь. Есть старинные экземпляры, с которыми и просадка по питалову возможна (естественно в дополнение к искрению), у меня на даче такой.
Andrew_k5
Вопрос по надежности, плата проработала пару месяцев безотказно, но сейчас начались "зависания", на что обратить внимание, думаю проблема не программная, скорее всего плохой контакт, микросхема установлена в панельке, кто сталкивался подскажите где искать неисправность.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.