реклама на сайте
подробности

 
 
2 страниц V   1 2 >  
Reply to this topicStart new topic
> Мега 16 сбрасывается
andr_k55
сообщение Jan 31 2009, 15:33
Сообщение #1





Группа: Новичок
Сообщений: 6
Регистрация: 12-01-09
Пользователь №: 43 227



Сброс через 5-8 часов работы. Прога в кодевизион 1.25.5проф, 5в, 4мгц, стек увелич до 512, все перем volаtilе, где проблема?
Go to the top of the page
 
+Quote Post
rvk
сообщение Jan 31 2009, 15:41
Сообщение #2


Частый гость
**

Группа: Свой
Сообщений: 165
Регистрация: 13-05-06
Из: Камышин
Пользователь №: 17 067



Вариантов море и маленькая чашечка. Возможно питание срабатывает, стек переполняется, то что Вы его увеличили не гарантия.
Допустим программа влетает в цикл вызова одной и той же подпрограммы из нее, ну и все, он Вам ее будет вызывать до бесконечности,
тут и 512 Мб стека не хватитsmile.gif Очень трудно сказать вот так вслепую, неизвестно, какое питание, какая схема обвязки процессора,
какими портами и как часто он дергает, какие условия эксплуатации, как разведена плата, может у Вас кз на плате, и порт, который
дергается раз в 5 часов сбрасывает процессор.Дайте больше информации.
Go to the top of the page
 
+Quote Post
_Pasha
сообщение Jan 31 2009, 17:17
Сообщение #3


;
******

Группа: Участник
Сообщений: 5 646
Регистрация: 1-08-07
Пользователь №: 29 509



Цитата(andr_k55 @ Jan 31 2009, 18:33) *
все перем volаtilе

Так в нормальном софте не бывает, следовательно проблема - в софте.
Go to the top of the page
 
+Quote Post
haker_fox
сообщение Jan 31 2009, 17:26
Сообщение #4


Познающий...
******

Группа: Свой
Сообщений: 2 963
Регистрация: 1-09-05
Из: г. Иркутск
Пользователь №: 8 125



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

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


--------------------
Выбор.
Go to the top of the page
 
+Quote Post
andr_k55
сообщение Jan 31 2009, 21:12
Сообщение #5





Группа: Новичок
Сообщений: 6
Регистрация: 12-01-09
Пользователь №: 43 227



Сброс на 2 платах, макетной и рабочей. Питание 12в ас 4диода дроссель кренка кондеры. В схеме 2строчн. Экран, ацп, прерыв. От таймера 1 ~1/15 сек, от таймера 2 ~1кгц. Основн прога почти ничего. Вывод на экран в таймере 1, таймер2 кнопки и логика, ацп сам. Низкая частота преобразования.

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

Опросили кнопки и входы, приняли решение, выставили на выход и на индикацию, записали в еепром.
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Jan 31 2009, 22:02
Сообщение #6


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



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

И зачем вы экономите буквы и запятые в своих сообщениях? Вы хотите, чтобы вам помогли, или хотите потренировать нас в решении ребусов/телепатии?


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post
andr_k55
сообщение Feb 1 2009, 05:35
Сообщение #7





Группа: Новичок
Сообщений: 6
Регистрация: 12-01-09
Пользователь №: 43 227



Пишу с мобильного. Схема сброса-резистор 10 ком на +5в. Емкости 100 мкф до стабилизатора и 470 мкф после, возле выводов питания 0,1 мкф. Основная прога while(1){}, все в прерываниях, время выполнения меньше периода вызова прерывания. Если всеже проблема в питании?
Go to the top of the page
 
+Quote Post
haker_fox
сообщение Feb 1 2009, 05:38
Сообщение #8


Познающий...
******

Группа: Свой
Сообщений: 2 963
Регистрация: 1-09-05
Из: г. Иркутск
Пользователь №: 8 125



Цитата(andr_k55 @ Feb 1 2009, 13:35) *
Если всеже проблема в питании?

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

Лучше бы с компьютера)


--------------------
Выбор.
Go to the top of the page
 
+Quote Post
_Pasha
сообщение Feb 1 2009, 14:16
Сообщение #9


;
******

Группа: Участник
Сообщений: 5 646
Регистрация: 1-08-07
Пользователь №: 29 509



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

При этом вариантов, подходящих под данное определение, два - с блокировкой вложенных и без. В первом случае достаточно, чтобы суммарное время выполнение прерываний было, как говорите, меньше максимального периода, во втором - еще веселее. 
Про железо - на релейных выходах во время теста что-нить подключено? 
Товарисч! Хватит темнить!
Go to the top of the page
 
+Quote Post
SysRq
сообщение Feb 1 2009, 14:37
Сообщение #10


Чайник, 1 литр
****

Группа: Свой
Сообщений: 655
Регистрация: 17-05-06
Из: Moscow
Пользователь №: 17 168



Цитата(_Pasha @ Feb 1 2009, 17:16) *
Товарисч! Хватит темнить!

+1.

Может это и не "сброс" вовсе. Просто похоже.
Go to the top of the page
 
+Quote Post
Andrew_k5
сообщение Feb 6 2009, 12:50
Сообщение #11


Частый гость
**

Группа: Участник
Сообщений: 77
Регистрация: 15-02-07
Из: Днепропетровск
Пользователь №: 25 387



Выложить ни прогу ни схему ни печатку нет возможности. Проблемы с устройсвом есть, из последних к АЦП подключен датчик температуры обычный терморезистор напрямую без развязки, в прерывании АЦП данные записываем в 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.

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

Может и не сброс, просто обнуление всех переменных.
Go to the top of the page
 
+Quote Post
Палыч
сообщение Feb 6 2009, 12:55
Сообщение #12


Гуру
******

Группа: Свой
Сообщений: 2 399
Регистрация: 10-05-06
Из: г. Новочеркасск
Пользователь №: 16 954



Цитата(Andrew_k5 @ Feb 6 2009, 15:50) *
потом выдает на ЖКИ температуру более 150.
Так ведь вычисленная TempOilIntegr может быть больше 150, если Tcalibr больше 20. Отсюда и TempOil может быть >150. Может быть, с расчетами что-то намудрили... Где-то, наверное, какой-нибудь расчёт с предположением, что TempOilIntegr или TempOil всегда не больше 150 ?
Go to the top of the page
 
+Quote Post
Andrew_k5
сообщение Feb 6 2009, 13:20
Сообщение #13


Частый гость
**

Группа: Участник
Сообщений: 77
Регистрация: 15-02-07
Из: Днепропетровск
Пользователь №: 25 387



Цитата(Палыч @ 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
При каких обстоятельствах в еепром может записаться "мусор"?
Go to the top of the page
 
+Quote Post
Палыч
сообщение Feb 6 2009, 13:41
Сообщение #14


Гуру
******

Группа: Свой
Сообщений: 2 399
Регистрация: 10-05-06
Из: г. Новочеркасск
Пользователь №: 16 954



Цитата(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... Как -то у Вас кривовато написано...
Go to the top of the page
 
+Quote Post
Andrew_k5
сообщение Feb 6 2009, 13:54
Сообщение #15


Частый гость
**

Группа: Участник
Сообщений: 77
Регистрация: 15-02-07
Из: Днепропетровск
Пользователь №: 25 387



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

Рабочий диапазон температур 0-120 градусов, на экране растет до 1000...
Go to the top of the page
 
+Quote Post

2 страниц V   1 2 >
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 7th July 2025 - 18:12
Рейтинг@Mail.ru


Страница сгенерированна за 0.01523 секунд с 7
ELECTRONIX ©2004-2016