国产嵌入式教学实验箱操作教程:2-13 定时器控制实验

一、实验目的

熟悉定时器的基本结构,学习定时器的功能和控制方法,并实现基于定时器中断方式控制程序。

二、实验原理

定时器

TMS320CC6748有4个定时器/计数器,均可配置为64位计数器、两个独立32位计数器及自动重装32位计数器,可以产生周期中断DMA事件及外部事件。定时器/计数器还可以用于捕获外部输入信号边缘并计数。此外,定时器1还可以用作64位看门狗计数器。本实验使用的是定时器2。

定时器的功能

(1)定时

时钟源一般来源于DSP内部,当然也可以选择来自于外部。

(2)计数
可以利用它的功能来计算外部脉冲在一段时间内到来的次数,所以叫做计数器(记录外部脉冲的次数)。因为内部有一个计数的count,如果用作定时就是先输入一个数字,然后在来了一个时钟之后count自动减一。如果用成计数就是在一个脉冲到来之后count自动加一。

(3)看门狗
一些定时器设计有信号连接到内部器件的复位,因此可用于看门狗定时器模式。

定时器的特性

(1)64 位自增计数器

(2)定时器模式:

64 位通用定时器模式(低32位定时器叫Timer12,高32位定时器叫Timer34)

双 32 位非链式通用定时器模式模式

双 32 位链式定时器模式

看门狗定时器模式

(3)2种时钟源:

内部时钟

外部时钟/事件输入定时器的相连引脚

(4)3种工作模式:

一次工作 (定时器运行一个周期然后停止)

持续工作 (定时器在每个周期结束自动清零并继续工作)

持续工作周期性重载(定时器在每个周期自动获取重载寄存器的值并继续工作)

(5)产生 CPU 中断

(6)产生输出事件让设备复位(仅看门狗模式)

(7)产生 DMA 同步事件

(8)产生输出事件到定时器输出引脚(如果引脚可用)

(9)外部事件捕获相连的定时器引脚(如果引脚可用)

image.png

定时器的时钟源

时钟信号可分为分为内部时钟和外部时钟输入,定时器0和定时器1的时钟为PLL0_AUXCK(旁路时钟,24MHz),定时器2和定时器3默认状态下使用的时钟为PLL0_SYSCLK2(为系统频率的二分之一,228MHz),可通过定时器配置将其时钟设置为PLL1_SYSCLK2(可以避免因CPU主频变化对设备产生的不利影响)。

定时器时钟源由定时器控制寄存器 (TCR) 时钟源 (CLKSRC12) 位选择。复位后,时钟源为内部时钟。两个时钟源都可以驱动定时器时钟:
• 设置 CLKSRC12 = 0 为内部时钟。
• 设置 CLKSRC12 = 1 为输入引脚 TM64P_IN12 外部时钟。

image.png

实验中使用的是定时器 2,默认情况下定时器 2 使用 PLL0SYSCLK2,所以时钟固定为 CPU 频率二分频。即时钟为:PLL0_SYSCLK2=CPU 频率/2=456MHz/2=228MHz

所以64位定时器的时间间隔:T=计数周期*(1/PLL0_SYSCLK2) =0x0D970100/228000000s=1s
其中0x0D970100 是程序中设定的计数周期,在main.c的宏定义中设定。

image.png

程序流程

程序流程设计中首先要进行外设使能配置,接着进行管脚复用配置和定时器初始化,然后进行DSP中断初始化,接着初始化定时器中断,触发中断后在中断中控制LED闪烁。

image.png

源码

管脚复用源码

基于StarterWare控制外设时可调用对应的API接口,无需配置复杂的寄存器。GPIO管脚复用配置的函数源码可以查看GPIO.c。

管脚复用配置。

GPIO复用配置操作直接封装成了函数,使用时,直接包含“TL6748.h”文件 即可。

StarterWare API 接口。

GPIOBank0Pin0PinMuxSetup();

image.png

定时器配置源码

配置定时器的函数源码和函数使用说明可以查看timer.c。其中,第一个参数是定时器模块寄存器的基地址,第二个参数是用于配置定时器模块。

定时器配置

使用 StarterWare 的库来配置定时器。

使用时,直接包含“timer.h”文件 即可。

StarterWare API 接口。

void TimerConfigure(unsigned int baseAddr, unsigned int config)

image.png

周期配置源码

配置定时器周期的函数源码和函数使用说明可以查看timer.c。其中,第一个参数是定时器模块寄存器的基地址,第二个参数是要设置周期的定时器,第三个参数是设置的周期大小。

