STM8S105系列单片机的PWM输出配置

STM8S105xx的定时器资源:

(1)2个16位通用定时器(TIM2、TIM3),带有2+3个CAPCOM通道(IC、OC或PWM);

(2)高级控制定时器(TIM1):16位,4个CAPCOM通道(捕获/比较通道),3个互补输出,死区插入和灵活的同步;

(3)带有8位预分频器的8位基本定时器(TIM4);

(4)自动唤醒定时器;

(5)2个看门狗定时器:窗口看门狗和独立看门狗。


使用高级控制定时器和普通通用定时器的PWM输出功能在初始化配置上有差异,下面做简单分析:

TIM1——16位高级控制定时器

带有16位预分频的16位递增、递减和双向自动重装载计数器

TIM2、TIM3——16位通用定时器

16位向上计数和自动装载计数器

15位预分频器,分频系数可调整为1~32768之间的2次幂数值

TIM4——8位基本定时器

8位自动装载可调整的预分频器,比例可选为1~128之间的2次幂


STM8S105系列单片机的PWM输出配置_第1张图片


配置TIM1_CH1的PWM输出功能:

void Time1_Init()

{

      CLK->CKDIVR=0x00; 

      /*
     * 这里设置TIM2的计数频率为 16M/1600=10000Hz
     */

      TIM1_TimeBaseInit(1599,TIM1_COUNTERMODE_UP,2000,0); //分频1600,向上计数,TIM1_ARR=1000,重复计数器为0

    /*OC1初始化:PWM1模式

                               输出使能

                               互补输出不使能

                               CCR1=1000,占空比为50%

                               输出有效极性为高

                               互补输出有效极性为高(无作用)

                               空闲时输出高

                               空闲时互补输出高(无作用)

     */

      TIM1_OC1Init(TIM1_OCMODE_PWM1,

      TIM1_OUTPUTSTATE_ENABLE,

      TIM1_OUTPUTNSTATE_DISABLE,

      1000,

      TIM1_OCPOLARITY_HIGH,

      TIM1_OCNPOLARITY_HIGH,

      TIM1_OCIDLESTATE_SET,

      TIM1_OCNIDLESTATE_SET);

     

      TIM1_OC1PreloadConfig(ENABLE);  

      TIM1_CtrlPWMOutputs(ENABLE);  //PWM输出使能

      TIM1_Cmd(ENABLE);     //定时器开始计数


配置TIM2_CH1的PWM输出功能:

void TIMER2_PWMInit(unsigned short timebase,unsigned short t)
{
      TIM2_DeInit();  
      /*
       * TIM2 Frequency = TIM2 counter clock/(ARR + 1) 
       * 这里设置TIM2的计数频率为 16M/32/(timebase+1)=1K
       */
      TIM2_TimeBaseInit(TIM2_PRESCALER_32, timebase);
    
      /* 
       * PWM1 Mode configuration: Channel1
       * TIM2 Channel1 duty cycle = [TIM2_CCR1/(TIM2_ARR + 1)] * 100 = 50%
       * TIM2 Channel2 duty cycle = [TIM2_CCR2/(TIM2_ARR + 1)] * 100 = 50%
       */ 
    
      /* 测试通道1 */
      TIM2_OC1Init(TIM2_OCMODE_PWM1, TIM2_OUTPUTSTATE_ENABLE, t, TIM2_OCPOLARITY_HIGH);
      TIM2_OC1PreloadConfig(ENABLE);
     
      TIM2_Cmd(ENABLE);
}


你可能感兴趣的:(STM8S105系列单片机)