msp430定时器输出模式4 是如何进入中断的?

#innlude<msp430.h>voidmain(){WDTCTL=WDTPW+WDTHOLD;P1SEL|=0X0E;//p1koi的1234作位内部时钟资源的输出... #innlude<msp430.h>
void main()
{
WDTCTL=WDTPW+WDTHOLD;
P1SEL|=0X0E; //p1 koi的1 2 3 4作位内部时钟资源的输出
P1DIR |= 0X0F; //输出
CCTL0=OUTMOD_4+CCIE;

CCTL1=OUTMOD_4+CCIE;
CCTL2=OUTMOD_4+CCIE;

TACTL=TASSEL_1+MC_2+TAIE// 连续计数模式 时钟源选择为辅助系统时钟
_BIS_SR(LPM0_bits+GIE); //低功耗 总中断
}
#pragma vector = TIMEA0_VECTOR
__interrupt void Time_A0(void)
{

CCR0+=327658;
}
#pragma vector = TIMEA1_VECTOR
__interrupt void Time_A1(void)
{

swith(TAIV)

{
case 2: CCR1+=32768/2; //周期为 1

case 4: CCR2+=32768/2; //0.25

case 10: P1OUT^= 0X01; //4 定时器溢出中断

}

}
溢出中断我倒是能理解,计满就进入了,主程序中都没有设置CCrx的值,其他中断是如何进入的,不理解啊..
展开
 我来答
匿名用户
2014-08-07
展开全部
主程序中都没有设置CCrx的值,其他中断是如何进入的,不理解啊..

-----------CCRx你是没赋值,但是,你程序里没给它初始化并不代表它没有啊,上电后,他们的值应该全是0,你只要使能了中断,TAR又在跑,当TAR等于CCRx,它当然要进去。
追问
你的意思是它一上电后TAR等于ccrx=0  然后就进入中断,然后在中断里给ccrx赋值!  可以这么理解吗
追答
错了!比方说 TA0CCR0这个寄存器,你是没有对它赋值,但是,它依然存在。刚上电的时候,它的值比方说是0, 你开启TA的时候,TAR这个计数器就会开始计数。总会出现TAR等于TA0CCR0的时刻,而这时候你 CCTL0=OUTMOD_4+CCIE;使能了中断,达到了触发条件,人家当然要进中断!
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式