以下的程序,用CCR0计数可以让LED闪烁,为什么换了CCR1计数中断不能一直进行,让LED显示闪烁啊
!#include "msp430x14x.h"void main(void)
{
WDTCTL=WDTPW+WDTHOLD;
P4DIR|=0x02;
TACTL=TASSEL_1+MC_1;
CCTL1=CCIE;
CCR1=1500;
_EINT();
_BIS_SR(CPUOFF);
} #pragma vector=TIMERA1_VECTOR
__interrupt void Timer_A1(void)
{
P4OUT^=0x02;
CCR1=1500;
}
此帖出自
小平头技术问答
1. CCR1和CCR2赋值是不是要小于CCR0的啊,还是只是在某一种模式下是这样?
2. CCR1和CCR2的值是不是每次中断后会自动清除,需要在每次中断后再次赋值,才能使他们持续中断从而达到产生PWM输出的,目的啊?
3. CCR0,CCR1,CCR2在连续计数模式下说需要设置偏移量,这个偏移量是如何计算出来的啊?
如ACLK=TACLK=32768Hz
P1.1->CCR0->32768/(2*4)=4096Hz
P1.2->CCR1->32768/(2*16)=1024Hz
P1.3->CCR2->32768/(2*100)=163.84Hz
4. CCR0,CCR1,CCR2在连续计数模式下产生PWM脉冲,是不是会产生溢出,需要判断在大于65535后减掉65535啊?
一周热门 更多>