MSP430F5529——中断理解

这篇具有很好参考价值的文章主要介绍了MSP430F5529——中断理解。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

认识低功耗模式;

MSP430的中断,需要两个部分,一部分是打开中断,另外一部分是编写中断服务函数

打开中断

_BIS_SR与__bis_SR_register

首先我们得知道__bis_SR_register和_BIS_SR是一个玩意。查看宏定义可知

#define _BIS_SR(x)                      __bis_SR_register(x)

 _BIS_SR()可传入的参数

然后我们查看x的值,发现里面有八个可以传入的值

#define C                      (0x0001)
#define Z                      (0x0002)
#define N                      (0x0004)
#define V                      (0x0100)
#define GIE                    (0x0008)
#define CPUOFF                 (0x0010)
#define OSCOFF                 (0x0020)
#define SCG0                   (0x0040)
#define SCG1                   (0x0080)

我们这里只需要关系GIE就可以了,这个GIE表示总中断,如果没有使能GIE,那么你写的中断函数将永远无法进入!

低功耗

我们先看下面这一段宏定义

#define LPM0                   (CPUOFF)
#define LPM1                   (SCG0+CPUOFF)
#define LPM2                   (SCG1+CPUOFF)
#define LPM3                   (SCG1+SCG0+CPUOFF)
#define LPM4                   (SCG1+SCG0+OSCOFF+CPUOFF)

这里我们需要有一个概念了,众所周知MSP430引以为豪的东西就是低功耗。MSP430单片机具有7种低功耗模式(LPM0~4、LPM3.5和LPM4.5,并非全部系列都具有,MSP430F5529就没有),通过不同程度的休眠,可降低系统功耗。

__bis_sr_register,MSP430F5529,c++,开发语言

中断服务函数

中断服务函数如下

#pragma vector=PORT1_VECTOR
__interrupt void Port_1 (void)
{
    
}

#pragma vector= xxx,此处的xxx是表示指定的中断函数。比如我是P1.1采用中断,就写#pragma vector= PORT1_VECTOR。 

/*****以下都是我一个一个的从库里面复制粘贴过来的,如有发现少了请评论*****/
RTC_VECTOR
PORT2_VECTOR
TIMER2_A1_VECTOR
TIMER2_A0_VECTOR
USCI_B1_VECTOR
USCI_A1_VECTOR
PORT1_VECTOR
TIMER1_A1_VECTOR
TIMER1_A0_VECTOR
DMA_VECTOR
USB_UBM_VECTOR
TIMER0_A1_VECTOR
TIMER0_A0_VECTOR
ADC12_VECTOR
USCI_B0_VECTOR
USCI_A0_VECTOR
WDT_VECTOR
TIMER0_B1_VECTOR
TIMER0_B0_VECTOR
COMP_B_VECTOR
UNMI_VECTOR
SYSNMI_VECTOR
RESET_VECTOR

 __interrupt表示之后的是中断服务函数,中断函数必须是void型!!!后面那个Port_1名字随便取。中断函数不能传参!!!

总结

如果我们有中断一定要使能GIE!!!个人不建议新手使用低功耗!!!代码如下

_BIS_SR(GIE);//开启中断使能

注意:无论是外部中断还是串口中断,都是中断,需要打开GIE!!!文章来源地址https://www.toymoban.com/news/detail-599599.html

