国产嵌入式教学实验箱操作教程: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,一经查实,立即删除!

相关文章

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;并可根据用户需求订制通道数量。评测系统…

java使用poi简单操作excel

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

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;提升…

RoboRAVE世界机器人大会亚洲分会toio™专项挑战顺利收官,toio™实现“双首次”突破

2024年2月21日&#xff0c;北京——2024 RoboRAVE国际教育机器人大会&#xff08;下称RoboRAVE&#xff09;亚洲分会toio™专项挑战在北京科技大学成功举办。现场云集来自华北、华南、华东等全国各地40组杰出学生队伍&#xff0c;展开热烈的机器人编程限时挑战。本届toio™专项…

并发编程入门指南

文章目录 并发编程进程和线程的区别并发和并行的区别创建线程的方式线程之间的状态&#xff0c;状态之间的转换新建三个线程&#xff0c;如何保证按顺序执行wait方法和sleep的区别如何停止一个正在运行的线程synchronized关键字底层原理Monitor属于重量级锁&#xff0c;了解过锁…

day04_流程语句_if_while_for

今日内容 1.if 2.switch 3.while,do-while,for 零、复习 1算术运算符中除法特性 整数相除不保留小数 10/33 2什么作用,i和i什么区别 让数据自增1i,是在后先使用后自增i,是在前先自增后使用 3&& 和 & 有相同点和不同点 相同点: 两边判断式子,一错就错全对才对不同点…

一文了解web开发基础知识【HTML、CSS、JavaScript】

文章目录 1 前言1.1 HTML1.2 CSS1.3 JavaScript1.4 理解HTML、CSS、JavaScript之间的关系 2 HTML2.1 什么是网页2.2 什么是HTML2.2.1 文本内容2.2.1.1 标题 2.2.2 图像2.2.3 链接2.2.4 列表2.2.5 表格2.2.6 HTML代码注释 2.3 第一个HTML文件2.3.1 示例2.3.2 补充2.3.2.1 < l…

苹果iPad通过Code APP应用实现SSH连接服务器远程进行开发

文章目录 1. 在iPad下载Code APP2.安装cpolar内网穿透2.1 cpolar 安装2.2 创建TCP隧道 3. iPad远程vscode4. 配置固定TCP端口地址4.1 保留固定TCP地址4.2 配置固定的TCP端口地址4.3 使用固定TCP地址远程vscode 本文主要介绍开源iPad应用IDE Code App 如何下载安装&#xff0c;并…

基于springboot + vue实现的前后端分离-酒店管理系统

项目介绍 基于springboot vue实现的酒店管理系统一共有酒店管理员和用户这两种角色。 管理员功能 登录&#xff1a;管理员可以通过登录功能进入系统&#xff0c;确保只有授权人员可以访问系统。用户管理&#xff1a;管理员可以添加、编辑和删除酒店的用户&#xff0c;包括前…