本文主要总结关于STM8在库函数开发时,各条语句的含义。
(1)TIM1初始化配置函数
函数主要作用:对计数器的参数,工作模式进行设定,并使能;
void Tim1_Init(void)
{
TIM1_TimeBaseInit(16,TIM1_COUNTERMODE_UP,1000,0);
//(定时器频率:16分频即系统频率的1/16,为1M,向上计数,定时器溢出值,重装载计数从0开始)
TIM1_ITConfig(TIM1_IT_UPDATE , ENABLE);//中断配置与使能函数
TIM1_ARRPreloadConfig(ENABLE);//使能数值自动重装载功能
TIM1_Cmd(ENABLE);//开定时器
}
关于定时器溢出值的计算:定时器溢出值=预定定时时间(us)*定时器频率
(2)TIM1中断向量函数
函数主要作用:调用中断执行函数,并清除计数器标志位;
//中断向量函数
#pragma vector=0xD
__interrupt void TIM1_UPD_OVF_TRG_BRK_IRQHandler(void)
{
Tim1_Execut();//调用中断执行函数
TIM1_ClearITPendingBit(TIM1_IT_UPDATE);//清除更新计数器标志位
}
(3)中断执行函数
函数主要作用:按照自己的需要进行计时,并调用执行相关功能函数;
注意计数变量要声明成static类型,这关系到计数变量的生命周期;
static u16 i=0;
void Tim1_Execut(void)
{
i++;
if(i==1000)
{
i=0;
Led_Revese();//功能函数
}
}
(4)注意主函数中一定要开启总中断
__enable_interrupt();