AC695X独立输出8路PWM+红外遥控接收

我上一篇写了:AC692X独立5路PWM+红外接收。
这次直接AC695X独立输出8路PWM+红外遥控接收。
系统硬件真实的PWM:
PWM0-PWM3:PA5.PA12.PB3.PB5
红外用默认SDK:timer3
PWM1-PWM2:我们可以映射也可以用真实的IO口

大体解题思路就是:利用电机硬件6PWM+2个真实PWM
首先电机硬件PWM:
在这里插入图片描述
他是1组H和L其实都可以用,1共是12脚位,最好用他硬件对应的,
因为我发现695的只有3路映射,电机也是。

电机里面有说:
//注意: CH3, CH4, CH5不支持通过 output channel输出
意思就是:CH0-CH2是可以映射的,也就是可以任意IO,不一定要硬件固定的IO。

上代码:
首先系统真实2个PWM:
配置:
JL_TIMER1->CON = 0;
JL_TIMER1->CNT = 0;
JL_TIMER1->PRD = 255;
JL_TIMER1->PWM = 0;
JL_TIMER1>CON =BIT(0)|BIT(3)|BIT(4)|BIT(5)|BIT(8);
JL_PORTA->PU |= BIT(12);
JL_PORTA->PD |= BIT(12);
JL_PORTA->DIR &= ~BIT(12);

	JL_TIMER2->CON = 0;
	JL_TIMER2->CNT = 0;
	JL_TIMER2->PRD = 255;
	JL_TIMER2->PWM = 0;
	JL_TIMER2->CON =BIT(0)|BIT(3)|BIT(4)|BIT(5)|BIT(8);
	JL_PORTB->PU |= BIT(3);
	JL_PORTB->PD |= BIT(3);
	JL_PORTB->DIR &= ~BIT(3);

调用:JL_TIMER1->PWM和JL_TIMER2->PWM赋值0-255就行.

然后电机6PWM配置:

void mmcpwmch0(uint32_t duty_parm)
{
mcpwm_set_duty(pwm_ch0, pwm_timer0, duty_parm);
}

void mmcpwmch1(uint32_t duty_parm)
{
mcpwm_set_duty(p

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值