微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > MSP430程序---P1.0口外部中断

MSP430程序---P1.0口外部中断

时间:11-13 来源:互联网 点击:
在中断中加入相应的代码,可以完成计数

//P1.0口外部中断的设置,做成多任务以便扩展

#include msp430x41x.h>

unsigned char ISR_Symbol=0;//任务标志

void Iint_Port1(void)

{

P1DIR&=~BIT0;//设置为输入方向

P1SEL&=~BIT0;//设置为普通I/O口功能

P1IES|=BIT0;//选择下降沿触发

P1IE|=BIT0; //打开中断允许

P1IFG=0; //P1IES的切换可能使P1IFG置位,需清除

}

void main(void)

{

WDTCTL=WDTPW+WDTHOLD; //关闭看门狗

Iint_Port1(); //初始化p1.0

_EINT(); //开总中断允许

while(1)

{

LPM3; //低功耗模式3,I/O口中断可将其唤醒

if((ISR_Symbol&BIT0)==BIT0)

{

ISR_Symbol&=~BIT0;//中断服务程序

}

else if((ISR_Symbol&BIT1)==BIT1)

{

ISR_Symbol&=~BIT1;//其他任务

}

}

}

interrupt[PORT1_VECTOR] void P1_ISR(void)

{

P1IFG=0;//多源中断,需靠软件清除P1IFG

ISR_Symbol|=BIT0; //置任务标志

_BIC_SR_IRQ(LPM3_bits);//将CPU从睡眠模式唤醒

}

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top