12521843 发表于 2010-7-1 19:06:25

关于430TAIV变化的讨论

程序如下;
#include <msp430x11x1.h>

int main( void )
{
// Stop watchdog timer to prevent time out reset
//unsigned int i;
WDTCTL = WDTPW + WDTHOLD;
P1DIR=0x01;
CCTL0 = CCIE;
TACTL=TASSEL_2+MC_2+TAIE;
_BIS_SR(LPM4_bits+GIE);
}
#pragma vector=TIMERA0_VECTOR
__interrupt void Timer_a(void)
{
switch(TAIV)
{
case 2:break;
case 4:break;
case 10:P1OUT^=0x01;
break;
}}
在这个程序中,TAIV是如何变化的?

20050710212 发表于 2010-7-2 14:17:57

_BIS_SR(LPM4_bits+GIE)
你用的LPM4将所有始终都禁用了,定时器又如何工作。
改回LPM3用 ACLK 即TASSEL_1

12521843 发表于 2010-7-3 13:13:37

回复【1楼】20050710212
-----------------------------------------------------------------------
我刚开始学430,谢谢你的意见!

20050710212 发表于 2010-7-4 16:32:18

回复【2楼】12521843
-----------------------------------------------------------------------

不客气。发现我写错字了,是时钟,不是始终。

go_up 发表于 2012-11-2 22:28:29

20050710212 发表于 2010-7-4 16:32 static/image/common/back.gif
回复【2楼】12521843
-----------------------------------------------------------------------



我想问一下,要用到MSP5438系列的单片机,TAIV中为0时没有中断产生,那保留这一位有啥意义呢?
页: [1]
查看完整版本: 关于430TAIV变化的讨论