×
单片机 > 单片机程序设计 > 详情

MSP430G2553学习笔记 DAY2 中断学习及初始化设置

发布时间:2020-08-31 发布时间:
|

IO中断的使用

1.寄存器

PxIE IO中断使能寄存器

PxIES 中断触发边沿选择。0上升沿,1下降沿

PxIFG 中断标志位寄存器。事件发生后被置1,响应后需要手动置0


寄存器的使用方法与day1相同,不再赘述

2.中断函数的写法

#pragma vector=PORT1_VECTOT;

//#pragma为系统编译指令;vector=后加中断向量地址的宏定义,如定时器TIMER0_A1_VECTOR;

__interrupt void PORT1(void)

//__interrupt中断服务关键字(前面是两道下划线);PORT1为函数名,可自定义

{

//用户代码

}


3.按键通过中断控制LED

根据按键S2的状态,控制绿色LED灯。每按下S2一次,LED改变一次亮灭状态。


#include

int main()

{

    WDTCTL = WDTPW | WDTHOLD;

    P1DIR = BIT6;

    P1REN = BIT3;

    P1OUT = BIT3;

    P1IE = BIT3;//开P1.3中断

    P1IES = BIT3;//P1.3中断触发边沿选择下降沿,0为上升沿,1为下降沿;

    P1IFG &= ~BIT3;//P1.3中断标志位置0


    _BIS_SR(GIE);//开总中断

    while(1)

    {

        __no_operation();  //什么都不做

    }

}


#pragma vector=PORT1_VECTOR

__interrupt void PORT1(void)

{

    P1OUT ^= BIT6;

    P1IFG &= ~BIT3;//中断标志位置0

}


完成GPIO初始化后,务必要使用_BIS_SR(GIE)指令来开总中断,否则不会相应中断请求。



『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
8051单片机的函数发生器的设计