DSP定时器0笔记

news2024/9/23 15:25:51

首先了解开发板TMS320f28335是150Mhz的频率

定时器结构图和概要

定时器0对应的中断是TINT0

大概是这样,时钟sysclkout 进入和TCR控制时钟进入 ,经过标定计数器(stm32的预分频),标定器挂这自动装载寄存器,进入到计数器,计数器挂着一个周期寄存器。计数达到计数值就触发中断;

 PIE中断组

定时器0中断在PIE组1的第七个中断

 定时器寄存器

全配置了;

 主要的是定时器的控制寄存器

初始化全部设置完

11位,设置1在仿真到中断时,计数器还会继续跑;设置为0,计数器不会跑;

10位仿真时 设置1下一次计数为0时停止计数     设置0 时 当前计数为0时停止计数

 

中断函数

interrupt 函数类型加关键字;

并且用PIE应答赋值1去清零,继续允许下次中断。

中断向量表的地址赋值

PieVectTable.TINT0 = &time0_IER;

程序

全局中断,仿真中断,关键字都在  DSP2833x_Device.h

DSP2833x_PieVect.c  有PIE向量表初始化 InitPieVectTable();

DSP2833x_PieCtrl.c  有PIE初始化 InitPieCtrl();

 定时器0

#include"time0.h"
#include"led1.h"


void time0_init(Uint16 prd)
{
	EALLOW;
	SysCtrlRegs.PCLKCR3.bit.CPUTIMER0ENCLK = 1;

	CpuTimer0Regs.PRD.all = ((long)150*1000*prd);//ms
	//相似预分频,预定标寄存器
	CpuTimer0Regs.TPR.all = 0;
	CpuTimer0Regs.TPRH.all = 0;//不分频

	CpuTimer0Regs.TCR.bit.TSS = 1;//禁止定时器
	CpuTimer0Regs.TCR.bit.TRB = 1;//重载使能

	CpuTimer0Regs.TCR.bit.SOFT=0;//0 下次计数到0的时候 停止     1当前计数到0 停止
	CpuTimer0Regs.TCR.bit.FREE=0;//0仿真进入中断后  停止   1继续
	CpuTimer0Regs.TCR.bit.TIE=1;//中断使能

	CpuTimer0Regs.TCR.bit.TSS = 0;//启动定时器
	EDIS;

	EALLOW;
	PieVectTable.TINT0 = &time0_IER; //向量表 的TINT0 中断地址 对应到这个函数
	PieCtrlRegs.PIEIER1.bit.INTx7 = 1;//PIE组1 的第7个中断
	EDIS;
	IER |= M_INT1; //开启 全局中断
	EINT;//使能 全局中断
	ERTM;//使能 调试中断
}


interrupt void time0_IER()
{

	LED1_TOGGLE;
	EALLOW;
	PieCtrlRegs.PIEACK.bit.ACK1 = 1;//赋值1 清除标志,继续使能下次的中断
	EDIS;
}

 主函数

#include "DSP2833x_Device.h"     // DSP2833x Headerfile Include File
#include "DSP2833x_Examples.h"   // DSP2833x Examples Include File
#include "led1.h"
#include "key.h"
#include "epwm.h"
#include "exti.h"
#include"time0.h"
int main()
{
    Uint16 temp = 0;
    InitSysCtrl();

    InitPieCtrl();
    IER = 0x0000;
    IFR = 0x0000;
    InitPieVectTable();

    led_init();
    time0_init(2000);
    while (1)
    {





    }

}

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

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

相关文章

(独白)我为什么选择了计算机行业?

为什么可能很简单,但为什么的为什么就有点长了。就当作讲故事吧 在高中毕业后选择专业时,和大多数人一样,我根本不知道要选择什么专业,更不知道哪个专业发展前景好,哪个专业好就业。在当时比较火的专业我记得应该是土…

解锁转换成功:12 个基本的成长骇客技巧

什么是增长黑客?增长黑客已成为营销界的流行语,但许多人仍然不知道增长黑客的含义以及它在营销中是如何发挥作用的。如果你也存在这样的困惑,别担心。今天这篇文章将为你解答以上问题。通过黑客增长和走特立独行的发展道路,你可以…

《opencv实用探索·十九》光流法检测运动目标

前言 光流法(Optical Flow)是计算机视觉中的一种技术,用于估计图像中相邻帧之间的像素位移或运动。它是一种用于追踪图像中物体运动的技术,可以在视频中检测并测量物体的运动轨迹。 光流的直观理解: 光流是一个视频中两…

VINS-MONO代码解读6----pose_graph

开始pose_graph部分,本部分记住一句话无论是快速重定位还是正常重定位,求出 T w 1 w 2 T_{w_1w_2} Tw1​w2​​就是终极目标。 还剩一个整体Pipeline~~ 1. pose_graph_node.cpp 注意,定义全局变量时即实例化了一个对象 PoseGraph posegra…

开关电源这些纹波噪声如何抑制?

电源工程师都知道,开关电源在运行过程中会产生多种纹波噪声,对电路性能和稳定性产生一定影响,所以要针对各种纹波噪声采取合理的措施来解决,那么如何做? 1、低频纹波噪声主要是由于开关管开关状态的快速变化导致的。在…

C++异步网络库workflow系列教程(3)Series串联任务流

