DSP28335模块配置模板系列——定时器中断配置模板

   一、配置步骤:

1.使能定时器时钟

	EALLOW;
	SysCtrlRegs.PCLKCR3.bit.CPUTIMER2ENCLK = 1; // CPU Timer 2
	EDIS;

2.设置定时器的中断向量

	EALLOW;
	PieVectTable.TINT2 = &TIM2_IRQn;
	EDIS;

        其中TIM2_IRQn时定时器中断服务程序的名称 ,将中断服务函数的地址赋给PIE向量表中的TINT2指针。

3.初始化定时器寄存器地址指针

	CpuTimer2.RegsAddr = &CpuTimer2Regs;

         CpuTimer2Regs是定时器2寄存器的结构体,将该结构体的地址赋给CpuTimer2结构体中的RegsAddr,后续可以用 CpuTimer2Regs访问RegsAddr中的成员。 

4.设置定时器周期寄存器

CpuTimer2Regs.PRD.all  = 0xFFFFFFFF;

        PRD寄存器里面的数据代表定时器计时一个周期所计数的次数,如果知道定时器计数一次所需时间为TIMCLK,则定时器计时一个周期时间为:

eq?T%3D%28PRD+1%29*TIMCLK 

        至于TIMCLK为多少则需要根据预分频数来确定。 

5.设置预分频计数器

	CpuTimer2Regs.TPR.all  = 0;
	CpuTimer2Regs.TPRH.all = 0;

         TPR是16位的定时器预定标计数器低位寄存器,它的低八位是TDDR为定时器分频器。高八位是PSC位定时器预定标计数器,当定时器开启时,TDDR的值会装载到PSC上,每当经过一个系统时钟周期,PSC的值会减1,直到PSC的值位0时,产生一个定时器时钟,这是定时器计数一次。所以TIMCLK的值为:

eq?TIMCLK%3D%28TDDR+1%29*SYSCLK

其中SYSCLK为系统时钟周期。

6.停止定时器以及重载周期值到计数器寄存器

	CpuTimer2Regs.TCR.bit.TSS = 1;
	CpuTimer2Regs.TCR.bit.TRB = 1;

        TCR是定时器控制寄存器,其中的TSS位是定时器的停止状态位,当TSS值为1时,定时器停止;TSS值为0时,定时器开启。TRB位是定时器的重装位,当TRB为1时,PRD和TDDR的值会装入TIM和PSC。 

7.重置中断计数器

	CpuTimer2.InterruptCount = 0;

8.配置定时器的周期

ConfigCpuTimer(&CpuTimer2, Freq, Period);

        直接调用TI官方源文件内提供配置定时器周期的函数,该函数输入为:定时器的地址、系统时钟的频率单位为Mhz以及定时器的计时周期单位为微秒。 

9.启动定时器并使能定时器中断及全局中断

    CpuTimer2Regs.TCR.bit.TSS=0;
	IER |= M_INT14;
	EINT;
	ERTM;

        给TSS位赋0,开启定时器。使能中断组14。 

10.定时器中断服务程序

interrupt void TIM2_IRQn(void)
{
	EALLOW;
	LED4_TOGGLE;
	EDIS;

}

        当定时器计时到达预设的周期时,会向CPU发送一次中断申请并继续计时,当CPU处理完其他级别更高的中断请求时会暂时挂起低级别的中断请求,等待CPU处理完后响应定时器2的中断申请并进入定时器中断服务函数。所以这里有一个需要注意的点:当定时器向CPU发送中断申请后会继续计时,而此时CPU不一定能及时响应中断请求,所以当CPU响应中断请求进入中断函数时定时器的计时并一定是0,所以中断函数的执行的周期有可能会大于所设定的定时器周期,这就是中断响应延迟问题。

二、完整的定时器配置模板

