Страница 1 из 1

пмогите с преріванием

Добавлено: Ср янв 28, 2009 16:29:21
Esya
в чем может бЫть проблема???
в обработчике прерывания есть переход по сравнению и после возврата по этому переходу сбрасывается бит I В регистре SREG .хелп!!!

Добавлено: Ср янв 28, 2009 19:23:20
Pooher
"I" сбрасывается сразу после наступления прерывания, по этому и используется reti для возврата из обработчика

Re: пмогите с преріванием

Добавлено: Ср янв 28, 2009 19:32:26
smac
Esya писал(а):в чем может бЫть проблема???
в обработчике прерывания есть переход по сравнению и после возврата по этому переходу сбрасывается бит I В регистре SREG .хелп!!!
Как выход из обработчика осуществляется? SREG сохраняется(восстанавливается) при входе (выходе из обработчика)? В общем - код в студию.

Добавлено: Ср фев 04, 2009 14:55:33
Lonleystranger
Для 2313

Код: Выделить всё

.include"tn2313def.inc"
.org	000
	rjmp	start   ;1
	nop				;2
	nop				;3
	nop				;4
	nop				;5
	nop				;6
	rjmp	TMR0Ovf ;7
	nop				;8
	nop				;9	
	nop				;10
	nop
		
Start:
	ldi	r16,RAMEND				             
	out	SPL,r16

         ldi		r16,2
	out		TIMSK,r16			 
	ldi		r16,1
	out		TCCR0,r16			
	sei
cycl:		rjmp	Cycl

TMR0Ovf:
		nop				
reti

Откомпилируйте в AVRStudio и посмотрите как работает. Плохая практика лучше хорошей теории. :)) :)))

Добавлено: Ср фев 04, 2009 15:37:55
nictrace
2Lonleystranger:
Зачем в TIMSK загружается RAMEND?? :shock:

Добавлено: Ср фев 04, 2009 16:21:41
Lonleystranger
nictrace писал(а): Зачем в TIMSK загружается RAMEND?? :shock:
Сори, уже исправил, вместе с комментами на русском, которые из студии копируются кракозяблами удалил и нужную строчку кода. Еще раз сори!