往期教程 如果觉得写的可以,请给一个点赞关注支持一下 观看之前请先看,往期的两篇博客教程,否则这篇博客没办法看懂 workFlow c异步网络库编译教程与简介 C异步网络库workflow入门教程(1)HTTP任务 C异步网络库workflow系列教程(2)redis任务 简介 首先,workflow是任务流的意…

图解python | 字典

1.Python字典(Dictionary) 字典是另一种可变容器模型,且可存储任意类型对象。 字典的每个键值 key>value 对用冒号 : 分割,每个键值对之间用逗号 , 分割,整个字典包括在花括号 {} 中 ,格式如下所示: d {key1 : value1, key…

软件测试职业规划

软件测试人员的发展误区【4】 公司开发的产品专业性较强,软件测试人员需要有很强的专业知识,现在软件测试人员发展出现了一种测试管理者不愿意看到的景象: 1、开发技术较强的软件测试人员转向了软件开发(非测试工具开发); 2、业务…

题目:区间或 (蓝桥OJ 3691)

题目描述: 解题思路: 本题采用位运算.先求出全部数组每一位各自的前缀和,然后再判断区间内每一位区间和是否为0,不为0则乘上相应的2^n并将各个为的2^n相加,得ans. 实现原理图 题解: #include<bits/stdc.h> using namespace std;const int N 1e5 9;int a[N], prefix[35…

2023AI Agent智能体HR商用落地的案例汇集

过去一周在各类智能体产品不断呈现新发展态势的情况下&#xff0c;我们将注意力继续放回AI Agent智能体在大型和超大型企业不同领域商用落地的可能性探索上面去。 本着这一初衷&#xff0c;我们会继续把注意力转向探索AI Agent智能体在HR领域的商用落地所面临的挑战和最可能实…

ida脚本环境开发配置idapythonidacpp三端环境(win,mac,linux)

ida脚本也有一段时间了,一直有个痛点是找不到比较好的方法热重载脚本来实时改动生效,导致开发效率老慢了。固总结下比较友好的环境搭配 使用ida热加载插件让你开发脚本更高效 github地址: GitHub - 0xeb/ida-qscripts: An IDA plugin to increase productivity when developi…

PyTorch: 基于【VGG16】处理MNIST数据集的图像分类任务【准确率98.9%+】

目录 引言在Conda虚拟环境下安装pytorch步骤一&#xff1a;利用代码自动下载mnist数据集步骤二&#xff1a;搭建基于VGG16的图像分类模型步骤三&#xff1a;训练模型步骤四&#xff1a;测试模型运行结果后续模型的优化和改进建议完整代码结束语 引言 在本博客中&#xff0c;小…

MySQL数据库卸载-Windows

目录 1. 停止MySQL服务 2. 卸载MySQL相关组件 3. 删除MySQL安装目录 4. 删除MySQL数据目录 5. 再次打开服务&#xff0c;查看是否有MySQL卸载残留 1. 停止MySQL服务 winR 打开运行&#xff0c;输入 services.msc 点击 "确定" 调出系统服务。 2. 卸载MySQL相关组…

国标级联/流媒体音视频平台EasyCVR设备录像下载异常该如何解决?

视频监控TSINGSEE青犀视频平台EasyCVR能在复杂的网络环境中&#xff0c;将分散的各类视频资源进行统一汇聚、整合、集中管理&#xff0c;在视频监控播放上&#xff0c;视频安防监控汇聚平台可支持1、4、9、16个画面窗口播放&#xff0c;可同时播放多路视频流&#xff0c;也能支…

一、win10+yolov8+anaconda环境部署

1、安装anaconda &#xff08;1&#xff09;打开aonconda下载地址&#xff1a;https://www.anaconda.com/download&#xff0c;点击download下载。 2、下载完成后&#xff0c;双击打开&#xff0c;点击Next&#xff0c;I Agree&#xff0c;选择just me&#xff1b; 3、勾选…

SQL进阶理论篇(五):什么是Hash索引

文章目录 简介MySQL中的Hash索引与B树的区别总结参考文献 简介 hash&#xff0c;即哈希&#xff0c;也被称为是散列函数。 Hash在数据库中的应用&#xff0c;可以帮助我们大幅度提升检索数据的效率。 大名鼎鼎的MD5其实就是Hash函数的一种变体。 Hash算法&#xff0c;是通过…

ArkTS编译时遇到arkts-no-obj-literals-as-types错误【Bug已解决-鸿蒙】

文章目录 项目场景:问题描述原因分析:解决方案:解决方案1解决方案2此Bug解决方案总结项目场景: 在开发鸿蒙项目过程中,遇到了arkts-no-obj-literals-as-types,总结了自己和网上人的解决方案,故写下这篇文章。 遇到问题: rkTS编译时遇到arkts-no-obj-literals-as-type…

操作系统中的作业管理

从用户的角度看&#xff0c;作业是系统为完成一个用户的计算任务&#xff08;或一次事务处理&#xff09;所做的工作总和。例如&#xff0c;对于用户编制的源程序&#xff0c;需经过对源程序的编译、连接编辑或连接装入及运行产生计算结果。这其中的每一个步骤&#xff0c;常称…

解锁知识的新大门:自建知识付费小程序的技术指南

在数字化时代&#xff0c;知识付费小程序的崛起为创作者和学习者提供了全新的学习和分享方式。本文将以“知识付费小程序源码”为关键词&#xff0c;从技术角度出发&#xff0c;为你展示如何搭建一个独具特色的知识付费平台。 步骤1&#xff1a;选择适用的知识付费小程序源码…