2019-03-24 10:17发布
shower.xu 发表于 2015-4-30 17:04 1、总中断使能 2、中断函数正确么
long5966 发表于 2015-4-30 18:13 是不是因为设了功能引脚啊?
最多设置5个标签!
这是我的程序:
#include "msp430x12x.h"
int main( void )
{
// Stop watchdog timer to prevent time out reset
WDTCTL = WDTPW + WDTHOLD;
unsigned long vout;
vout=0;
P1DIR&=0xf0; //p1.0~p1.3设置为输入
P1SEL|=0x0F; //功能引脚
P1IES|=0x0F; //下降沿触发
//P1IES&=0xF0; //上升沿触发
P1IE|=0x0F; //开中断
P1IFG &=0x00;
_EINT();
P1IE|=0x0F;
//P1IFG|= BIT0;
while(1);
}
#pragma vector=PORT1_VECTOR
__interrupt void port1 (void)
{
//unsigned int vout;
unsigned long vout;
//_DINT();
if((P1IFG&BIT0)==BIT0) //处理P1IN.0中断
{
P1IFG&=~BIT0; //清除中断标志
vout+=0x0088; //key0,粗调1V
}
else if ((P1IFG&BIT1)==BIT1)
{
P1IFG&=~BIT1;
vout-=0x0088; //key1,粗调
}
else if ((P1IFG&BIT2)==BIT2)
{
P1IFG&=~BIT2;
vout+=0x000D; //key2,微调100mV
}
else if ((P1IFG&BIT3)==BIT3)
{
P1IFG&=~BIT3;
vout-=0x000D; //key3,微调
}
// _EINT();
}
按键接P1.0-P1.3,按键按下进不了中断函数。
使用普通I/O功能,加上拉电阻,你完全可以参照官方例程来的!
是的!这个看漏了!!谢谢!
一周热门 更多>