MSP432学习笔记7:定时器A中断

news2024/11/20 3:26:31

型号:MSP432P401r

今日得以继续我的MSP432电赛速通学习之路......

今日学习的是定时器A中断!

目录

基础工程在此下载:

更改后的实验演示工程在此下载:

定时器A基础介绍:

 Timer_A的特性包括:

Timer_A有三种计数模式:

增计数模式:

​编辑

 连续计数模式:

 增减计数模式:

相关库函数:

定时器中断的一般配置步骤:

0.配置时钟:

1.配置结构体:

2.初始化定时器A:

3.选择模式开始计数:

4.清除比较中断标志位:

5.开启定时器端口中断:

6.开启总中断:

7.编写TIMA ISR:

8.别忘记了调用函数初始化与头文件等:

9.实际功能的添加:

10.上板测试视频:


基础工程在此下载:

这是基础空项目工程,没改过!!!是让大家下了跟着配置学习用的。

https://download.csdn.net/download/qq_64257614/87781382?spm=1001.2014.3001.5503

更改后的实验演示工程在此下载:

此工程已经调试更改好,给照着做却没实现的人对照用

https://download.csdn.net/download/qq_64257614/87813737?spm=1001.2014.3001.5503

定时器A基础介绍:

MSP432P401r有四个定时器A,每个都有5个通道,

 Timer_A的特性包括:

1.具有4种操作模式的异步16位定时器/计数器。

2.可选择和可配置的时钟源。

3.最多达七个可配置的捕获/比较模块。

4.异步输入和输出锁存。

Timer_A有三种计数模式:

增计数模式:

需要设置CCR0(比较值寄存器0)用于确定定时器周期,类似于“自动重装载值”

周期=时钟分频*(CCR0+1)/时钟频率

 连续计数模式:

连续计数模式会从0开始计数,直到计数到2^16=65535

然后又会从0开始计数,不断如此来循环

这种模式可以用于定时器捕获

 增减计数模式:

 

相关库函数:

以下库函数在头文件  timer_a.h 中

1.初始化定时器模块:

以增计数模式初始化定时器模块。

参数填的是,选择的定时器,以及配置好的结构体地址。

Timer_A_configureUpMode(TIMER_Ax_BASE,&upConfig);

2.选择模式开始计数:

参数填上对应定时器和计数模式。

Timer_A_startCounter(TIMER_Ax_BASE,TIMER_A_UP_MODE);

3.清除比较中断标志:

参数填上对应定时器,以及对应定时器通道。

Timer_A_clearCaptureCompareInterrupt(TIMER_Ax,REGISTER_0);

以下库函数在头文件 interrupt.h 中:

4.开启定时器A端口中断:

Interrupt_enableInterrupt(INT_TAx_0);

5.开启总中断:

Interrupt_enableMaster(void);

定时器中断的一般配置步骤:

0.配置时钟

1.配置结构体

2.初始化定时器A

3.选择模式开始计数

4.清除比较中断标志位

5.开启定时器端口中断

6.开启总中断

7.编写TIMA ISR

0.配置时钟:

此步已经初始化好,不需要更改。

1.配置结构体:

我喜欢将初始化操作都封装在一个子函数,

   然后在主函数初始化区调用它,这样十分简洁明了!

我们发现,增计数模式结构体的定义在 timer_a.h中:

它的附近也定义了其他俩种计数方式的结构体:

 我们将结构体的内容全部复制过来:

然后粘贴在初始化函数 对其做好一些相应的更改:

我们手动转到 timer_a.h

发现 ACLK 与 SMCLK 都可以作为时钟源

 还发现了时钟分频是有限制的,只支持以下几个分频:

到这里结构体的配置和介绍就完成了

2.初始化定时器A:

我们在初始化完结构体后,紧跟着就写下这句来初始化定时器A:

填上对应的定时器

以及刚才配置好的结构体 upConfig 的地址

    //初始化定时器A
	Timer_A_configureUpMode(TIMER_A0_BASE,&upConfig);

 

3.选择模式开始计数:

参数填写对应的定时器计数模式

		//选择模式开始计数
	Timer_A_startCounter(TIMER_A0_BASE,TIMER_A_UP_MODE);

4.清除比较中断标志位:

 填上对应的定时器以及通道

 此处填写的是通道0

	//清除比较中断标志位:
	Timer_A_clearCaptureCompareInterrupt(TIMER_A0_BASE,TIMER_A_CAPTURECOMPARE_REGISTER_0);

 

5.开启定时器端口中断:

	//开启定时器端口中断:
	Interrupt_enableInterrupt(INT_TA0_0);

