@[TOC]STM8L TIM1相关配置
Tim1基本介绍
TIM1由一个由可编程预分频器驱动的16位上下自动重载计数器组成。定时器可用于多种用途,包括:
•时基生成
•测量输入信号的脉冲长度(输入捕获)
•生成输出波形(输出比较,PWM和单脉冲模式)
•各种事件的中断功能(捕获,比较,溢出,中断,触发)
•捕获,比较,溢出事件的DMA请求功能
•与其他定时器或外部信号同步(外部时钟,复位,触发可校准)。
该定时器非常适用于各种控制应用,包括那些需要具有互补输出和死区时间插入的中心对齐PWM功能的应用。
定时器时钟可以来自内部时钟,也可以来自可通过配置寄存器选择的外部源。
配置
以下代码 自己配置了一个30S定时器,使用系统内部高速时钟16M,1600分频,装载值10000,重复计时30次而实现。本人使用的是STM8L052C6T6。不同STM8略微不同。
代码
void TIM1_Config(void)
{
TIM1_DeInit();
CLK_PeripheralClockConfig(CLK_Peripheral_TIM1, ENABLE);
TIM1_ClearITPendingBit(TIM1_IT_Update);
TIM1_TimeBaseInit(1599,TIM1_CounterMode_Up,10000,30);//30S
TIM1_ARRPreloadConfig(ENABLE);
TIM1_ITConfig(TIM1_IT_Update , ENABLE);
TIM1_GenerateEvent(TIM1_EventSource_Update);
while(TIM1_GetITStatus(TIM1_IT_Update) == RESET );// 清除计数器第一次无效中断
TIM1_ClearFlag(TIM1_IT_Update);
TIM1_Cmd(ENABLE);
}
『本文转载自网络,版权归原作者所有,如有侵权请联系删除』