打印
[STM32F1]

定时器B的pwm例程

[复制链接]
360|13
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
pengf|  楼主 | 2022-9-1 19:55 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求一个定时器B的pwm例程

使用特权

评论回复
沙发
zhenykun| | 2022-9-1 19:57 | 只看该作者
5529舵机的PWM信号控制的程序吗?

使用特权

评论回复
板凳
dingy| | 2022-9-1 19:58 | 只看该作者
设定一个变量来选择初始占空比,然后通过Timer_B定时1s,每隔一秒

使用特权

评论回复
地板
xxrs| | 2022-9-1 20:01 | 只看该作者
TB可以输出6路完整的PWM波形。

使用特权

评论回复
5
yszong| | 2022-9-1 20:02 | 只看该作者

void main(void)
{
  
  WDTCTL = WDTPW + WDTHOLD; // Stop WDT
  
   P1DIR |= 0x0C; // P1.2 and P1.3 output
   P1SEL |= 0x0C; // P1.2 and P1.3 TA1/2 options

   Init_TIMER_B();
   
   TACTL = TASSEL_2 + TACLR; // SMCLK, up mode
   
   CCR0 = 512-1; // PWM Period
   CCTL1 = OUTMOD_7 ; // CCR1 reset/set
   CCTL2 = OUTMOD_7 ; //CCR2 reset/set
   if(v==5)
   {
     CCR1 = 128; // CCR1 PWM duty cycle
     CCR2 = 384; // CCR2 PWM duty cycle
   }
   else if (v==12)
   {
     CCR1 = 384; // CCR1 PWM duty cycle
     CCR2 = 128; // CCR2 PWM duty cycle
   }
   else
   {
     CCR1 = 128; // CCR1 PWM duty cycle
     CCR2 = 384; // CCR2 PWM duty cycle
   }
   
   TACTL |= MC_1;      // Start Timer_A in up mode
   TBCTL |= MC_1;      // Start Timer_B in up mode
  
   _EINT();         //开全局中断
   _BIS_SR(LPM0_bits); // Enter LPM0
   
}




void  Init_TIMER_B()
{
    TBCTL |= TBSSEL0 +TBCLR; //ACLK
    TBCCTL0 = CCIE;
    TBCCR0 =32768;  //定时1s  
}

使用特权

评论回复
6
zwll| | 2022-9-1 20:03 | 只看该作者
怀疑你的e11触发的

使用特权

评论回复
7
dingy| | 2022-9-1 20:05 | 只看该作者
定时器是单片机常用的其本设备,用来产生精确计时或是其他功能

使用特权

评论回复
8
songqian17| | 2022-9-1 20:08 | 只看该作者
详细参考示例工程和main.c。

使用特权

评论回复
9
juventus9554| | 2022-9-1 20:10 | 只看该作者
TB可以输出6路完整的PWM波形

使用特权

评论回复
10
heweibig| | 2022-9-1 20:12 | 只看该作者
6路PWM很强啊,我输出一路的

使用特权

评论回复
11
dengdc| | 2022-9-1 20:14 | 只看该作者
获取上下沿的持续时间

使用特权

评论回复
12
juventus9554| | 2022-9-1 20:20 | 只看该作者
6路PWM相互之间能同时输出吗

使用特权

评论回复
13
wyjie| | 2022-9-1 20:22 | 只看该作者
涨知识了 谢啦

使用特权

评论回复
14
pengf|  楼主 | 2022-9-1 20:24 | 只看该作者
明白了,多谢大家讨论这么多哈

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

718

主题

10129

帖子

3

粉丝