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

本文主要是介绍国产嵌入式教学实验箱操作教程: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

这篇关于国产嵌入式教学实验箱操作教程:2-13 定时器控制实验的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/732138

相关文章

SpringBoot集成redisson实现延时队列教程

《SpringBoot集成redisson实现延时队列教程》文章介绍了使用Redisson实现延迟队列的完整步骤,包括依赖导入、Redis配置、工具类封装、业务枚举定义、执行器实现、Bean创建、消费... 目录1、先给项目导入Redisson依赖2、配置redis3、创建 RedissonConfig 配

Python正则表达式匹配和替换的操作指南

《Python正则表达式匹配和替换的操作指南》正则表达式是处理文本的强大工具,Python通过re模块提供了完整的正则表达式功能,本文将通过代码示例详细介绍Python中的正则匹配和替换操作,需要的朋... 目录基础语法导入re模块基本元字符常用匹配方法1. re.match() - 从字符串开头匹配2.

Java实现在Word文档中添加文本水印和图片水印的操作指南

《Java实现在Word文档中添加文本水印和图片水印的操作指南》在当今数字时代,文档的自动化处理与安全防护变得尤为重要,无论是为了保护版权、推广品牌,还是为了在文档中加入特定的标识,为Word文档添加... 目录引言Spire.Doc for Java:高效Word文档处理的利器代码实战:使用Java为Wo

SpringBoot 多环境开发实战(从配置、管理与控制)

《SpringBoot多环境开发实战(从配置、管理与控制)》本文详解SpringBoot多环境配置,涵盖单文件YAML、多文件模式、MavenProfile分组及激活策略,通过优先级控制灵活切换环境... 目录一、多环境开发基础(单文件 YAML 版)(一)配置原理与优势(二)实操示例二、多环境开发多文件版

使用docker搭建嵌入式Linux开发环境

《使用docker搭建嵌入式Linux开发环境》本文主要介绍了使用docker搭建嵌入式Linux开发环境,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面... 目录1、前言2、安装docker3、编写容器管理脚本4、创建容器1、前言在日常开发全志、rk等不同

Debian 13升级后网络转发等功能异常怎么办? 并非错误而是管理机制变更

《Debian13升级后网络转发等功能异常怎么办?并非错误而是管理机制变更》很多朋友反馈,更新到Debian13后网络转发等功能异常,这并非BUG而是Debian13Trixie调整... 日前 Debian 13 Trixie 发布后已经有众多网友升级到新版本,只不过升级后发现某些功能存在异常,例如网络转

sysmain服务可以禁用吗? 电脑sysmain服务关闭后的影响与操作指南

《sysmain服务可以禁用吗?电脑sysmain服务关闭后的影响与操作指南》在Windows系统中,SysMain服务(原名Superfetch)作为一个旨在提升系统性能的关键组件,一直备受用户关... 在使用 Windows 系统时,有时候真有点像在「开盲盒」。全新安装系统后的「默认设置」,往往并不尽编

基于C#实现PDF转图片的详细教程

《基于C#实现PDF转图片的详细教程》在数字化办公场景中,PDF文件的可视化处理需求日益增长,本文将围绕Spire.PDFfor.NET这一工具,详解如何通过C#将PDF转换为JPG、PNG等主流图片... 目录引言一、组件部署二、快速入门:PDF 转图片的核心 C# 代码三、分辨率设置 - 清晰度的决定因

Python自动化处理PDF文档的操作完整指南

《Python自动化处理PDF文档的操作完整指南》在办公自动化中,PDF文档处理是一项常见需求,本文将介绍如何使用Python实现PDF文档的自动化处理,感兴趣的小伙伴可以跟随小编一起学习一下... 目录使用pymupdf读写PDF文件基本概念安装pymupdf提取文本内容提取图像添加水印使用pdfplum

Python从Word文档中提取图片并生成PPT的操作代码

《Python从Word文档中提取图片并生成PPT的操作代码》在日常办公场景中,我们经常需要从Word文档中提取图片,并将这些图片整理到PowerPoint幻灯片中,手动完成这一任务既耗时又容易出错,... 目录引言背景与需求解决方案概述代码解析代码核心逻辑说明总结引言在日常办公场景中,我们经常需要从 W