定时器周期配置。

使用 StarterWare 的库来配置定时器周期。

使用时,直接包含“timer.h”文件 即可。

StarterWare API 接口。

void TimerPeriodSet(unsigned int baseAddr, unsigned int timer, unsigned int period)

image.png

定时器使能源码

配置使能定时器的函数源码和函数使用说明可以查看timer.c。其中,第一个参数是定时器模块寄存器的基地址,第二个参数是要使能的定时器,第三个参数是配置使能定时器的模式。

定时器使能配置。

使用 StarterWare 的库来使能定时器。

使用时,直接包含“timer.h”文件 即可。

StarterWare API 接口。

void TimerEnable(unsigned int baseAddr, unsigned int timer, unsigned int enaMode)

image.png

三、操作现象

实验设备

本实验使用的硬件接口为LED,所需硬件为实验板、仿真器和电源。

image.png

硬件连接

(1)连接仿真器和电脑的USB接口,

(2)将拨码开关拨到DEBUG模式01111,连接实验箱电源,拨动电源开关上电。

image.png

软件操作

导入工程,选择Demo文件夹下的对应工程

编译工程

将CCS连接实验箱并加载程序

点击运行程序,底板4个LED会同时闪烁

实验结束后,先点击黄色按钮暂停程序运行,再点击红色按钮退出CCS与实验箱的连接,最后实验箱断电即可。

image.png

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

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

相关文章

git_新建仓库提交旧项目

将旧项目提交到新Git仓库中的步骤 1、首先,在本地将旧项目文件夹初始化为一个Git仓库: cd /path/to/old_project git init2、将旧项目的文件添加到Git仓库中,并提交更改: git add . git commit -m "Initial commit of old…

C++笔记:OOP三大特性之继承

文章目录 一、继承的概念和定义1.1 概念1.2 定义格式1.3 继承关系和访问限定符 二、基类和派生类对象赋值兼容转换2.1 类型转换存在临时对象的意义2.2 赋值兼容转换不会产生临时变量 三、继承中的作用域四、派生类中的默认成员函数4.1 构造4.2 拷贝构造4.3 赋值重载4.4 析构 五…

行政窗口为什么要开展神秘顾客调查

在竞争日益激烈的服务市场中,行政窗口作为公共服务的直接提供者,其服务质量的好坏直接关系到政府的形象和公众对政府的信任度。为了更好地满足市民的需求,提升服务质量,开展神秘顾客调查显得尤为重要。神秘顾客调查的必要性包括以…

C++如何避免float误差?

C如何避免float误差? 在开始前我有一些资料,是我根据网友给的问题精心整理了一份「c的资料从专业入门到高级教程」, 点个关注在评论区回复“888”之后私信回复“888”,全部无偿共享给大家!!! …

WP----Look 我看的见你,你却看不见我 tips:sql injection tips2: mysql 字符集

0x00 题目连接打开后,是空白的,源代码也是空白的 这种情况就抓包,看请求包和相应包里面是否有提示 相应包中存在很特别的响应头X-HT: verify 可能是参数,传递任意参数过去 0x01 传递5个长度的参数时,返回 说明参数的…

美国纽约时代广场纳斯达克大屏投放-大舍传媒

美国纽约时代广场纳斯达克大屏投放-大舍传媒 引言 对于大舍传媒来说,能够在美国纽约时代广场纳斯达克大屏投放广告是一个里程碑式的时刻。这不仅仅代表着大舍传媒在全球范围内的知名度与实力,也标志着该公司在国际市场上取得了巨大的进展。纽约时代广场…

基于docker安装HDFS

1.docker一键安装见 docker一键安装 2.拉取镜像 sudo docker pull kiwenlau/hadoop:1.03.下载启动脚本 git clone https://github.com/kiwenlau/hadoop-cluster-docker4.创建网桥 由于 Hadoop 的 master 节点需要与 slave 节点通信,需要在各个主机节点配置节点…

cuda加速:memory coalescing,Bank Conflicts

cuda加速:memory coalescing 1.memory coalescing2.Shared Memory Bank Conflicts参考文献 1.memory coalescing 参考【1】中给出的定义:一个warp中,thread 0到thread 31访问连续的内存空间,则这些线程的访问被合并为一次访问。 …

git使用过的命令记录

