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从睡眠模式唤醒
}
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)
- openwebmailV1.60安装教学(11-12)
- Linux嵌入式系统开发平台选型探讨(11-09)
- Windows CE 进程、线程和内存管理(二)(11-09)