Реклама на сайте English version  DatasheetsDatasheets

KAZUS.RU - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Электронные книги
FAQ по электронике

  Datasheets
Поиск SMD
Он-лайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Избранные схемы
FAQ по электронике
  Программы
Каталог сайтов
Производители электроники
  Форумы по электронике
Помощь проекту

Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей...

 
Опции темы
Непрочитано 11.02.2018, 15:00  
putmannn
Гражданин KAZUS.RU
 
Аватар для putmannn
 
Регистрация: 01.02.2011
Адрес: г. Долгопрудный
Сообщений: 996
Сказал спасибо: 339
Сказали Спасибо 94 раз(а) в 91 сообщении(ях)
putmannn на пути к лучшему
По умолчанию Re: AtMega-8, вачдог и режимы сна.

ВОТ БЛИН !!!
Я понял почему ВО ВСЕХ моих устройствах на AVR крайне нестабильный запуск.

Выше я написал, что вачдог теперь работает нормально и кристалл не зависает после 5-6 ресетов напрочь, от чего помогает только откл. питания с нажатым ресетом.

Так вот, вставил я инициализацию вачдога в основную программу и ... он снова стал зависать !
Начал закоменчивать по очереди строки в процедуре старта, убрал настройку таймеров, выключил АЦП, отключил все прерывания ... всё равно зависает.

И зависание именно в момент старта. Это видно на осциллограмме.
В момент запуска контроллера в зависимости от фьюзов существует задержка, 0, 4 и 64 мс. Во времят задержки на пинах МК - 3.6 вольт, далее идет конфигурация пинов и они либо 0, либо +5 (у меня в проекте) становятся.
Но у меня, он не выходит из этого (3.6 вольт) висячего состояния, значит не стартует.

Как оказалось, в самом начале программы, сразу после инициализации стека у меня идет вычитанный где-то давным давно код по обнулению ОЗУ:

Код:
			clr		temp					
			clr		temp2
pernul:		        st		Z+,	temp			
			inc		temp2					

			cpi		temp2,	255
			brne	        pernul

Убрал это обнуление и запуск стал стабильным !
Я передёргивал уже 100500 раз питание, старт на 100%.
Жал ресет 100500 раз, стартует на 100%.

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

Отсюда вопрос, ПОЧЕМУ этот код делает запуск настолько нестабильным ?
Реклама:
putmannn вне форума  
Непрочитано 11.02.2018, 15:15  
ForcePoint
Почётный гражданин KAZUS.RU
 
Регистрация: 20.03.2007
Адрес: "Братское кольцо враждебности", т.е. ближайшее заМКАДье.
Сообщений: 6,915
Сказал спасибо: 2,980
Сказали Спасибо 3,159 раз(а) в 2,144 сообщении(ях)
ForcePoint на пути к лучшему
По умолчанию Re: AtMega-8, вачдог и режимы сна.

Сообщение от putmannn Посмотреть сообщение
Как оказалось, в самом начале программы, сразу после инициализации стека у меня идет вычитанный где-то давным давно код по обнулению ОЗУ:
Код:
	clr	temp					
	clr	temp2
pernul:
	st	Z+,	temp			
	inc	temp2					

	cpi	temp2,	255
	brne	pernul
	.....
Вычитанный и не понятый.
Потому, что этот говнокод (с характерной транслитерацией метки) не ОЗУ чистит, а все порты I/O в ноль сбрасывает (нимало не считаясь с тем, что кое-где по сбросу "1" стоит).

P.S. Технический английский - очень прост (чуть менее чем полностью - термины). Имея стойкие трояки в школе и институте - не имею никаких проблем с разбором документации на английском.
__________________
Экзорцист 40-го уровня.

Последний раз редактировалось ForcePoint; 11.02.2018 в 15:18.
ForcePoint вне форума  
Сказали "Спасибо" ForcePoint
putmannn (11.02.2018)
Непрочитано 11.02.2018, 15:24  
putmannn
Гражданин KAZUS.RU
 
Аватар для putmannn
 
Регистрация: 01.02.2011
Адрес: г. Долгопрудный
Сообщений: 996
Сказал спасибо: 339
Сказали Спасибо 94 раз(а) в 91 сообщении(ях)
putmannn на пути к лучшему
По умолчанию Re: AtMega-8, вачдог и режимы сна.

Сообщение от ForcePoint Посмотреть сообщение
Потому, что этот говнокод (с характерной транслитерацией метки) не ОЗУ чистит, а все порты I/O в ноль сбрасывает (нимало не считаясь с тем, что кое-где по сбросу "1" стоит).

