历史上的今天
返回首页

历史上的今天

今天是:2024年12月21日(星期六)

2020年12月21日 | 基于MSP430G2553的IO外部中断配置说明

2020-12-21 来源:elecfans

这一篇文章将说明MSP430G2553的IO中断配置,整个P1的IO都可以配置IO中断,但中断处理函数只有一个,MSP430和大多数MCU一样提供上升沿、下降沿选择。

在Launchpad上有按键S2,接在P1.3口,当按下后P1.3将接入高电平,从而触发中断。


在实例代码中,配置了P1.3和P1.6的LED灯,当按下P1.3的按键产生中断,LED灯将切换点亮

基于MSP430G2553的IO外部中断配置说明

1.按键的中断配置

要配置按键中断,需要先设置P1.3口为输入,并且设置上拉电阻以保障稳定性,

P1DIR &= ~BIT3;//设置P1.3为输入

P1REN |= BIT3;//启用P1.3电阻

在启用电阻后,由P1OUT来配置下拉还是上拉

P1OUT |= BIT3;//设置上拉电阻

通过P1IES寄存器设置上升沿,0为下降沿

P1IES |= BIT3;//P1.3中断边缘选择

需要对P1的中断进行使能,除了这里还有总中断需要使能(在main函数中)

P1IE |= BIT3;//P1.3中断使能

=====================================================================

2.中断处理函数

在中断处理函数中处理LED程序

编译器指示

#pragma vector=PORT1_VECTOR

__interrupt void PORT1_ISR(void)

{

delay(100);//约100ms

P1OUT ^= (1《《6);//反向P1.0和P1.6

P1OUT ^= (1《《0);

P1IFG = 0;//清除中断标识

}

=====================================================================

源代码:

//P1.0---------Red Led

//P1.3---------Button

//P1.6---------Green Led

#include “msp430g2553.h”

//名称:delay(int time)

//功能:延时程序

void delay(int TIme)

