430比较器中断:每次切换边沿触发方式都会自动产中断?
#include <msp430g2353.h>#include "type.h"
#include "CPU.h"
/*******************************/
void SystemClkInitital()
{
DCOCTL=CALDCO_8MHZ;
BCSCTL1 = CALBC1_8MHZ;//设定为8m主频
WDTCTL = WDTPW + WDTHOLD; // Stop WDT//关闭看门狗
_BIS_SR(GIE);
}
/*******************************/
void ComparatorInitital()
{
CACTL1=CAON+CAREF0+CARSEL+CAIES+CAIE;//开启比较器 内部0.25VCC基准 下降沿中断使能
CACTL2=P2CA0;
CAPD=CAPD0;
}
/*******************************/
void main(void)
{
UINT16 i;
SystemClkInitital();
ComparatorInitital();
P2DIR|=BIT0;
while(1)
{
i++;
if(i==50)
{
i=0;
CACTL1^=CAIES;//比较器中断模式切换(上升沿 或 下降沿),为什么每次切换都进一次中断???
}
}
}
/**************************************/
/*************************************************/
#pragma vector=COMPARATORA_VECTOR
__interrupt void Compare(void) //比较器中断
{
P2OUT^= 0x01;//
} 比较器外部输入一直是0V,但每次切换边沿触发方式都会进入比较器中断。调试了两天了,一直没找到原因,请给位帮忙分析一下子,谢谢!!
示波器测量图示
本帖最后由 KAGE 于 2013-1-28 12:46 编辑测量结果 大家都没有遇到过?
430不懂,
不过这类问题通常是考虑外部硬件、或模式的设置,或者看看能不能先关闭中断,再切换模式,然后再开中断
看数据手册吧,貌似是这样的,在切换之前关了中断不就行了。 ckvlhf 发表于 2013-1-28 19:02 static/image/common/back.gif
看数据手册吧,貌似是这样的,在切换之前关了中断不就行了。
关了也不行,已经试了 KAGE 发表于 2013-1-28 19:57 static/image/common/back.gif
关了也不行,已经试了
这种情况不会出现吧,中断都关了怎么还能进去? ckvlhf 发表于 2013-1-28 20:40 static/image/common/back.gif
这种情况不会出现吧,中断都关了怎么还能进去?
关了以后,设定触发方式,打开终端,马上进入中断。
页:
[1]