Проклятый интернет ! Вычитаешь в нём всяких ошибок.
Из-за него я мучился года 3.
Больше я в него ни ногой ! Буду бумажные, проверенные временем советские руководства лучше читать.
putmannn вне форума  
Непрочитано 11.02.2018, 16:53  
МВА
Гражданин KAZUS.RU
 
Регистрация: 15.08.2010
Адрес: Днепр
Сообщений: 842
Сказал спасибо: 74
Сказали Спасибо 199 раз(а) в 174 сообщении(ях)
МВА на пути к лучшему
По умолчанию Re: AtMega-8, вачдог и режимы сна.

Сообщение от putmannn Посмотреть сообщение
Проклятый интернет ! Вычитаешь в нём всяких ошибок.
Из-за него я мучился года 3.
Больше я в него ни ногой ! Буду бумажные, проверенные временем советские руководства лучше читать.
Вот этот код чистит сторого ОЗУ и РОН.
Когда пишу на АСМе использую эти макросы.
PHP код:
;Инициализация стека=============================================  =====
.
MACRO SPini
    ldi r16
,low(ramend)
    
out spl,r16
    ldi r16
,high(ramend)
    
out sph,r16
.ENDM
;Сброс памяти RAM (00)============================================
.
MACRO Ram_00
        ldi zl
,low(sram_start
                
ldi zh,high(sram_start)
Flush:          clr r25
                st  z
+,r25
                cpi zh
,high(ramend+1)
                
brne    Flush 
            
                cpi zl
,low(ramend+1)
                
brne    Flush
            
                clr zl
                clr zh
                
;очистка регистров (РОН)
                
ldi zl,30
                clr zh
                dec zl
                st z
,zh
                brne pc
-2
.ENDM 

Последний раз редактировалось МВА; 11.02.2018 в 16:56.
МВА вне форума  
Сказали "Спасибо" МВА
putmannn (11.02.2018)
Непрочитано 12.02.2018, 10:23  
makakus
Почётный гражданин KAZUS.RU
 
Регистрация: 08.10.2007
Сообщений: 2,760
Сказал спасибо: 1,106
Сказали Спасибо 1,037 раз(а) в 569 сообщении(ях)
makakus на пути к лучшему
По умолчанию Re: AtMega-8, вачдог и режимы сна.

Сообщение от МВА Посмотреть сообщение
этот код чистит сторого ОЗУ и РОН.
Когда пишу на АСМе использую
А зачем?
При запуске программы любая (почти) переменная в памяти должна быть инициализирована, без этого надёжной работы не будет. Но не бездумно - всё в нули! Тем более, что бОльшая часть памяти, как правило, не используется - зачем делать лишнее?
Инициализировать РОН - это вообще на воду дуть, они потому и РОН, что меняются везде и всюду.
Для инициализации пишу подпрограмму initram, там и инициализирую.
makakus вне форума  
Непрочитано 12.02.2018, 11:08  
МВА
Гражданин KAZUS.RU
 
Регистрация: 15.08.2010
Адрес: Днепр
Сообщений: 842
Сказал спасибо: 74
Сказали Спасибо 199 раз(а) в 174 сообщении(ях)
МВА на пути к лучшему
По умолчанию Re: AtMega-8, вачдог и режимы сна.

Сообщение от makakus Посмотреть сообщение
При запуске программы любая (почти) переменная в памяти должна быть инициализирована,
Где-то я об этом же недавно писал. Но иногда, при отладке, когда бывают косяки со стеком, удобней, все-таки, обнулять его, чтобы прошлый мусор не мешал увидеть где и что лежит, в стеке. Он ведь тоже находится в SRAM. А вообще-то этот код я скопипастил у DIHALT (с isielektronik). Я только последнюю метку заменил уменьшением программного счетчика. И там же, в его курсе по asm была рекомендация чистить ОЗУ.
МВА вне форума  
 

Закладки
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
ATMEGA 128_перепутал назначение при компиляции Losk1728 AVR 11 01.05.2017 19:11
Режимы сна Атмега-8 putmannn AVR 123 08.03.2013 15:30
Частотомер Atmega 128 deeman30rus Электроника - это просто 8 25.07.2012 07:29
Помогите с ATmega 32 (32х) naumovich Микроконтроллеры, АЦП, память и т.д 10 07.10.2008 08:31
Параллельное программирование atmega R_V_A Микроконтроллеры, АЦП, память и т.д 8 20.12.2006 12:50


Часовой пояс GMT +4, время: 10:22.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot