用的是67791芯片,看了一遍输出PWM信号,都是将CCR0作为周期设定使用,但是看到引脚是有TA0.0输出功能。
问一下是否能够使用TA0.0输出PWM信号?还是这个TA0.0本来就是作其他用途,不是用于PWM的?
谢谢!
灰小子:
TA0.0可以输出pwm信号的,不过要使用定时器A0的时候才可以
你看的例程使用的哪个定时器?
user4207297:
回复 灰小子:
我没有找到用TA0.0输出PWM信号的例程。
目前我看到用TA0的例子都是用CCR0定义周期,用其他比较器设定占空比,然后输出的。
比如:
// Setup P2.1 TA0.1, P2.2 TA0.2P2DIR |= BIT1;// P2.1/TA0.1 outputP2SEL0 |= BIT1;// Output TA1P2DIR |= BIT2;// P2.2/TA0.2 outputP2SEL0 |= BIT2;// Output TA2
// Setup TA0TA0CCR0 = 512 – 1;// PWM PeriodTA0CCTL1 = OUTMOD_7;// CCR1 reset/setTA0CCR1 = 384;// CCR1 PWM duty cycleTA0CCTL2 = OUTMOD_7;// CCR2 reset/setTA0CCR2 = 128;// CCR2 PWM duty cycleTA0CTL = TASSEL_2 | MC_1 | TACLR;// SMCLK, up mode, clear TAR
user4207297:
我现在想到的用CCR0做PWM的方法是TA使用连续计数模式,然后利用计数到0xFFFF的溢出中断,和CCR0中断来做PWM,但这样周期只能靠改变选择的时钟频率来调整了,比较麻烦,而且好像也用不到TA0.0这个输出口功能。
Susan Yang:
回复 user4207297:
您可以参考下TI例程内的
MSP430F677x_TA1_16.cTimer1_A1, PWM TA1.1, Up Mode, DCO SMCLK
MSP430F677x_TA1_17.cTimer1_A1, PWM TA1.1, Up Mode, 32kHz ACLK
MSP430F677x_TA1_19.cTimer1_A1, PWM TA1.1, Up/Down Mode, DCO SMCLK
MSP430F677x_TA1_20.cTimer1_A1, PWM TA1.1, Up/Down Mode, 32kHz ACLK
user4207297:
回复 Susan Yang:
你提供的例程是TA1.1输出PWM,CCR0设周期,其他比较器设占空比,然后输出PWM,这个没问题。
我现在问题是TA0.0有何种方法输出PWM?我看下来是实现不了的,想确认一下是不是这样。
Ling Zhu2:
回复 user4207297:
TA0.0可以输出,如果timer工作在连续计数模式,周期是默认的,不需要CCR0设置周期。
user4207297:
回复 Ling Zhu2:
如果使用TA0.0输出模式(也就是CCR0)的话,我看了手册里的output modes说明,那只有001置位、100取反,101复位可以使用,虽然使用连续计数模式可以固定周期,但占空比没办法设,最多是使用取反达到双周期的50%占空比