为什么这段陈程序CCR1计数中断不能一直进行啊!

2019-03-24 11:45发布

以下的程序,用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;
} 此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
13条回答
零晨
2019-03-24 22:12
< :TI_MSP430_内容页_SA7 --> 版主,再问下啊,谢谢了!初学者,有些地方不明白,想问问!呵呵!
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啊?

一周热门 更多>

相关问题

    相关文章