delay_20000us:
ldi r16, 0b10000000 ; Загрузим в РОН "I=1 SREG"
out SREG, r16
ldi r16, 0b1 ; Загрузим TOIE0=1 (разрешили прерывания по переполнения T0)
out TIMSK, r16
ldi r16, 0b11101100 ; Загрузим в TCNT0 236
out TCNT0, r16
ldi r16, 0b101 ; Запускаем таймер с предделителем 1024
out TCCR0, r16 ; Поехали!!!
A: ; [color=#FF0000]коряво, так нельзя вообще то... (заметка для себя:)
rjmp A[/color]
ldi r16, 0b10111011 ; Загрузим в TCNT0 187
out TCNT0, r16
ldi r16, 0b010 ; Запускаем таймер с предделителем 8
out TCCR0, r16 ; Поехали!!!
Пытаюсь организовать задержку в >20мс, т.е. нижний порог - 20мс.
Когда таймер Т0 Atmega8 переполнился, должно же меня перекинуть на 9 адрес вектора прерывания?
Почему не кидает в студии?
(I=1, прерывание в TIMSK разрешено)
Установил флаг прерывания по опустошению (переполнения) в регистре TIFR - кидает...
Ведь этот же флаг устанавливается автоматически при переполнении регистра... странно...
Не умеешь - не берись, но не взявшись не научишься...