Портал для радиолюбителей и разработчиков электроники · с 2003 годаРеклама на сайте
Найти компонент, схему или даташит

Даташиты, справочник отечественных приборов, схемы с разбором и живой форум

AVR Раздел по микроконтроллерам компании Atmel - AVR / ATtiny / ATmega / ATMega128 / ATxmega, вопросы по программированию в AVR studio и все, относящееся к AVR...

 
Опции темы

Выход из спящего режима по INT0

Непрочитано 07.01.2013, 13:50  
putmannn
Почётный гражданин KAZUS.RUN
 
Аватар для putmannn
 
Регистрация: 01.02.2011
Адрес: г. Долгопрудный
Сообщений: 1,040
Сказал спасибо: 368
Сказали Спасибо 98 раз(а) в 93 сообщении(ях)
putmannn на пути к лучшему
По умолчанию Re: Выход из спящего режима по INT0.

Сообщение от niXto Посмотреть сообщение
Значит, что-то не так в коде, где он? У меня все работает

При тактировании от встроенного генератора, после записи в еепром нужно дождаться окончания записи и только потом валиться в повер-довн. Т.к. логика программатора тактируется от встроенного генератора и при его отключении в процессе записи могут быть нюансы
До этого уже дошел переводя даташит, спасибо.
Можно перед процедурой сна поставить такую проверку на окончание записи ЕПРОМ ? это будет корректно ?
Код:
EEWrite:	SBIC	EECR,EEWE		
	        RJMP	EEWrite 

... дале код для сна.
Реклама:
putmannn вне форума  
Непрочитано 07.01.2013, 13:51  
putmannn
Почётный гражданин KAZUS.RUN
 
Аватар для putmannn
 
Регистрация: 01.02.2011
Адрес: г. Долгопрудный
Сообщений: 1,040
Сказал спасибо: 368
Сказали Спасибо 98 раз(а) в 93 сообщении(ях)
putmannn на пути к лучшему
По умолчанию Re: Выход из спящего режима по INT0.

Сообщение от Slava1355 Посмотреть сообщение
В результате работы этого фрагмента переменная akbf не должна измениться, а в SRAM по адресу akbf должно находиться значение 255 (0xFF).
Тут ступил, сейчас исправлю проверю.
putmannn вне форума  
Непрочитано 07.01.2013, 14:16  
putmannn
Почётный гражданин KAZUS.RUN
 
Аватар для putmannn
 
Регистрация: 01.02.2011
Адрес: г. Долгопрудный
Сообщений: 1,040
Сказал спасибо: 368
Сказали Спасибо 98 раз(а) в 93 сообщении(ях)
putmannn на пути к лучшему
По умолчанию Re: Выход из спящего режима по INT0

Что за БЛИН, я накосячил.
Ну хоть бы 1 раз не по собственной глупости был глюк а из-за контроллера.
Я готовлю данные,
SBI EECR, EERIE ;устанавливаю флаг готовности к записи
вызывается прерывание и записывает в ЕЕПРОМ 1 байт.
Но в конце прерывания забыл поставить,
СBI EECR, EERIE ,
и у меня постоянно писалось и писалось.
putmannn вне форума  
Непрочитано 07.01.2013, 15:25  
niXto
Почётный гражданин KAZUS.RUN
 
Аватар для niXto
 
Регистрация: 13.10.2007
Адрес: Беларусь
Сообщений: 8,026
Сказал спасибо: 60
Сказали Спасибо 3,941 раз(а) в 2,302 сообщении(ях)
niXto на пути к лучшему
По умолчанию Re: Выход из спящего режима по INT0

Сообщение от putmannn Посмотреть сообщение
Можно перед процедурой сна поставить такую проверку на окончание записи ЕПРОМ ? это будет корректно ?
Да, корректно

niXto вне форума  
Сказали "Спасибо" niXto
putmannn (07.01.2013)
Непрочитано 07.01.2013, 16:47  
Slava1355
Прописка
 
Аватар для Slava1355
 
Регистрация: 13.06.2004
Адрес: Москва
Сообщений: 193
Сказал спасибо: 12
Сказали Спасибо 32 раз(а) в 18 сообщении(ях)
Slava1355 на пути к лучшему
По умолчанию Re: Выход из спящего режима по INT0.

