#include "io430.h"
void Key_init(void)
{
// P1REN |= BIT3; //打开上拉,电路板上没有上拉电阻,触发边沿是从高电平到低电平
P1IES |= BIT3; //选择触发边沿,下降沿触发
P1IE |= BIT3; //打开P1.3的中断
P1IFG &= 0x00;
}
int main( void )
{
WDTCTL = WDTPW + WDTHOLD; // 关闭看门狗
P1DIR |= BIT0; //P1.0管脚设置为输出
P1OUT |= BIT0; //P1.0管脚输出低电平
Key_init(); //调用IO中断初始化函数
_EINT(); //开启总中断,这一步没有的话,所有的中断都不能触发
while(1); //死循环
}
#pragma vector = PORT1_VECTOR //中断向量声明
__interrupt void Key_interrput(void)
{
unsigned int i;
for(i=0;i<0x1fff;i++); //消抖必不可少啊!!
if(P1IFG&BIT3) //判断是不是P1.3这个IO口产生了中断
{ //若产生中断P1IFG.3置1
P1OUT ^= BIT0; //LED2取反
P1IFG &= 0x00; //中断标志位 需要软件清除!!!
//P1REN |= BIT3;
}
}
此帖出自
小平头技术问答
一周热门 更多>