stm8s定时器有高级定时器TIM1,通用定时器TIM2,TIM3,TIM5,以及基本定时器TIM4,TIM6。定时中断配置基本一样。需要注意的也就是分频不同,定时器位数不同。16位定时器配置后面再说,这里以基本定时器TIM4为例,产生2ms中断,配置如下:
TIM4_IER_UIE = 1;//使能TIM4溢出中断
TIM4_PSCR = 0x06; //配置TIM4 64分频,8us记一次数
TIM4_ARR = 0xF9; //自动重装载的值->249,2ms中断
TIM4_CNTR = 0xF9;
TIM4_CR1_CEN = 1; //使能TIM4计数
说明:主时钟为8M,根据手册,带入数值8000000/(2^6)=125000Hz,1/125000=8us,8*(0xF9+1)=2000us=2ms
中断函数如下:
/* Defines an interrupt handler for TIM4 vector. */
#pragma vector=25
__interrupt void TIM4_IRQHandler(void)
{
TIM4_SR_UIF = 0;//清中断标志
}
注意:这里中文手册翻译有误,基本定时器只有SR寄存器