历史上的今天

今天是:2024年10月18日(星期五)

正在发生

2019年10月18日 | MSP430F5529的IO口管脚的中断学习笔记

发布者:EternalSunset 来源: eefocus关键字:MSP430F5529  IO口管脚  中断 手机看文章 扫描二维码
随时随地手机看文章

非常简单的一个程序,在F5529的开发板上用按键的IO中断控制LED的亮灭:

#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:

break;

}

}

经验总结:

1.  按键需要延时消抖


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


3.  中断程序格式:


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


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


{


         switch(__even_in_range(P2IV,18))


         {


         case 0x06:


                   …


break;


         default:


                   break;


         }


}


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


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


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



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


关键字:MSP430F5529  IO口管脚  中断 引用地址:MSP430F5529的IO口管脚的中断学习笔记

上一篇:MSP430F5438时钟系统
下一篇:浅谈msp430f5529入门(1)——时钟模块DCO

推荐阅读

   近日,为鼓励高技能人才的成长,宁波市人力资源和社会保障局、宁波市财政局近期印发了《宁波市高技能人才专项资金管理暂行办法》。办法中明确,对于高技能人才和紧缺技能人才,均可提供相应培训补助。同时,对于高技能人才的评价、引进和奖励,宁波也将提供专门支持。以下具体的资助标准:1、市“155”公共实训基地建设计划的公共实训基地项目:市级...
10月18日,京东物流宣布升级“321一线人才建设项目”,未来5个月补贴3亿给一线员工,以进一步激励员工保障福利。从京东物流公布项目的细节看,未来5个月,将针对一线仓储、分拣员工及快递员提供近3亿补贴与激励。其中,额外投入1.38亿的业务高峰期补贴,对一线仓储和分拣员工给予持续5个月的补贴激励。同时每月新增3000万,用于快递员多劳多得的绩效激励。同时,京...
今日闻泰科技官方微博发布信息称,闻泰科技印度二期456亩制造中心已于昨日正式开工,预计2021年3月完成建设并投产,将成为闻泰在全球最大的生产基地,大幅缓解海外交付压力。据闻泰科技介绍,闻泰科技印度一期和二期制造中心项目位于安得拉邦。2019年7月,印度制造中心一期投产,包括PCBA和整机组包产线,二期除大规模扩充PCBA和整机组包产能外,还增加了...
1、准备标准库函数文件,官方的标准库函数为stsw-stm8069,解压后如下图:2、新建一个文件夹,本例子命名为stm8-project,新建四个子文件夹,分别命名为APP、Readme、USER、STM8S_StdPerph_Driver:3、从库函数例程以下目录拷贝文件inc和src两个文件夹以及内容至STM8S_StdPerph_Driver目录。4、从库函数例程以下目录拷贝文件main.c、stm8s_conf.h、stm8s_i...

史海拾趣

问答坊 | AI 解惑

功能图的基本结构

→『功能表图的基本结构』 (1)单序列 单序列由一系列相继激活的步组成,每一步的后面仅接有一个转换,每一个转换的后面只有一个步,如图5-22a所示。 图5-22 单序列与选择序列 a)单序列 b)选择序列开始 c)选择序列结束 (2)选择序列 选 ...…

查看全部问答∨

各大论坛经典帖子收藏

目 录 1. 硬件工程师值多少钱. 2 2. 决定高薪的细节守则. 2 3. 公司绝不会告诉你的20大秘密(一). 4 4. 公司绝不会告诉你的20大秘密(二). 9 5. 一个电子工程师的经验之谈. 12 6. 给年轻电子工程师的十大忠告. 13 7. ...…

查看全部问答∨

谁帮忙看一下这个关于SST39VF040擦除的小问题(附短小的代码)

下面是SST39VF040 Flash的扇区擦除代码,但是应该是有问题的,我擦除不成功,另外的读写和整片擦除都没有问题,就不贴出来了,哪位仁兄给我瞧瞧问题出在哪里? void Chip_Page_Erase(ulong s_addr) {           ulo ...…

查看全部问答∨

请问计算机如何把数据传输给显卡的?程序员如何提取这部分数据?

如题: 请问计算机如何把数据传输给显卡的?程序员应该如何提取这部分数据?…

查看全部问答∨

16进制文件(PCM文件)内容 如何自动加上0x头

1.原文件打开内容如下 D5 55 55 55 55 D5 ..... //后面有N多行 2.用什么软件或方法可以实现如下 1)自动在16进制文件前加0x; 2)在16进制数字之间加逗号; 0xD5, 0x55, 0x55, 0x55, 0x55, 0xD5, 请各位指点.谢谢!…

查看全部问答∨

编址方式(独立编址和统一编址)与结构(哈佛结构和冯.诺依曼结构)有关系吗?

    有些资料上说程序存储器和数据存储器统一编址就是冯.诺依曼结构或普林斯顿体系结构(Freescale的MC68HC05/08),而两者独立编址就是哈弗体系结构(MCS-51),而到了Microchip,他们说他们的PIC16系列除了采用“哈弗体系结构”(MCS-51 ...…

查看全部问答∨

请问怎么写能实现最快copy速度?

想在EVC4.2下用WIN32方式写一段程序实现Storge1盘数据copy到Storge2\\\\file1目录中. 请问怎么写能实现最快copy速度?…

查看全部问答∨

请问lm3s8962的MAC地址如何写入,写入后能否修改?

请问lm3s8962的MAC地址如何写入,写入后能否修改?…

查看全部问答∨

如此出错是何道理?

看28X DSP的例子  Ramfunc段 从FLASHD段copy到RAMH0段 ramfunc  :   LOAD = FLASHD,                    RUM  = RAMH0,     ...…

查看全部问答∨

锡膏搅拌机(日本MALCOM)

锡膏搅拌机(日本MALCOM)SPS-1(单罐)      SPS-2(双罐)有利于提高效率【特点】 ●容器内的夹具适用与各式包装锡膏罐,可直接在密封状态下进行自动搅拌,不氧化,不吸湿●搅拌均匀●搅拌时不需事先将锡膏进行解冻,经 ...…

查看全部问答∨
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved