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

Прерывания тини2313

Добавлено: Вт сен 14, 2010 23:16:44
Pingvinus
Всем привет!
Нужно чтоб каждую секунду срабатывало прерывания таймера. Согласно обучалке у меня получилось:

.include "C:\Program Files1\Atmel\AVR Tools\AvrAssembler2\Appnotes\tn2313def.inc"
.cseg
.org 0
rjmp RESET
rjmp INT_0
rjmp INT_1
rjmp TIM1_CAPT
rjmp TIM1_COMPA
rjmp TIM1_OVF
rjmp TIM0_OVF
rjmp USART0_RXC
rjmp USART0_DRE
rjmp USART0_TXC
rjmp ANA_COMP
rjmp PCINT_0
rjmp TIMER1_COMPB
rjmp TIMER0_COMPA
rjmp TIMER0_COMPB
rjmp USI_START
rjmp USI_OVERFLOW
rjmp EE_READY
rjmp WDT_OVERFLOW
rjmp PCINT_1
rjmp PCINT_2

;RESET:
INT_0: reti
INT_1: reti
TIM1_CAPT: reti
TIM1_COMPA: reti
TIM1_OVF: reti
TIM0_OVF: reti
USART0_RXC: reti
USART0_DRE: reti
USART0_TXC: reti
ANA_COMP: reti
PCINT_0: reti
TIMER1_COMPB: reti
;TIMER0_COMPA: reti
TIMER0_COMPB: reti
USI_START: reti
USI_OVERFLOW: reti
EE_READY: reti
WDT_OVERFLOW: reti
PCINT_1: reti
PCINT_2: reti
;================
reset:
ldi r16,low(ramend)
out spl,r16

ldi r16,0b01000000
out TIMSK,r16

ldi r16,0x7a
out OCR1AH,r16
ldi r16,0x12
out OCR1AL,r16

clr r16
out TCNT1H,r16
out TCNT1L,r16

ldi r16,255
out ddrb,r16

ldi r25,1
sei
;------------------------------------------------------
a: rjmp a
;------------------------------------------------
;timsk=0b01000000
;tccr1b=0b00000100
;OCR1AH=7a
;OCR1AL=12

TIMER0_COMPA:
clr r16
out TCNT1H,r16
out TCNT1L,r16

inc r25
out portb,r25
reti


Но почемуто не работает.

Re: Прерывания тини2313

Добавлено: Ср сен 15, 2010 07:21:26
ARV
что-то многовато у вас в "таблице векторов прерываний" меток для прерываний таймеров :))) и еще мне тут будут рассказывать о правильности такого подхода!!! :kill:

Re: Прерывания тини2313

Добавлено: Ср сен 15, 2010 07:53:15
GP1
+ сто-пицот :))) :))) :)))

чтобы оно работало таймер не плохо бы запустить, но прежде чем это делать - ДШ покурить.

ЗЫ и хде коменты :kill:

Re: Прерывания тини2313

Добавлено: Ср сен 15, 2010 08:17:23
akl
Ожидая прерывание от Т1, обращаться к Т0 не нужно. Начинать отсчет времени лучше с 0.
TEST4.rar