Сообщение от putmannn Посмотреть сообщение
До этого уже дошел переводя даташит, спасибо.
Можно перед процедурой сна поставить такую проверку на окончание записи ЕПРОМ ? это будет корректно ?
Код:
EEWrite:	SBIC	EECR,EEWE		
	        RJMP	EEWrite 

... дале код для сна.
Ниже фрагмент кода, который записывает в EEPROM, начиная с нулевого адреса двухбайтовую калибровочную константу из R22/R23. Для надежности константа пишется дважды, в прямом и инверсном формате. Процедура записи и проверки готовности EEPROM вынесены в отдельные подпрограммы. В результате проверка готовности EEPROM пишется в одну строку: rcall WtEERDY .
Обратите внимание на наличие пары cli .... sei в прцедуре записи EEPROM, это гарантирует отсутствие прерываний между двумя командами sbi ... sbi . Это важно для гарантированной записи.

Код:
;============ WRITE CALIBRATION DATA to EEPROM =========================
	;-------- Write LOW Cal byte ----------------------
		rcall 		WtEERDY				;Wait EEPROM READY
		clr		r16				;Set first ADDR EEPROM

		out		EEARH,r16			;Write first EEADDR (HIGH)
		out		EEARL,r16			;Write first EEADDR (LOW)

		out		EEDR,r22			;Write Data to temp register

		rcall		WREE				;Command "Start Write"
		;-------- Write INVERT LOW Cal byte ----------------
		rcall 		WtEERDY				;Wait EEPROM READY
		inc		r16				;Set 2-nd ADDR EEPROM
		out		EEARL,r16			;Write  EEADDR (LOW)

		COM		R22				;Invert LOW data byte 
		out		EEDR,r22			;Write Data to temp register

		rcall		WREE				;Command "Start Write"
		;========== Write HIGH Cal byte =====================
		rcall 		WtEERDY				;Wait EEPROM READY
		inc		r16				;Set 3-th ADDR EEPROM
		out		EEARL,r16			;Write first EEADDR (LOW)

		out		EEDR,r23			;Write Data to temp register

		rcall		WREE				;Command "Start Write"
		;-------- Write INVERT HIGH Cal byte ----------------
		rcall 		WtEERDY				;Wait EEPROM READY
		inc		r16				;Set 4-th ADDR EEPROM
		out		EEARL,r16			;Write  EEADDR (LOW)

		COM		R23				;Invert HIGH data byte 
		out		EEDR,r23			;Write Data to temp register

		rcall		WREE				;Command "Start Write"
	;------------------------------------------------------------
		rcall 		WtEERDY				;Wait EEPROM READY (WRITE FINISHING)

		RJMP		main				;GOTO Main BootLoader module 
;=================================================  ==============================

 ;---------------- WAIT EEPROM READY -----------------------
WtEERDY:	sbic		EECR, EEWE			;
		rjmp		WtEERDY				;Wait EEPROM ready to write
		RET
;-----------------------------------------------------------

;---------------- WRITE EEPROM COMAND -----------------------
WREE:		cli
		sbi		EECR,EEMWE			;Set 1-st "Start Write"
		sbi		EECR,EEWE			;Set 2-nd "Start Write"
		sei
		RET
;-----------------------------------------------------------
Slava1355 вне форума  
Сказали "Спасибо" Slava1355
putmannn (07.01.2013)
 
Опции темы

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

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как устранить дребезг на вход INT0 begun Микроконтроллеры, АЦП, память и т.д 53 30.01.2018 17:21
Считывание байта по INT0 neox-neox Микроконтроллеры, АЦП, память и т.д 28 11.03.2011 21:10
Не работают входы INT0/ INT1 для 90S2313 в Протеусе welder_2002 Микроконтроллеры, АЦП, память и т.д 9 06.05.2009 19:09
mega16 - int0 - наводка? mel2 Микроконтроллеры, АЦП, память и т.д 10 26.07.2006 08:08
HDD 2 режима? IgorN Ремонт оргтехники 9 21.10.2003 12:30


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


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.