×
嵌入式 > 技术百科 > 详情

STM8学习总结三:TIM1定时器使用

发布时间:2020-06-03 发布时间:
|

本文主要总结关于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();


 

『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
家庭网络:从带宽共享走向内容共享