到了这里,关于MSP430F5529——中断理解的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • MSP430F5529库函数GPIO学习

    导入MSP430Ware,查看例程;数据手册以及原理图获取 建议不是很了解寄存器的看完我的MSP430F5529学习笔记  目录 GPIO_setAsOutputPin() 函数声明 作用 参数 selectedPort selectedPins 修改的寄存器 使用 与GPIO_setAsOutputPin()参数一致的函数  GPIO_setOutputHighOnPin() GPIO_setOutputLowOnPin()

    2024年02月15日
    浏览(67)
  • MSP430F5529学习笔记(6)——导入MSP430Ware,查看例程

    MSP430WARE下载; 目录 在线版本 下载MSP430Ware 查看例程 导入例程  离线版本 下载MSP430Ware  查看例程 导入例程 MSP430Ware里面有很多例程和库函数使用手册,我们可以查看学习。非常重要 (1) 打开CCS——view——Resource Explorer  之后我们会进入如下界面 (2)  点击MSP430——Embe

    2024年02月13日
    浏览(54)
  • 06:PWM与电机驱动【MSP430F5529】

    电机型号: 工作方式: 原理图以及接线: 根据官方例程,主要代码为drive.c drive.h main.c (后面好像使用的时候会有什么冲突导致1或者2通道无法正常运行,不太记得了,可以到实物上实验一下子) 下面是智能送药小车使用PWM驱动电机相关代码与注释(在实物中,均能正常运行)

    2024年02月15日
    浏览(49)
  • MSP430F5529学习笔记(五)——串口|UART

            我们在使用MSP430的时候大家会发现插上usb线后电脑上有两个端口标识,那么在进行串口通信时选择哪个呢。其实如图所示,上面的端口是用来进行串口通信的,下面的则是用来进行程序的下载,大家在使用的时候多加分辨即可。          当然熟悉单片机操作的

    2024年02月16日
    浏览(47)
  • MSP430F5529单片机入门学习笔记1

    本笔记整理自B站教程 MSP430F5529单片机学习视频汇总 右边部分写错了,看的时候注意 注意#include“driverlib.h”头文件时要注意: 添加MSP430F5xx_6xx文件夹到当前工程下 MSP430F5xx_6xx文件夹是在导入的msp430ware_3_80_13_03包中找 把上述MSP430F5xx_6xx文件夹的路径包含进来 有三个系统时钟可

    2024年02月06日
    浏览(47)
  • 【2023电赛备赛】msp430f5529学习笔记(一)

    【写在前】 本人目前是大二在读生,第一次参加电赛,准备不充分,结果熬了四天,最后成绩却不如人意。有51和32的基础,然后想立一个flag系统的学习一下主打超低功耗的msp430f5529单片机为比赛做准备(毕竟电赛限制TI的板子)。另一方面也是给电协的后继者留下一些参考的

    2024年02月11日
    浏览(47)
  • MSP430F5529循迹小车 2022电赛 C题

    编辑时间2022/8/21 选用材料:主控MSP430F5529、直流减速电机(带光电编码器)、TB6612电机驱动、超声波测距、灰度传感器、无线透传、OLED屏显示。 使用灰度传感器巡线,超声波检测前后车距作为位置环反馈,通过位置环调节前后车距离。 :MSP430   循迹    无线串口透

    2024年02月16日
    浏览(45)
  • MSP430F5529库函数定时器A——捕获实验

    需提前学习:MSP430F5529库函数学习——串口;MSP430F5529库函数定时器A——硬件PWM 目录 引脚手册获取 实验目的 代码 代码解析 串口数据发送部分 数据捕获部分 定时器部分可选参数 设置定时器部分 捕获部分可选参数 设置捕获引脚部分 中断处理 TA2IV_TACCR2解析 TA2IV_TAIFG解析 主函

    2024年02月13日
    浏览(40)
  • MSP430F5529库函数——模数转换模块(ADC12)软件触发

    需提前观看:MSP430F5529库函数学习——串口   目录 代码 ADC初始化部分 引脚复位 ADC12_A_init() 函数声明 baseAddress sampleHoldSignalSourceSelect clockSourceSelec clockSourceDivider ADC12_A_enable() ADC12_A_setupSamplingTimer() ADC12_A_configureMemory() memoryBufferControlIndex  inputSourceSelect positiveRefVolta

    2024年02月16日
    浏览(49)
  • MSP430F5529库函数定时器A——硬件PWM

    需提前学习:MSP430F5529库函数定时器A——定时中断;引脚手册获取; 目录 先上代码 详解 引脚复用 选择引脚 获取引脚手册 看手册  时钟选择 分频 周期 REGISTER选择 比较输出模式 模式类型  增计数模式下的比较输出 连续计数模式下的比较输出 增减计数模式下的比较输出 占

    2024年02月16日
    浏览(59)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包