此函数的有效值还需我们转到interrupt.h的声明来查看:

我们用到的这个是定时器A0,通道0中断

 

6.开启总中断:

	//开启总中断
	Interrupt_enableMaster();
	

 

7.编写TIMA ISR:

此项中断服务函数的编写,需要我们先转到启动文件:

 选择对应定时器A0   通道0中断的名称,并复制

将其粘贴在主文件开始编写,第一句要清除中断标志位

接下来可自由发挥了!

 

 

8.别忘记了调用函数初始化与头文件等:

 做完这些后可以先编译,此时编译可能会像如下一样报错:

 这其实是在俩个地方重复声明了同一个名称的函数,

这俩地方是 主文件与 此工程提供的额外的  timerA.h

这个函数是  void TA0_0_IRQHandler(void)

我们只需打开timerA.c  删去 它即可:

 

9.实际功能的添加:

在定时器中断服务函数添加实际功能十分简单,

此处添加一个简单的彩灯点灯闪烁:

//	中断频率计算:  64*(37499+1)/48000000=0.05 s
void TA0_0_IRQHandler(void)
{
	
	//清除比较中断标志位:
	Timer_A_clearCaptureCompareInterrupt(TIMER_A0_BASE,TIMER_A_CAPTURECOMPARE_REGISTER_0);	
//   GPIO_toggleOutputOnPin(GPIO_PORT_P1,GPIO_PIN0);
	i++;j++;k++;
	if(i==50)  {i=0; LED_W_On();}  //2.5s亮一次白灯
	if(j==100) {j=0; LED_Y_On();}		//5s亮一次黄灯
}

 

10.上板测试视频:

MSP432学习笔记7:定时器A中断点亮彩灯

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/562554.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

组态王使用指南|安装包|快速入门教程|含PLC与组态王网口串口通信|速查命令PDF

组态王安装包及安装方法: 组态王7.5 SP3下载安装授权_组态王安装包_城北许工α的博客-CSDN博客 组态王快速入门教程: 组态王教程(基础入门篇).pdf (book118.com) 组态王与PLC通讯: 网口通讯: 西门子1200与组态王TCP通讯 - 知…

Redis7实战加面试题-基础篇(Redis10大数据类型)

说明 刚看完尚硅谷Redis零基础到进阶,最强redis7教程,阳哥亲自带练(附redis面试题) 趁热打铁,根据脑图和视频,对视频中的知识点进行总结,方便以后复习 Redis入门概述 Remote Dictionary Serv…

国家重点研发计划“新型无液氦脑磁图系统研发”项目启动会顺利召开

2023年5月21日,国家重点研发计划“诊疗装备与生物医用材料”重点专项“新型无液氦脑磁图系统研发”项目启动会在京顺利召开。 该项目由北京未磁科技有限公司牵头,与首都医科大学附属北京天坛医院、北京航空航天大学、机械工业仪器仪表综合技术经济研究所…

九、数据仓库详细介绍(元数据)