void TIM2_Init(float Freq,float Period)
{
    EALLOW;
	SysCtrlRegs.PCLKCR3.bit.CPUTIMER2ENCLK = 1; 
	EDIS;
	EALLOW;
	PieVectTable.TINT2 = &TIM2_IRQn;
	EDIS;
	CpuTimer2.RegsAddr = &CpuTimer2Regs;
	CpuTimer2Regs.PRD.all  = 0xFFFFFFFF;
	CpuTimer2Regs.TPR.all  = 0;
	CpuTimer2Regs.TPRH.all = 0;
	CpuTimer2Regs.TCR.bit.TSS = 1;
	CpuTimer2Regs.TCR.bit.TRB = 1;
	CpuTimer2.InterruptCount = 0;
	ConfigCpuTimer(&CpuTimer2, Freq, Period);
	CpuTimer2Regs.TCR.bit.TSS=0;
	IER |= M_INT14;
	EINT;
	ERTM;
}
interrupt void TIM2_IRQn(void)
{


}

 

 

 

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【回溯算法】N皇后问题·构建多叉决策树,遍历决策节点,做出决策(边),收集答案

0、前言 在由树形解空间入手,深入分析回溯、动态规划、分治算法的共同点和不同点这篇博客,其实已经对回溯算法的思想、做题框架做出了详细的阐述。这篇文章我们再从N皇后问题,加深我们对其理解。 这里在简单再次对其进行概述: …

dataphin是什么及其简单使用示例

1.1dataphin是什么? Dataphin是由阿里研发的智能大数据建设平台,提供一站式数据中台(大数据平台)建设服务。Dataphin通过沙箱(项目)实现业务及作业资源隔离,运行更快,且数据同步到D…

代码随想录算法训练营第四十八 | ● 121. 买卖股票的最佳时机 ● 122.买卖股票的最佳时机II

121. 买卖股票的最佳时机 买卖股票的最佳时机 视频讲解:https://www.bilibili.com/video/BV1Xe4y1u77q https://programmercarl.com/0121.%E4%B9%B0%E5%8D%96%E8%82%A1%E7%A5%A8%E7%9A%84%E6%9C%80%E4%BD%B3%E6%97%B6%E6%9C%BA.html class Solution { public:int ma…

因你而变 共赴新程 | AidLux全新版本震撼发布!

历经400多个日夜,AidLux 2.0(基础版)终于要与大家见面了。 开发者们问过无数次,新版本何时发布,期待的功能何时上线……在此,让我先真诚地感谢大家长期以来的期待与关心! 一年多以来&#xff…

如何从官网下载 mysql 二进制安装包

一.下载二进行包 1. 官网网址: https://www.mysql.com/ 如图所示进入官网 2. 点击 DOWNLOADS ,进入如下图 在该页面找到 MySQL Community (GPL) Downloads 点进去 如上图页面,找到 MySQL Community Server 在点进去 下载 linux 通用版 点击最下面 Compressed …

服务监控-微服务小白入门(5)

背景 什么是服务监控 监视当前系统应用状态、内存、线程、堆栈、日志等等相关信息,主要目的在服务出现问题或者快要出现问题时能够准确快速地发现以减小影响范围。 为什么要使用服务监控 服务监控在微服务改造过程中的重要性不言而喻,没有强大的监控…

kafka-生产者拦截器(SpringBoot整合Kafka)

文章目录 1、生产者拦截器1.1、创建生产者拦截器1.2、KafkaTemplate配置生产者拦截器1.3、使用Java代码创建主题分区副本1.4、application.yml配置----v1版1.5、屏蔽 kafka debug 日志 logback.xml1.6、引入spring-kafka依赖1.7、控制台日志 1、生产者拦截器 1.1、创建生产者拦…

SkyWalking之P0核心业务场景输出调用链路应用

延伸扩展:XX核心业务场景 路由标签打标、传播、检索 链路标签染色与传播 SW: SkyWalking的简写 用户请求携带HTTP头信息X-sw8-correlation “X-sw8-correlation: key1value1,key2value2,key3value3” 网关侧读取解析HTTP头信息X-sw8-correlation,然后通…

Dokcer 基础使用 (4) 网络管理

文章目录 Docker 网络管理需求Docker 网络架构认识Docker 常见网络类型1. bridge 网络2. host 网络3. container 网络4. none 网络5. overlay 网络 Docker 网路基础指令Docker 网络管理实操 其他相关链接 Docker 基础使用(0)基础认识 Docker 基础使用(1)…

【HarmonyOS4学习笔记】《HarmonyOS4+NEXT星河版入门到企业级实战教程》课程学习笔记(十三)

课程地址: 黑马程序员HarmonyOS4NEXT星河版入门到企业级实战教程,一套精通鸿蒙应用开发 (本篇笔记对应课程第 20 - 21节) P20《19.ArkUI-属性动画和显式动画》 本节先来学习属性动画和显式动画: 在代码中定义动画&am…

