当前位置:网站首页 > Go语言开发 > 正文

msp430f149单片机(msp430F149单片机用C语言怎么编写退格键'\\b')



MSP430的很多外设都能触发中断,那么如果多个中断同时被触发会怎么样呢?MSP430在进入中断时会自动关闭全局中断使能位(GIE),所以如果MSP430已经在一个中断里,是不能再进入另一个中断的,这时另一个(或多个)中断排队等候,等到当前中断结束后再进入下一个中断。

如果有多个中断同时在等候,需要注意它们的优先级并不是由时间顺序决定的,而是由MSP430本身规定的中断优先级来决定,这个优先级在中断向量表里可以看到。所以在当前中断结束之后,CPU会自动按照中断优先级来依次执行。

本节提到的寄存器全部在用户指南的12.4中

1. 配置IO功能

  • PxSEL0和PxSEL1寄存器
    在这里插入图片描述
    在这里插入图片描述
    查找用户数据手册配置IO功能为普通IO(在这里可以默认不用配置)
    目录地址(6.Detailed Description-6.11Peripherals-6.11.24Input/Output Diagrams)



  • PxDIR寄存器
    在这里插入图片描述
    配置IO口方向为输入(0为输入)

  • PxREN寄存器
    在这里插入图片描述
    配置上下拉电阻使能(1为使能)

  • PxOUT寄存器
    在这里插入图片描述
    如果是输出模式则配置输出的高低电平,如果是输入模式则配置上拉电阻还是下拉电阻(跟据需要配置)(1是输出高电平/上拉)

2. PxIE寄存器

在这里插入图片描述
中断使能位,PxIE中的x对应Portx,寄存器中的8位对应P1.0-P1.7

3. PxIE寄存器

在这里插入图片描述
配置中断触发方式,注意这里的默认值是不确定的,也就是说在配置时此寄存器必须进行配置。(0为上升沿,1为下降沿)

4. PxIFG寄存器

在这里插入图片描述
Portx中断标志位寄存器

5. PxIV寄存器

在这里插入图片描述
多源中断判断寄存器,因为每个Port都有8个IO口,而他们共用一个中断源,因此就有一个怎么区分的问题,对应中断源表下图所示:
在这里插入图片描述

 
  

1. #pragma vector = TIMER1_A1_VECTOR

#Pragma是编译器指令,是告诉编译器将函数与中断向量连接起来。“vector=”后面是中断向量地址的宏定义。
我在msp430fr6989.h文件中只找到了四个外部中断源,分别是:PORT1_VECTOR、PORT2_VECTOR、PORT3_VECTOR、PORT4_VECTOR。是否说明只支持四个外部中断源,只能Port1-Port4才能使用外部中断,并且一个Portx的8个IO对应一个中断源,属于多源中断,此时需要读取PxIV寄存器来判断是哪个IO源触发的。
外部中断向量入口有:

Field Description PORT1_VECTOR P1.0-1.7中断源 PORT2_VECTOR P2.0-2.7中断源 PORT3_VECTOR P3.0-3.7中断源 PORT4_VECTOR P4.0-4.7中断源

不同外设的中断向量名在哪里找呢?打开CCS可以跳转到一个名为msp430.h的头文件。在里面在找到"msp430fr6989.h"这个头文件,搜索Interrupt Vectors, 这个下面包含了所有寄存器位的宏定义,包括中断向量的宏定义。其中包含了所有中断向量的名称。例如P1端口的中断向量名就是PORT1_VECTOR。

2. __interrupt void External_Interrupt(void)

__interrupt关键字表明这是一个中断服 务函数,CPU见到这个关键字以后就会去做中断之前的准备工作。External_Interrupt是用户自己取的函数名称,这个名称可以任意命名。

3. 中断服 务函数的具体内容

中断服 务函数的内容依据中断的不同种类有所差别。退出中断前根据情况将中断标志位复位。

  1. 配置IO口为输入,是否上拉取决于外部电路
  2. 中断使能
  3. 配置触发方式
  4. 清除中断标志位
  5. 打开全局中断
  6. 中断服务函数配置(一定记得清除中断标志位)

代码

到此这篇msp430f149单片机(msp430F149单片机用C语言怎么编写退格键'\\b')的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就! 
  

                            

版权声明


相关文章:

  • 苹果开发者账号注册流程英文(苹果开发者账号注册流程英文版)2025-05-24 13:18:07
  • 注册苹果开发者账号存在问题(苹果开发者账号注册正在审核中好久了)2025-05-24 13:18:07
  • windows驱动开发(windows驱动开发入门网盘)2025-05-24 13:18:07
  • 嵌入式驱动开发流程(嵌入式驱动开发流程视频)2025-05-24 13:18:07
  • windows驱动开发教程(windows驱动开发教程 豆瓣)2025-05-24 13:18:07
  • argos是什么意思(argus是什么意思中文翻译)2025-05-24 13:18:07
  • 嵌入式驱动开发前景如何(嵌入式驱动开发前景如何)2025-05-24 13:18:07
  • 莫队长csgo(莫寒s队队长)2025-05-24 13:18:07
  • linux内核驱动开发中使用的地址是(linux内核驱动开发前景)2025-05-24 13:18:07
  • linux内核驱动开发书籍(linux内核驱动开发圣经pdf)2025-05-24 13:18:07
  • 全屏图片