元数据的文章,网上已经有很多了,元数据相关概念有限所以重复度很高。 我这里只是做个概念汇集,争取给大家介绍的全面一点。 1. 元数据定义 元数据(Meta-data)是描述数据的数据(The data about data&#xf…

怎么提升品牌知名度,小红书母婴赛道分析

小红书平台自创立之初,便以母婴类内容为特色。今天我们来分享下,怎么提升品牌知名度,小红书母婴赛道分析。 一、妈妈用户仍是主流 我们都知道,小红书平台是一个女性用户为主的平台。根据去年的平台用户调查,可以发现&a…

PID控制逻辑基本介绍

PID控制逻辑基本介绍 1. 源由2. PID基本框图3. PID公式变换4. PID参数释义4.1 比例因子Kp4.2 比例积分Ki4.3 比例微分Kd4.4 Kp/Ki关系4.5 Kp/Kd关系 5. 总结6. 附录6.1 了解 PID 控制,第 1 部分:什么是 PID 控制?6.2 Anti-windup for PID con…

【pytorch损失函数(6)】Focal loss, for dense object detection再分析

之前翻译了这篇论文,但是理解还不深。今天借着研究rotation的计划,回顾这篇文章。 论文的主要贡献 Focal loss主要是为了解决目标检测中正负样本比例严重失衡的问题。该损失函数降低了大量简单负样本在训练中所占的权重,也可理解为一种困难…

Segment Anything专题论文和代码汇总

文章目录 2023Scaling-up Remote Sensing Segmentation Dataset with Segment Anything ModelPersonalize Segment Anything Model with One ShotSegment Anything in Medical ImagesMatcher: Segment Anything with One Shot Using All-Purpose Feature MatchingCustomized Se…

【Python】mmSegmentation语义分割框架教程(1.x版本)

文章目录 0.引言1. 数据集设置1.1. dataset implementation py1.2. dataset config py 2.模型设置3.训练 0.引言 \qquad 本文是mmSegmentation语义分割框架教程(0.x版本)的1.x版本。不熟悉mmsegmentation是什么的读者可参考原文的引言部分,熟…

sqlmap命令大全(附详细扫描流程)

一、sqlmap命令大全。 -u 指定目标URL (可以是http协议也可以是https协议)-d 连接数据库--dbs 列出所有的数据库--current-db 列出当前数据库--tables 列出当前的表--columns 列出当前的列-D 选择使用哪个数据库-T 选择使用哪个表-C 选择使用哪个列--dump 获取字段中的数据--…

程序猿想考一个PMP,可以吗,怎么考呢?

我从新考纲考完下来,3A通过了考试,最开始也被折磨过一段时间,但是后面还是找到了方法,也算有点经验,给大家分享一下吧。 程序猿应该是考PMP里面人最多的,毕竟有一个30大坎,大部分人还是考虑转型…

rk3588 大小核启动

setenv ipaddr 10.12.1.205;setenv serverip 10.12.1.200;tftp 0x800000 bsprk3588_owl_ai_box_plus_v10_x64.bin;go 0x800000 rk3588 启动 4 核无问题,启动 8 核出现乱码以及死机问题。 分析代码,对 psci 接口进行更新,启动 4 核&#xf…

【服务器数据恢复】EXT3文件系统下raid数据恢复案例

服务器数据恢复环境: 华为OceanStor某型号存储,10块硬盘组成raid6磁盘阵列。 上层操作系统采用EXT3文件系统,划分2个lun。 服务器故障&分析: 在巡检中发现存储中的raid不可用,管理员进行了重新分配并初始化raid的操…

VS2019 error LNK2001: 无法解析的外部符号 解决方法

今天编译一个项目的时候,用debug模式编译时可以通过并生成exe的。 换成release模式,直接报链接错误,如下: 1>libeay32.lib(pem_lib.obj) : error LNK2019: 无法解析的外部符号 ___iob_func,函数 _PEM_def_callback…

微信小程序| AIGC之动手实现ChatGPT法律顾问小程序

一、需求背景 在资本退去后,现如今的互联网行情很差劲,很多创新业务都不得不砍除。再加上国内互联网时代进入到了一个增量犹显疲态,增量杀红了眼!阶段,各大互联网公司均有一种断臂求生的态势!各位互联网同…

hadoop3.2.4集成flink 1.17.0

前言 flink安装部署有三种方式 local:单机模式,尽量不使用 standalone: flink自带集群,资源管理由flink集群管理,开发环境测试使用,不需要hadoop集群 flink on yarn: 把资源管理交给yarn实现,计算机资源统一由Haoop…

PCIe 载板设计资料原理图:382-基于FMC+的XCVU3P高性能 PCIe 载板

基于FMC的XCVU3P高性能 PCIe 载板 一、板卡概述 板卡主控芯片采用Xilinx UltraScale16 nm VU3P芯片(XCVU3P-2FFVC1517I)。板载 2 组 64bit 的DDR4 SDRAM,支持 IOX16或者 JTAG 口,支持PCIe X 16 ReV3.0以及 FMC 扩展接口。…

Hadoop基础学习---6、MapReduce框架原理

1、MapReduce框架原理 1.1 InputFormat数据输入 1.1.1 切片与MapTask并行度决定机制 1、问题引出 MapTask的并行度决定Map阶段的任务处理并发度,进而影响到整个job的处理速度。 2、MapTask并行度决定机制 数据块:Block是HDFS物理上吧数据分成一块一块。…

3D CAD模型的体素化

你有没有搜索过如何将 Cad 模型转换为 python 就绪的 numpy 数组,但没有得到任何明确的答案? 我也是。 经过长时间的研究并尝试了很多软件和 python 库,我终于能够将 3D STEP 文件转换为 3 维 numpy 数组。 如果你想做同样的事情或只是想知道…

线性表的总结

逻辑结构 逻辑结构 具有相同特性的数据元素的有限序列 特性 有穷性:一个线性表的元素个数是有限的 一致性:一个线性表的所有元素的性质相同,也就是具有相同的数据类型 序列性:所有元素之间的相对…