msp430定时器A工作在连续计数模式时,IO口中断就进不去了,请问高手为什么啊

请问“msp430定时器A工作在连续计数模式时,IO口中断就进不去了,请问高手为什么啊?”怎么解决的呀?谢谢了

第1个回答  2012-07-23
首先,你要在IO中断中手动清除IO中断标志位,然后再调用_EINT()函数打开全局中断,另外你要在主程序中加一个"while(1) ;"死循环这样就OK了。追问

求大神啊,这些我都看了,都试了

追答

你在主程序中有没有打开总中断?或者你的IO中断服务程序定义有没有什么纰漏?IO端口寄存器设置有没有什么问题,你都检查一遍

追问

IO中断程序我什么都没写,只加了句__delay_cycles(1000)以测试是否能进入中断,其他的我再检查检查

神,你好,找到原因了,程序写得不好。
我把_EINT();放到while(1)循环后面了。

本回答被提问者采纳
第2个回答  2012-07-24
中断没开,我发一个msp430g2553的例子
void main()
{
WDTCTL = WDTHOLD + WDTPW;
P1DIR =0xf7;
P1OUT=0X08;
P1REN |= BIT3;
P1IES=0x08;
// P1IFG &= ~BIT3; 这个也可以
P1IFG=0x00;
P1IE=0x08;
_EINT();
while(1);
}本回答被网友采纳

msp430 定时器 连续计数模式
你为什么要改初值呢,使用连续计数模式,就是让计数器不断从0增到65535,依此循环。而在这过程中,当TAR=CCRX时,就会产生中断,在中断函数中,你只要将CCRX+=某个值,那么下次TAR+=刚才的CCRX+某个值时就又会产生中断,这样来控制产生中断的时间间隔。

MSP430的CCRx中断在连续计数模式下怎么产生中断的
首先,如果你只是用连续计数模式,哪么CCTLx(比较捕获寄存器)根本可以不设置,其次,CCR0的初值没有设置,中断只会在定时器溢出时才能发生。然后,第二个中断,你是想用CCR1,CCR2吧,,也是因为你没设置初值,TAIV的值只会是10,也就是溢出中断产生才会进中断。case中的2,4是计数值到CCR1,2而...

关于MSP430单片机 定时器A, timerA 的问题.
问题出在Timer_A的计数模式上,3种活动模式都不可能达到你想要的效果,因为比较寄存器总是不断的和计数器TA进行比较,然后相同时产生中断,所以你的想法很难实现。1、如果是“增计数模式”,那么TAR可以增计数到CCR0的值,然后复位为0,再开始新一轮的计数,在此期间一旦有CCR1\/2\/3\/4\/5\/6之一与...

MSP430 这个程序为什么不能进入中断 ,QQ370704851
程序没错,应是可以进中断,你可能用的IAR软件仿真。IAR软件仿真,若要用定时A中断,需设置simulator\\interrupt setup...,添加定时A中断。

MSP430单片机定时器工作在捕获模式下,计数模式只能用连续计数模式? 而...
就以定时器A来举例,TImerA一共有两个中断向量,一个单独分配给CCR0,另一个作为公用的中断向量用于定时器和另外两个捕获比寄存器。CCR0具有最高的中断优先级,因为CCR0能用于定义增计数模式和增减计数模式的周期。CCR1和CCR2以及定时器共用另一个中断向量。捕获比较寄存器设置很灵活的,建议多看看430...

msp430单片机定时器自动跑是怎么个原理呢??求解啊!
最简单的工作方式是这样的:在连续计数模式下(TA计数模式的一种),Timer_A3的运行原理有点像公共汽车,起点是定时计数器TAR=0,终点是定时计数器TAR=0FFFFH,3个捕获比较器CCR0,CCR1,CCR2就像公共汽车的每一站,TAR从0开始计数,TAR的值和哪个捕获比较器相等,这个捕获比较器就抛出一个中断,当TAR...

为什么在连续模式下CCR0的值对中断的间隔没有影响(MSP430),求高手...
连续模式中定时器从0计数到0FFFFh,然后再重新从0开始计数,如此循环;当定时器充0FFFFh变回0时,TAIFG中断标志位置位。上述过程与CCRx值无关吧。

msp430中断定时的问题,该怎么算啊,如图P1.1多长时间去翻一次啊啊,该...
CCTL0 = CCIE;\/\/ 此句是使能CCR0的中断,也就是当上面提到的TAR等于CCR0时会触发一个中断而使程序进入相应的中断服务程序中,从而翻转P1.1。因为最初的TAR为0,所以相当于经过50000个SMCLK后翻转一下P1.1。而中断服务程序中的CCR0 += 50000;则是告诉定时器经过50000个SMCLK后再产生中断,也就...

msp430如何让定时器计数器重新开始计数。使它重复不断的产生中断
1、你的GIE没开,也许压根没产生过中断。2、也许你开GIE了。TI_CC_LED1在异或下能亮,说明你的LED1的控制位应该是0吧?既下拉点亮LED1,但你要知道0^0永远都是0,你的LED1永远也都是亮着的。3、你打算LED2闪烁,可你用或语句它只能保持一个状态(恰恰这个状态是1吧?LED2就这么灭着不亮)...

msp430中定时器a工作室如何改变ccro的值
不用改变CCR0的值 只要赋初值就行 CCR0的值 就是计时器循环周期 连续计数模式 在中端程序中自己软件改变CCR0的值 如CCR0+=50000;循环周期为50000 工作在捕获模式下 当捕获到你想捕获的信号 如上升沿时 系统会把TAR的值赋给CCR0 从而产生中断~~~就是这样~希望能帮到你 ...

相似回答