守时器都差不多,无非便是计数,溢出了标志置位,假如中止答应的话发生一个中止。提到中止,STM8S105的中止向量表如下
时基单元:
计数模式:
共有三种:向上,向下,中心对齐
以向上计数为例:计数器从0计数到用户界说的比较值(TIMx_ARR寄存器的值),然后从头从0开端计数并发生一个计数器溢出事情,一起,假如TIM1_CR1寄存器的UDIS位是0,将会发生一个更新事情(UEV)。
关于IAR中止函数的写法
asm(“sim”);//关大局中止
asm(“rim”);//开大局中止
#pragma vector=TIM2_OVR_UIF_vector (这儿依据上面的中止向量表选择要进入的中止的向量)
__interrupt void TIM2_OVR_UIF(void)//__interrupt关键字表明中止函数
{
//内容
}
参阅程序:(以TIM2为例)
void TIM2_Init(void)
{//守时器1初始化
}
#pragma vector=TIM2_OVR_UIF_vector
__interrupt void TIM2_OVR_UIF(void)
{
}