您现在的位置: 主页 > MCU > MSP430 > MSP430F5529的IO口管脚的中断学习笔记
本文所属标签:
为本文创立个标签吧:

MSP430F5529的IO口管脚的中断学习笔记

来源:网络整理 网络用户发布,如有版权联系网管删除 2018-06-29 

#include

int main(void)

WDTCTL = WDTPW + WDTHOLD; // Stop watchdog timer

P1DIR |= BIT0; //将LED1对应的IO口P1.0设置为输出

P1OUT &= ~BIT0; //初始化该灯设置为灭

P1DIR &= ~BIT7; //将按键1对应的IO口P1.7设置为输入

P1IFG &= ~BIT7; //初始化清空中断标志位

P1IE |= BIT7; //P1.7中断使能

P1IES |= BIT7; //下降沿产生中断

P1OUT |= BIT7; //P1.7设置为上拉电阻:OUT = 1; REN = 1;

P1REN |= BIT7;

__enable_interrupt();

while(1);

#pragma vector = PORT1_VECTOR //固定格式,声明中断向量地址,不能变

__interrupt void LED(void) //函数名,可以任意定义

int i;

switch(__even_in_range(P1IV,18))

case 0x10:

for (i = 0; i < 12000; i++);

if ((P1IN & BIT7) == 0) //注意位运算的优先级!!!非常重要

P1OUT ^= BIT0;

break;

default:

1. 按键需要延时消抖

2. 标志位需要手动清零 (此处不完全正确,还有问题需要考虑)

3. 中断程序格式:

#pragma vector = PORT2_VECTOR //固定格式,声明中断向量地址,不能变

__interrupt void fuck430(void) //函数名,可以任意定义

switch(__even_in_range(P2IV,18))

case 0x06:

4. 主程序中要开总中断,然后有循环

5. 位运算的优先级很低,注意加括号

6. 按键的上拉电阻,OUT、REN、IES

一上午终于把IO中断弄懂了。吸取位运算优先级的教训。



              查看评论 回复



嵌入式交流网主页 > MCU > MSP430 > MSP430F5529的IO口管脚的中断学习笔记
 设置 中断 按键

"MSP430F5529的IO口管脚的中断学习笔记"的相关文章

网站地图

围观()