{

staTIc int i,j;

for(i=0;i

for(j=0;j《100;j++)

{

}

}

//名称:InitLed()

//功能:初始化LED

void InitLed()

{

P1DIR |= BIT0+BIT6;//设置BIT0和BIT6为输出

P1OUT &= ~0x01; //设置BIT0和BIT6低电平

P1OUT |= 0x40; //设置BIT0和BIT6低电平

}

//名称:IniTIOInterrupt()

//功能:初始化P1的按键中断配置

void IniTIOInterrupt()

{

P1DIR &= ~BIT3;//设置P1.3为输入

P1REN |= BIT3;//启用P1.3电阻

P1OUT |= BIT3;//设置上拉电阻

P1IES |= BIT3;//P1.3中断边缘选择

P1IE |= BIT3;//P1.3中断使能

P1IFG = 0x00;//清除中断标识

}

//名称:PORT1_ISR(void)

//功能:按键中断的处理函数

#pragma vector=PORT1_VECTOR

__interrupt void PORT1_ISR(void)

{

delay(100);//约100ms

P1OUT ^= (1《《6);

P1OUT ^= (1《《0);

P1IFG = 0;//清除中断标识

}

int main( void )

{

WDTCTL = WDTPW + WDTHOLD;

InitLed();//初始化LED端口

InitIOInterrupt();//初始化IO中断

_EINT();//开总中断

while(1);

return 0;

}


推荐阅读

史海拾趣

Gulf Semiconductor公司的发展小趣事

Gulf Semiconductor在电子行业中的五个发展故事

故事一:进入中国市场与本地化生产

Gulf Semiconductor(海湾电子)自1987年起便踏入中国市场,成为较早一批在中国设立生产基地的国际化整流二极管制造商。公司迅速适应了中国市场的需求,并建立了完善的管理体系,通过了ISO14001:2004、ISO9001:2000、ISO/TS 16949:2002等质量及环境管理体系认证。这一举措不仅提升了产品质量,还增强了客户信心,使Gulf Semiconductor在照明、电源、消费类电子等领域迅速占据一席之地。通过本地化生产,公司有效降低了成本,提高了竞争力,并成功吸引了如Samsung、LG、Philips等国际知名企业的合作。

故事二:技术创新与产品升级

Gulf Semiconductor始终将技术创新视为企业发展的核心动力。公司不断投入研发,掌握了先进的光阻玻璃烧结、特制的SIPOS工艺等多种工艺技术,这些技术使得公司产品在高压、高温等极端环境下依然能够保持高可靠性。特别是公司主推的GP类产品(玻融钝化整流器),凭借其出色的性能,获得了众多国际客户的全面认证和使用。此外,公司还积极开发世界著名整流器制造商的替用产品,产品性能可达到原厂的同等水平,进一步提升了市场竞争力。

故事三:客户服务与售后支持

Gulf Semiconductor深知客户满意是企业发展的关键。公司建立了完善的客户服务体系,为客户提供从产品设计、试产到批量投产的全程支持。在产品应用过程中,一旦出现个别产品缺陷或失效,公司能够迅速响应,分析问题原因,并采取纠正及预防措施,确保客户利益最大化。这种以客户为中心的服务理念,赢得了广大客户的信任和好评。

故事四:市场拓展与国际合作

随着全球电子行业的快速发展,Gulf Semiconductor不断拓宽市场领域,积极与国际知名企业建立合作关系。公司通过参加国际展会、举办技术交流会等方式,向世界展示其先进的技术和产品。同时,公司还加强与国际同行的交流与合作,共同推动电子行业的发展。这些努力不仅提升了Gulf Semiconductor在国际市场的知名度,还为其带来了更多的商业机会。

故事五:可持续发展与环保理念

作为一家负责任的企业,Gulf Semiconductor始终将可持续发展和环保理念贯穿于生产经营的全过程。公司积极采用节能减排技术,减少碳排放,并致力于绿色生产。此外,公司还积极参与社会公益活动,为环保事业贡献自己的力量。这些举措不仅提升了公司的社会形象,还为其赢得了更多消费者的青睐。在未来,Gulf Semiconductor将继续坚持可持续发展和环保理念,为推动电子行业的绿色发展贡献更多力量。

Green Power Solutions公司的发展小趣事
使用合适的工具打开稳压器的外壳,注意不要损坏内部元件。
迦美信芯(CanaanTek)公司的发展小趣事

随着智能手机市场的不断成熟和发展,手机射频前端对频段的支持、开关速度的变化以及天线调谐方向提出了更高的要求。迦美信芯紧抓这一市场机遇,早在2014年就开始布局射频前端芯片领域,专注该领域芯片的研发与设计。经过多年的努力和发展,迦美信芯已成为国内领先的手机品牌在天线开关以及天线调谐器方面的主要供应商之一,为全球TOP 5的手机终端客户提供大量优质产品。

FCI [First Components International]公司的发展小趣事

随着智能手机市场的不断成熟和发展,手机射频前端对频段的支持、开关速度的变化以及天线调谐方向提出了更高的要求。迦美信芯紧抓这一市场机遇,早在2014年就开始布局射频前端芯片领域,专注该领域芯片的研发与设计。经过多年的努力和发展,迦美信芯已成为国内领先的手机品牌在天线开关以及天线调谐器方面的主要供应商之一,为全球TOP 5的手机终端客户提供大量优质产品。

Diodes Incorporated公司的发展小趣事

在公司的发展过程中,Diodes Incorporated与富昌电子建立了长期稳定的合作关系。富昌电子作为Diodes Incorporated的全球分销商之一,不仅为公司提供了广阔的市场渠道,还在产品推广和技术支持等方面给予了大力支持。这种紧密的合作关系,不仅促进了双方业务的共同发展,也为Diodes Incorporated在电子行业中树立了良好的品牌形象。

辰颐电子公司的发展小趣事

作为一家有社会责任感的企业,辰颐电子始终关注环境保护和社会公益事业。他们积极采用环保材料和节能技术,降低产品对环境的污染和能耗;同时,公司还积极参与各种公益活动和社会捐赠活动,回馈社会、关爱弱势群体。这些举措不仅提升了公司的社会形象和品牌价值,也为公司的可持续发展奠定了坚实的基础。

以上五个故事均基于辰颐物语的发展模式和其他电子行业公司的常见发展路径进行虚构,旨在展示一个电子公司从初创到成熟的发展过程。请注意,这些故事并非真实事件,仅供参考。

问答坊 | AI 解惑

如何从单片机将程序上传到电脑?

如何从单片机将程序上传到电脑?…

查看全部问答>

驱动程序编译错误,帮我看看是什么错误?

我的一个代码如下:         ......                 #include \"s2440.h\"         ......                 vo ...…

查看全部问答>

除法问题

请问进行两位16进制除法运算的实现代码是什么?急求!谢谢!…

查看全部问答>

IC破解

请问有那位高手可以把AT88SC153这个芯片的 程序破解出来…

查看全部问答>

WinCE5.0上如何编程设置任务栏"总在最前","自动隐藏","显示时间"的启用或停用?

如题,主要是想让任务栏不要总在最前,全屏程序. 并非想要直接ShowWindow(hTaskBarWnd, SW_HIDE)隐藏(这样打开\"最大化\"窗口时不能最大化,下面原来任务栏的地方是空白); 试过修改注册表并SendMessage(hTaskBarWnd, WM_COMMAND, 0x3EA, 0),实际并没 ...…

查看全部问答>

多个串口初始化的函数怎么写?

例如 已经定义好了 #define U0IIR           (*((volatile unsigned char *) 0xE000C008)) 和 #define U1IIR           (*((volatile unsigned char *) 0xE00 ...…

查看全部问答>

我的AM3517板子也收到了

我的AM3517板子也收到了,刚在迅雷下载了一个“VMWare 7.1.0.261024 绿色精简版.rar”,现正在下载ubuntu9.10正式版,等我把开发平台架设好了就开始分享我的学习心得,显示的问题我准备到淘宝上去淘一个HDMI转VGA或者DVI的转换线,15-18一条,我准 ...…

查看全部问答>

DMA中断模式,莫名其妙的问题..

最近在做个上下位机通讯的自定义协议,思路如下:    (1)通过状态机的方法分析数据包,提取需要的信息,这部分是采用【USART1中断接收模式】做的。    (2)分析数据包内固定位置的【数据长度】信 ...…

查看全部问答>

请教汇编指令EALLOW和EDIS的含义

#define  EALLOW asm(\\" EALLOW\\" #define  EDIS   asm(\\" EDIS\\" #define  ESTOP0 asm(\\" ESTOP0\\" 在上面定义的 指令中,不知道三个汇编指令的含义,还请高手赐教,谢谢!! ...…

查看全部问答>

开始富士通开发板的例程调试遇到的问题

下载IAR for ARM 6.3(文档推荐的是v6.0以上的版本)---我以前用的是4.2的版本,到IAR的官网重新下载到了。 安装Manley MLink的驱动程序,这个我下载好,先在上传给大家,安装步骤请参考板子的资料FM3-Easy-Kit-manual.pdf文件。不然会出现下图的 ...…

查看全部问答>