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

AVR Studio Не вызывается прерывание по сравнению

Добавлено: Вс ноя 28, 2010 11:33:13
iustat
В общем суть в следующем. Программа досчитывает до нужного числа, т.е. регистры TCNT1H, TCNT1L сбрасываются в 0 при досчете. В этот момент флаги OCF1A (OCF1B) в регистре TIFR устанавливаются, но прерывания не возникают. Глобальный флаг прерываний установлен в 1.

Привожу собственно код программы:

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

.include "m32def.inc"

.def tmpL  = r17
.def tmpH  = r18


.org	0x0000
	rjmp	RESET	; Salt neconditionat

.org	OC1Aaddr	; Output Compare1A Interrupt Vector Address
	rjmp TMR1_INR

.org	OC1Baddr	; Output Compare1B Interrupt Vector Address
	rjmp TMR1_INR





	.MACRO outi			
	LDI 	R16,@1 			
	OUT 	@0,R16 	
	.ENDM


; prerivanie timer
TMR1_INR:

	outi PORTC,0xff
	reti

RESET:	 
	; zapreshaem prerivaniya
	cli
	
	; initializatsiya steka

	ldi tmpH, High(RAMEND) 
	out SPH, tmpH
	ldi tmpL, Low(RAMEND) 
	out SPL, tmpL

	; ocishaem tmpL
	CLR tmpL

	ser tmpL
	out DDRB, tmpL ;na vyvod
	out DDRC, tmpL ;na vyvod
	out DDRD, tmpL ;na vyvod
	
	;out PORTA,tempL ;podtiagivaiuscii rezistor
	

	; kasaemo taimera
	outi TCNT1H,0
	outi TCNT1L,0

	;zapis vremeni tsikla sciotcika
	outi OCR1BH,high(1000)  ; 1000
	outi OCR1BL,low(1000)
	outi OCR1AH,high(1000)
	outi OCR1AL,low(1000)

	
	outi TIFR,(1<<TOV1)
	
	outi TCCR1B,(1<<CS10)|(1<<WGM12); prescaler

        ; razreshaem prerivaniya
	sei
	rjmp MAIN

MAIN:
	rjmp MAIN

Re: AVR Studio Не вызывается прерывание по сравнению

Добавлено: Вс ноя 28, 2010 11:45:50
ARV
где разрешение прерываний по совпадению? надо кое-что записать в TIMSK

Re: AVR Studio Не вызывается прерывание по сравнению

Добавлено: Пн ноя 29, 2010 18:12:29
Aheir
Код оформляется вложением.
Есть тема по Студии.
Есть тема для мелких вопросов.
Есть темы с похожими вопросами.
Закрыто.