Код посмотреть хоть можно? Я не спец, но так хотя бы будет понятно, о чём речь
/*
* AsmFile2.asm
*
* Created: 28.12.2020 14:30:13
* Author: dima
*/
.include "m324Pdef.inc"
; Replace with your application code
; FLASH ===================================================
;Инициализация стэка
.CSEG ; Кодовый сегмент
RJMP Reset
RETI ;2 (INT0) External Interrupt Request 0
RETI ;4 (INT1) External Interrupt Request 1
RETI ;6 PCINT0 прерывание 0 по изменению состояния выводов
RETI ;8(PCINT1) прерывание 1 по изменению состояния выводов
RETI ;0А(PCINT2)прерывание 2 по изменению состояния выводов
RETI ;0С(WDT)Таймаут сторожевого таймера
RETI ;0Е(TIMER2 COMPA) Совпадение А таймера счетчика Т2
RETI ;10(TIMER2 COMPB) Совпадение B таймера счетчика Т2
RETI ;12(TIMER2 OVF) Timer/Counter0 Overflow
RETI ;14(Timer1 CAPT)Захват таймера счетчика T1
RETI ;16(Timer1 COMPA)
RETI ;18Timer1 COMPB)
RETI ;1A(TIMER1 OVF)
RETI ;1C(TIMER0 COMPA)
RETI ;1E(TIMER0 COMPB)
RETI ;20(TIMER0 OVF)
RETI ;22(SPI,STC)Передача по SPI завершена
RETI ;24(USART RXC)USART прием завершен
RETI ;26(USART UDRE)регистр данных USART пуст
RETI ;28(USART,TXC) USART передача завершена
RETI ;2А(ADC) преобразование АЦП завершено
RETI ;2C(EE_RDY)EEPROM готово
RETI ;2E(ANA_COMP)Аналоговый компаратор
RETI ;30(TWI)Прерывание от модуля TWI
RETI ;32(SPM_RDY)Готовость SPM
.ORG INT_VECTORS_SIZE ; Конец таблицы прерывани
Reset: LDI R16,Low(RAMEND) ; Инициализация стека
OUT SPL,R16 ; Обязательно!!!
LDI R16,High(RAMEND)
OUT SPH,R16
;===============================================================================================
RCALL Conf_Time
start: RCALL delay2 ;вызов подпрограммы ожидания
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
RJMP start ;зацикливаю программа
;Напишу элементарную процедуры задержки.
;================================================================================================
delay2: ldi r19,60 ;устанавливаем максимальное число
delay: dec r19 ;R19-- крутим цикл пока бит Z регистра SREG =1
nop
brne delay ;переход если z=1 длится 63.5 мкС это не дела надо таймер
ret ;инструкция возврата из подпрограммы
;===============================================================================================
;Процедура конфигурации таймера на прерывания по переполнения счетчика таймера
;Внимание при использовании этой процедуры старые настройки обнуляются, необходимо переписывать
;под свою задачу
Conf_Time: ;BSET SREG,7 ;установка флага I SREG(глобальное разрешение прерываний)
sei ;тоже самое
ldi r18,1
sts TIMSK0,r18 ;sts не out т.к. Memory Mapped
; TOIE0=1 разрешение прерываний по переполнению счетчика
;sbi TIMSK0,TOIE0 ; нельзя использовать регистр memory mapped?
ldi r18,1;(1<<CS00) ; режим работы без делителя
out TCCR0B,r18
;sbi TCCR0B,0 неработает
ret