Приведу здесь кусок кода настройки таймера... что здесь не так? Здесь расчетное прерывание таймера В около 50 миллисекунд, счетный регистр заполняется до 195 (C3), это же значение в регистре компаратора... Но на деле все значительно медленнее... Так что же за частота приходит в прескаллер-то?
Код: Выделить всё
.include "tn13def.inc"
;Оперативка=================
.DSEG
;Память программ============
.CSEG
.org 0
rjmp RESET
rjmp INTO
rjmp PCINTO
;rjmp TIMO_OVF?
rjmp EE_RDY
rjmp ANA_COMP
rjmp TIM0_COMPA
.org 0x00007
rjmp TIM0_COMPB
rjmp WDT
;rjmp ADC?
;RESET:
INTO:
PCINTO:
;TIM0_OVF:?
EE_RDY:
ANA_COMP:
TIM0_COMPA:
;TIM0_COMPB:
WDT:
;ADC:?
reti
;Инициализация по Reset==========
RESET:
;Инициализация стека
LDI R16,RamEnd
OUT SPL, R16
;Разрешение прерывания компаратора B
LDI R16,0b00001000
OUT TIMSK0, R16
;Устанавливаем предделитель
LDI R16, 0b00000101 ;Деление на 1024
OUT TCCR0B, R16
;Инициализация компаратора - ожидаемые прерывания таймера через 50ms
LDI R16, 0xC3
OUT OCR0B, R16
;Обнуление таймера
LDI R16, 0
OUT TCNT0, R16
;Разрешить прерывания
SEI

