杰理AC692X---三路定时器PWM

692N  三路 PWM  的设置方法
1、默认的 TIMER 对应的 PWM 输出的 IO 口,
PWM0--TIMER0--PA1
PWM1--TIMER1--PA4
PWM2--TIMER2--PB3
PWM3--TIMER3--PB4
PWM 不通过 OUTPUTCHANNEL 设置的时候,PWM 从默认的 IO 口输出


2、由于 TIMER0 作系统时钟,所以最多可以输出 3 路 PWM,而且 3 路 PWM 可以通过 OUTPUTCHANNEL
输出到任意的 IO 口上,输出 3 路 PWM 参考程序,
void led_pwm_init(void)
{
set_timer1_pwm(500L, 10);
set_timer3_pwm(500L, 50);
set_timer2_pwm(500L, 90);
}
static void set_timer1_pwm(u32 fre, u8 duty)
{
SFR(JL_IOMAP->CON3, 20, 4, 3);//CHANNEL1, 对应输出 IO 口的 OUT:0,DIE:1
JL_TIMER1->CON = 0x0000;
JL_TIMER1->PRD = OSC_Hz / (4 * fre);
JL_TIMER1->PWM = (JL_TIMER1->PRD * duty) / 100;
JL_TIMER1->CON = (1 << 4) | (1 << 8) | (1 << 0) | (2 << 2);
JL_PORTA->PU |= BIT(12);
JL_PORTA->PD |= BIT(12);
JL_PORTA->DIR &= ~BIT(12);
JL_PORTA->OUT &= ~BIT(13);
JL_PORTA->DIE |= BIT(12);
}

static void set_timer3_pwm(u32 fre, u8 duty)
{
SFR(JL_IOMAP->CON1, 8, 4, 15);// CHANNEL0, 对应输出 IO 口的 OUT:0,DIE:0
JL_TIMER3->CON = 0x0000;
JL_TIMER3->PRD = OSC_Hz / (4 * fre);
JL_TIMER3->PWM = (JL_TIMER3->PRD * duty) / 100;
JL_TIMER3->CON = (1 << 4) | (1 << 8) | (1 << 0) | (2 << 2);
JL_PORTA->PU |= BIT(13);
JL_PORTA->PD |= BIT(13);
JL_PORTA->DIR &= ~BIT(13);
JL_PORTA->OUT &= ~BIT(13);
JL_PORTA->DIE &= ~BIT(13);
}
static void set_timer2_pwm(u32 fre, u8 duty)
{
SFR(JL_IOMAP->CON3, 24, 4, 14);//CHANNEL2,对应输出 IO 口的 OUT:1,DIE:0
JL_TIMER2->CON = 0x0000;
JL_TIMER2->PRD = OSC_Hz / (4 * fre);
JL_TIMER2->PWM = (JL_TIMER2->PRD * duty) / 100;
JL_TIMER2->CON = (1 << 4) | (1 << 8) | (1 << 0) | (2 << 2);
JL_PORTB->PU |= BIT(13);
JL_PORTB->PD |= BIT(13);
JL_PORTB->DIR &= ~BIT(13);
JL_PORTB->OUT |= BIT(13);
JL_PORTB->DIE &= ~BIT(13);
}
3、寄存器说明
对应的寄存器  对应的 IO 口的 OUT 和 DIE
OUTPUTCHANNLE0  IOMC1 的 8~11 位  00
OUTPUTCHANNLE1  IOMC3 的 20~23 位  01
OUTPUTCHANNLE2  IOMC3 的 24~27 位  10
OUTPUTCHANNLE3  IOMC3 的 28~31 位  11

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Jim天河

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值