![Вопрос](images/smilies/icon_question.gif)
Еще вопрос уважаемой публике: при каких условиях таймер вызывает прерывания?
(Я пытался написать программу, в которой таймер 4 просто считает до максимального значения и вызывает прерывание. Таймер считает, но в прерывание не входит.)
stm8/
#include "mapping.inc"
#include "STM8S105C6.inc"
;здесь все инициализации
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;
;here is my program
bset TIM4_PSCR,#0 ;prescaler
bset TIM4_PSCR,#1 ;prescaler
bset TIM4_PSCR,#2 ;prescaler
bset TIM4_IER,#0 ;set bit 0 for update irq's on irq23
bset TIM4_CR1,#0 ;cen
bset TIM4_CR1,#2 ;interrupt request when the counter overflow/underflow
infinite_loop.l
jra infinite_loop
interrupt Timer4UpdateInterupt
bres TIM4_SR,#0
nop ;А тут просто контрольная брейкпойнт
iret ;чтобы посмотреть, а произошло ли прерывание
segment 'vectit'
dc.l {$82000000+main} ; reset
dc.l {$82000000+Timer4UpdateInterupt} ; irq23
dc.l {$82000000+Timer4UpdateInterupt} ; irq23
dc.l {$82000000+Timer4UpdateInterupt} ; irq23
dc.l {$82000000+Timer4UpdateInterupt} ; irq23
dc.l {$82000000+Timer4UpdateInterupt} ; irq23
dc.l {$82000000+Timer4UpdateInterupt} ; irq23
dc.l {$82000000+Timer4UpdateInterupt} ; irq23
dc.l {$82000000+Timer4UpdateInterupt} ; irq23
dc.l {$82000000+Timer4UpdateInterupt} ; irq23
dc.l {$82000000+Timer4UpdateInterupt} ; irq23
dc.l {$82000000+Timer4UpdateInterupt} ; irq23
dc.l {$82000000+Timer4UpdateInterupt} ; irq23
dc.l {$82000000+Timer4UpdateInterupt} ; irq23
dc.l {$82000000+Timer4UpdateInterupt} ; irq23
dc.l {$82000000+Timer4UpdateInterupt} ; irq23
dc.l {$82000000+Timer4UpdateInterupt} ; irq23
dc.l {$82000000+Timer4UpdateInterupt} ; irq23
dc.l {$82000000+Timer4UpdateInterupt} ; irq23
dc.l {$82000000+Timer4UpdateInterupt} ; irq23
dc.l {$82000000+Timer4UpdateInterupt} ; irq23
dc.l {$82000000+Timer4UpdateInterupt} ; irq23
dc.l {$82000000+Timer4UpdateInterupt} ; irq23
dc.l {$82000000+Timer4UpdateInterupt} ; irq23
dc.l {$82000000+Timer4UpdateInterupt} ; irq23
dc.l {$82000000+Timer4UpdateInterupt} ; irq23
dc.l {$82000000+Timer4UpdateInterupt} ; irq23
dc.l {$82000000+Timer4UpdateInterupt} ; irq23
dc.l {$82000000+Timer4UpdateInterupt} ; irq23
dc.l {$82000000+Timer4UpdateInterupt} ; irq23
dc.l {$82000000+Timer4UpdateInterupt} ; irq23
dc.l {$82000000+Timer4UpdateInterupt} ; irq23
end