не пойму в чем дело
Вроде должен же на прерывание уходить
В начале дал общее разрешение на Прерывания - SEI
Настроил 16-ти битный Таймер 1
Поставил маску на совпадении в канале А
Установил вектора
При пошаговом дебагиннге не работает- не переходит на прерывание.
Хотя TIFR выставляется, счетчик обнуляется...
Заметил, что бит разрешения прерываний регистра SERG в процессе исполнения программы тоже со временем обнуляется :/
Прошу помощи или ,хотя бы, подсказки
сам код на ассамблере:
что я делаю не так?
Раздел: Песочница или Вопрос-Ответ
Вроде должен же на прерывание уходить
В начале дал общее разрешение на Прерывания - SEI
Настроил 16-ти битный Таймер 1
Поставил маску на совпадении в канале А
Установил вектора
При пошаговом дебагиннге не работает- не переходит на прерывание.
Хотя TIFR выставляется, счетчик обнуляется...
Заметил, что бит разрешения прерываний регистра SERG в процессе исполнения программы тоже со временем обнуляется :/
Прошу помощи или ,хотя бы, подсказки
сам код на ассамблере:
.include "tn2313def.inc"
.list
.def temp = R16
.def cou = R18
.def schet = R19
.equ kdel = 256
.cseg
.org 0
start: rjmp init
reti
reti
reti
rjmp timer
reti
reti
reti
reti
reti
reti
reti
reti
reti
reti
reti
reti
reti
reti
init:
; стек
ldi temp, RAMEND
out SPL, temp
; компаратор
ldi temp, 0x80
out ACSR, temp
CLI
; настройка таймера
ldi temp, 0b00001001
out TCCR1B, temp
ldi temp, high(kdel)
out OCR1AH, temp
ldi temp, low(kdel)
out OCR1AL, temp
; maska таймера
ldi temp, 0b01000000
out TIMSK, temp
SEI
exit:
rjmp exit
timer:
inc cou
что я делаю не так?
Раздел: Песочница или Вопрос-Ответ