p0中断.c

来自「应用于利而达MSP430-TEST42X板的液晶屏测试代码」· C语言 代码 · 共 40 行

C
40
字号
//=========================================//
//BEIJING LSD MCU TECH CO.,LTD
//P1.0口做外部中断的设置,做成多任务以便扩展
//                MSP430FXXX
//             -----------------
//         /|\|              XIN|- /|\
//          | |                 |   |
//          --|RST          XOUT|-  |
//            |                 |  1MΩ
//            |             P1.0|<--|
//                                 0.1uF
//                                  |
//                                 \|/
#include <msp430x41x.h>
unsigned char ISR_Symbol=0;                //任务标志
void Iint_Port1(void);                     //函数声明
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从睡眠模式唤醒
}
void Iint_Port1(void)
{   P1DIR&=~BIT0;                         //设置为输入方向
    P1SEL&=~BIT0;                         //设置为普通I/O口功能
    P1IES|=BIT0;                          //选择下降沿触发
    P1IE|=BIT0;                           //打开中断允许
    P1IFG=0;                              //P1IES的切换可能使P1IFG置位,需清除
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?