使用difflib实现文件差异比较用html显示

1.默认方式&#xff0c;其中加入文本过长&#xff0c;需要换行&#xff0c;因此做 contenthtml_output.replace(</style>,table.diff td {word-wrap: break-word;white-space: pre-wrap;max-width: 100%;}</style>)&#xff0c;添加换行操作 ps&#xff1a;当前te…

BGP汇总+认证

一、BGP 的宣告问题 1、在 BGP 协议中每台运行 BGP 的设备上&#xff0c;宣告本地直连路由 2、在 BGP 协议中运行 BGP 协议的设备来宣告.通过 IGP 学习到的&#xff0c;未运行 BGP 协议设备产2、生的路由&#xff1b; 在 BGP 协议中宣告本地路由表中路由条目时,将携带本地到达这…

PostgreSQL基础(九):PostgreSQL的事务介绍

文章目录 PostgreSQL的事务介绍 一、什么是ACID&#xff08;常识&#xff09; 二、事务的基本使用 三、保存点&#xff08;了解&#xff09; PostgreSQL的事务介绍 一、什么是ACID&#xff08;常识&#xff09; 在日常操作中&#xff0c;对于一组相关操作&#xff0c;通常…

视频大模型 Vidu 支持音视频合成;字节跳动推出语音生成模型 Seed-TTS 丨 RTE 开发者日报 Vol.221

开发者朋友们大家好&#xff1a; 这里是 「RTE 开发者日报」 &#xff0c;每天和大家一起看新闻、聊八卦。我们的社区编辑团队会整理分享 RTE&#xff08;Real-Time Engagement&#xff09; 领域内「有话题的新闻」、「有态度的观点」、「有意思的数据」、「有思考的文章」、「…

鸿蒙全栈开发-浅谈鸿蒙~线程模型

前言 如果你现在正巧在找工作&#xff0c;或者琢磨着换个职业跑道&#xff0c;鸿蒙开发绝对值得你考虑一下。 为啥&#xff1f;理由很简单&#xff1a; 市场需求大&#xff1a;鸿蒙生态还在持续扩张&#xff0c;应用开发、系统优化、技术支持等岗位需求旺盛&#xff0c;找工作…

三分搜索峰值

问题 现在有一个数组&#xff0c;显示递增&#xff0c;后是递减&#xff0c;如何找到它的峰值&#xff1f; 思路 可以利用分治的思想&#xff0c;向二分查找一样&#xff0c;每次将要查询的区域分成若干个区域&#xff0c;根据区域的特殊点的值淘汰一些区域&#xff0c;缩小…

基于Python的Selenium详细教程

一、PyCharm安装配置Selenium 本文使用环境&#xff1a;windows11、Python 3.10.5、PyCharm 2022.1.3、Selenium 4.3.0 需要你懂的技术&#xff1a;Python、HTML、CSS、JavaScript 1.Seleium安装&#xff1a; 在PyCharm终端或window命令窗口输入以下命令 #查看已安装的Pytho…

硬件产品经理

边端协调管理平台 主页一&#xff1a;模型管理1.1 边侧模型管理 二&#xff1a;配置管理2.1 终端软件配置管理 三&#xff1a;设备管理3.1 区域位置管理3.2 工控机管理&#xff08;其实就是围绕授权&#xff09;3.3 生产设备管理3.4 设备运行管理 四&#xff1a;数据服务4.1 实…

ISP:企业数字化发展的关键推动力

在当今信息化时代&#xff0c;互联网已成为人们生活和工作中不可或缺的一部分。然而&#xff0c;对于很多人来说&#xff0c;ISP这一概念仍显得有些陌生。ISP&#xff0c;即互联网服务提供商&#xff08;Internet Service Provider&#xff09;&#xff0c;是为用户提供互联网接…

【课程总结】Day6(上):机器学习项目实战--外卖点评情感分析预测

机器学习项目实战&#xff1a;外卖点评情感分析预测 项目目的 基于中文外卖评论数据集&#xff0c;通过机器学习算法&#xff0c;对评论内容进行情感预测。 数据集 地址&#xff1a;http://idatascience.cn/dataset-detail?table_id429数据集字段 字段名称字段类型字段说…