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

msp430f149单片机(msp430F149单片机用C语言怎么编写退格键'\\b')svg xmlns http www w3 org 2000 svg style display none svg

大家好,我是讯享网,很高兴认识大家。



 <svg xmlns="http://www.w3.org/2000/svg" style="display: none;"> <path stroke-linecap="round" d="M5,0 0,2.5 5,5z" id="raphael-marker-block" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);"></path> </svg> 

讯享网

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. 中断服务函数配置(一定记得清除中断标志位)

代码

 


小讯
上一篇 2025-06-04 07:41
下一篇 2025-05-01 11:11

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/172281.html