历史上的今天
返回首页

历史上的今天

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

正在发生

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

2019-10-18 来源:eefocus

非常简单的一个程序,在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中断弄懂了。吸取位运算优先级的教训。


推荐阅读

史海拾趣

Bipolarics Inc公司的发展小趣事

作为一家有社会责任感的企业,Bipolarics Inc在发展过程中始终关注环境保护和社会公益。公司积极采用环保材料和节能减排技术,努力降低生产过程中的能耗和排放。同时,Bipolarics Inc还积极参与社会公益活动,支持教育事业和扶贫项目等。通过这些举措,公司不仅树立了良好的企业形象,也为社会的可持续发展做出了积极贡献。

以上五个故事虽然是虚构的,但它们基于电子行业的一般发展规律和企业发展的常见路径。在现实中,一个电子行业的发展故事可能会涉及技术突破、市场扩张、战略合作、国际化战略、人才培养和社会责任等多个方面。这些元素共同构成了企业发展的丰富内涵和多样路径。

Communications & Power Industries公司的发展小趣事

在电子行业的初期,CPI以其独特的技术创新能力脱颖而出。公司研发团队致力于开发高效的通信设备和电源管理系统,成功推出了一系列具有市场竞争力的产品。这些产品不仅满足了当时市场对于高效、稳定通信的需求,还因其出色的性能赢得了客户的广泛认可。随着技术的不断进步,CPI逐渐在通信和电源领域建立了自己的品牌地位,成为行业内的佼佼者。

ECLIPTEK公司的发展小趣事

面对数字化浪潮的冲击,ECLIPTEK公司积极拥抱数字化转型和智能制造。公司引入大数据、云计算和人工智能等先进技术,推动生产过程的智能化和自动化。通过数字化转型和智能制造,ECLIPTEK不仅提高了生产效率和质量,还降低了生产成本和能源消耗。这一转型为公司未来的发展奠定了坚实的基础。

Artesyn Embedded Technologies公司的发展小趣事

随着5G技术的商用化,电子行业迎来了新的发展机遇。Artesyn Embedded Technologies敏锐地把握住了这一机遇,积极研发适应5G时代需求的电源和嵌入式计算解决方案。公司推出的新产品不仅满足了5G设备对高效、稳定电源的需求,也为公司在5G时代的发展奠定了坚实的基础。

Comtronic Gmbh-Verbindungstechnik公司的发展小趣事

随着公司产品的不断完善和市场认可度的提高,Artesyn Embedded Technologies开始与全球众多科技大厂建立紧密的合作关系。这些大厂包括知名的通信设备制造商、数据中心运营商等。通过与这些大厂的合作,Artesyn的产品得以广泛应用于各个领域,进一步提升了公司的知名度和影响力。

Aptos Technology公司的发展小趣事

随着技术的不断进步,Aptos在微电子封装领域取得了重大突破。公司成功开发出了一系列高效、稳定的封装技术,并成功应用于多个电子产品中。同时,Aptos还积极拓展业务领域,将技术应用于智能穿戴、物联网等新兴领域,进一步提升了公司的市场影响力。

问答坊 | AI 解惑

常用ARM指令集及汇编

各种命令的简单讲解,很好的查阅资料…

查看全部问答>

这个电路能改成电子控制的吗?

这是一个机械臂继电器控制电路!想用电子电路改造一下!不知可否? (机械臂原始位置在A点XW1位,启动按钮后开始向B点运动电机正转,接触到XW2时电机反转,返回到A点停止等待下一次启动!)…

查看全部问答>

91program ,yashi高手都来看看,EventModify函数的实现问题

控制面版里的显示里面有一个背景光的对话框,这里只是实现了注册表的更改,现在我想在这里实现对背光的控制。 我找到了实现代码的地方在D:\\WINCE500\\PUBLIC\\WCESHELLFE\\OAK\\CTLPNL\\CPLMAIN这里的screen.cpp里面 HANDLE hEvent = CreateEven ...…

查看全部问答>

充电器管理芯片MAX17005B Datasheet分析

这是MAX17005B Datasheet  ,如附件 MAX 17005B 低成本、高效、1.2MHZ 开关频率的 充电 芯片。   特点:1.2MHZ 开关频率;            电感电流可控体系结构;   &n ...…

查看全部问答>

BeagleBone 硬件性能测试

.mainbox h1{background:none;}  <!-- 1.      概述 本文是关于BeagleBone开发板主要功能模块的性能测试。为硬件开发人员选择AM3359进行系统设计提供必要的测试数据和对比结果。 2.   &n ...…

查看全部问答>

C语言编程宝典

C语言编程宝典 下载链接:https://download.eeworld.com.cn/detail/lbk747/1464 希望对大家有用,觉得有用了就帮忙顶起!…

查看全部问答>

Modelsim仿真使用小结

针对ISE下的Modelsim 仿真可以分为直接在ISE中采用添加库的方式安装Modelsim,例如 当需要仿真的时候,选中Simulation,而开发的时候选择Implementation。   另外一种是采用运行Modelsim然后导入VHDL文件,也就是仿真的实体,再导入test ...…

查看全部问答>

SPI传输问题

帮我看看什么问题行吗?求指教 …

查看全部问答>

2014国产示波器品牌大PK!

本帖最后由 电子嗷嗷叫 于 2014-7-3 16:06 编辑 大家每天都会用到示波器吧,现在越来越多的国产品牌在冲击着国际品牌的市场,作为工程师,你肯定也是用过国产品牌的示波器吧,来看看国产示波器品牌吧 多选投票: ( 最多可选 2 项 ), 共有 294 ...…

查看全部问答>

helper2416开发板GDB远程调试的总结技巧

1 .生成可调试程序比如一个源文件:main.cpp交叉编译生成test 加-g生成调试信息.arm-linux-gcc main.cpp -g -o test千万不要strip,否则调试信息就不存在了. 2. gdbserver调试假设板子IP为192.168.0.19,   pc ip为192.168.0.108板子上:gdb ...…

查看全部问答>