目录 git add .git commit --amendgit push -f origin HEAD:mastergit checkout .git stash想把某个pr的修改应用到本地git pull 将远程仓库的最新代码更新到本地git 撤销,放弃本地修改参考文档 git add . 将本地修改提交到暂存区 git commit --amend 如果本地有…

Cesium 问题:加载 gltf 格式的模型之后太小,如何让相机视角拉近

文章目录 问题分析问题 刚加载的模型太小,如何拉近视角放大 分析 在这里有两种方式进行拉近视角, 一种是点击复位进行视角拉近一种是刚加载就直接拉近视角// 模型三加载 this.damModel = new Cesium.Entity({name: "gltf模型",position:</

什么是智慧公厕?智慧公厕建设的好处

智慧公厕是一种融合物联网、互联网、通信技术、大数据、云计算、自动化控制等信息化技术的新型公共厕所&#xff0c;通过传感器数据获取和分析优化业务流程&#xff0c;为公共厕所的监测、管理、控制提供全方位支持&#xff0c;实现公共厕所的环境监测与调控、厕位占用监测与引…

9906在线式户外多通道光伏组件评测系统

01 9906在线式户外多通道光伏组件评测系统 产品综述&#xff1a; 在线式户外多通道光伏组件评测系统是一款支持实时多通道光伏组件测试的评测系统&#xff0c;提供真6路电子负载&#xff0c;提供多至6通道的实时测试能力&#xff0c;并可根据用户需求订制通道数量。评测系统…

pdb打断点示例

文章目录 一、pdb打断点二、pdb 调试时常用的命令&#xff1a; 一、pdb打断点 使用 Python 自带的 pdb 模块&#xff0c;您可以在代码中设置断点并进行调试。以下是一个简单的示例&#xff0c;展示了如何在代码中使用 pdb 设置断点和进行调试&#xff1a; import pdbdef divi…

java使用poi简单操作excel

文章目录 引言插入行/列合并单元格以及设置居中换行 引言 编程开发中&#xff0c;我们可能会接到某些需求&#xff0c;例如导出某某某列表数据&#xff0c;或者做一份报表&#xff0c;这时候就需要我们的poi出场了&#xff0c;至于一些规则数据的导出&#xff0c;直接使用easy…

springcloud搭建 初级人员的使用搭建。sentinel使用官网有详细的使用方法

代码仓库地址&#xff1a;https://github.com/zhaoyiwen-wuxian/shop-trench package com.trench.filters;import org.springframework.cloud.gateway.filter.GatewayFilterChain; import org.springframework.cloud.gateway.filter.GlobalFilter; import org.springframework…

Sora问世引发热议,一部分人已靠它赚钱?

这几天&#xff0c; 估计大家都被一款叫Sora的“文生视频”工具狠狠地刷屏了 问&#xff1a;Sora到底是什么 答&#xff1a;Sora是OpenAI发布的“核弹级”AI视频模型产品&#xff0c;“文生视频”60秒一镜到底&#xff0c;效果堪称“炸裂”&#xff01; OpenAI公司发布最新…

vue项目设置的端口号运行后会自动加一问题解决

vue项目设置的端口号运行后会自动加一问题解决 主要原因是之前运行项目后没有完全的关闭服务&#xff0c;导致再次运行项目端口号被占用&#xff0c;自动加一&#xff01; 问题解决 打开任务管理器&#xff0c;在进程中找到node相关进程&#xff0c;右键结束任务

Typescript初体验

Typescript Typescript 官网地址: https://www.typescriptlang.org/zh/ 使用 nvm 来管理 node 版本: https://github.com/nvm-sh/nvm 装 Typescript: npm install -g typescript使用 tsc 全局命令&#xff1a; // 查看 tsc 版本 tsc -v // 编译 ts 文件 tsc fileName.ts1.…

利用数字人技术“活”化吉祥物,打造“科技+”数融盛会

在第十四届全国冬季运动会上&#xff0c;吉祥物“蒙古彩娃”安达和塞努不再同于往常静态的吉祥物形象&#xff0c;而是升级为生动活泼、能够与观众实时互动的数字人形象&#xff0c;活跃于赛事宣传、场馆介绍等多个场景&#xff0c;为本届冰雪盛会注入数字活力&#xff0c;提升…

java中反射详解

反射详解 反射什么是反射&#xff1f;常见操作反射中常用类1.Class类获取Class对象的三张方式类名通过forName&#xff08;&#xff09;方法通过对象 2.Constructor类获取Constructor构造方法的方式执行Constructor构造方法的方式 3.Field类获取Field成员变量的方式获取所有成员…