讲座视频 - 周期性输入

+荐课 提问/讨论 评论 收藏
00:00/00:00
×1
  • ×1
  • ×1.25
  • ×1.5
  • ×2
  • ×3
  • ×4
  • ×5
高清
  • 高清
  • 普通
  • 低清
中文
60%
用户鉴权失败,请先注册成为百度云用户
百度云
大家好,我是 John Valvano,在本视频中, 让我们讨论定时器。 时间是嵌入式系统的重要参数, 我们将看到,在本课程中, 我们实际上要在三件事情中使用时间。 在本视频中,我们将讨论如何把它们 用于周期性中断,换句话说, 定期执行一段软件指令。 在码盘模块中,我们将使用定时器作为输入 来测量周期或频率。 这将告诉我们电机的旋转速度有多快。 然后,在与该模块关联的实验中, 我们将使用定时器作为输出来生成 脉宽调制输出(PWM)。 您可以在这里的图中看到, 定时器是如此重要,以至于处理器中有很多定时器。 它们分为两级。 第一级是模块,那么我们有一、二、三、四个模块。 第二级是子模块,我们将看到,每个 模块具有多个子模块。 好,让我们继续。 请注意,定时器类似于 Systick, 但定时器的模式和配置方法远远 多于 Systick。 请注意,它之所以类似于 Systick, 是因为它有这里的常量,并且它 还有那里的计数器值。 然后,如果您愿意,可以把该常量 加载到计数器中。 它们的不同之处有很多, 其中一个不同之处是它只有16 位宽, 所以这里的定时器 A 上的定时器只有 16 位宽。 正如我说过的,我们将在整个课程中使用它。 我们将在码盘的实验中把它用于输入, 在本实验中把它用于输出, 并且我们将在本视频中 把它用于周期性中断。 现在,为了简化问题, 我们将选择系统模块时钟(SMCLK), 它的频率是总线时钟除以 4, 因此我们在本章中执行的所有操作 -- 或者我们在机器人中执行的所有操作 将具有设置为 12MHz 的 SMCLK 时钟。 因此,我们的所有时钟分辨率, 是 1/12MHz, 也就是大约83 纳秒。 好,正如我说过的,这里有大量的寄存器。 它比 Systick 更复杂。 让我们为您指出其中的几点。 首先是这里的计数器本身, 您可以看到计数器。 它是一个 16 位计数器。 我们将看到,我们可以向上计数或向下计数, 这就是我们的计数器。 这些全部是常量寄存器。 这些是常量。 我们可以看出这是一整个模块 -- 在本例中,我们可以看到这是模块 0 -- 以及所有子模块。 对于每个模块,有五个关联的引脚, 但对于每个模块,实际上有七个 关联的子模块。 我们将看到其中有很多位。 我们将看到其中有很多位。 我们将看到其中有很多位。 在本章中,我们将看到这里的触发位, 这就是触发位。 这将 -- 换句话说,该位会被置为 1 , 从而导致我们在本章中 所看到的中断。 还有与特定的子模块 0 中断相关联的 ARM 位, 还有与特定的子模块 0 中断相关联的 ARM 位, 我们将看到时钟选择位。 另外当我们指定设备时,将看到这里的其他位。 另外当我们指定设备时,将看到这里的其他位。 现在,当我们转到下一个模块时, 将讨论这些引脚,但在此模块中, 我们只讨论上面这些引脚。 好,让我们开始吧。 首先,我们将通过时钟子模块来选择定时器的时钟。 首先,我们将通过时钟子模块来选择定时器的时钟。 我们要用的是 12MHz 的时钟, 设置它的方法是,设置这里的 TA Select , 即定时器 A 时钟选择寄存器为 10, 以选择该 12MHz 时钟。 下面我们要做的是, 在我们选择 12MHz 时钟之后, 我们现在可以使它运行得更慢,因为如果我们以更慢的速度进行计数, 我们可以计量更长的时间。 因此,最基本的取舍关系存在于 时钟分辨率 -- 也就是定时器输入/输出或者周期性中断时可以设置的最小时间 -- 也就是定时器输入/输出或者周期性中断时可以设置的最小时间 -- 和计时范围,也就是最大计时时间之间。 这实际上很容易看出来, 这是一个 16 位计数器,最大计数值是 65535 。 那么,我们将看到,选择这里的预分频、 ID 和 TAIDEX 寄存器位, 允许我们实现时钟分辨率和最大计时范围的折衷, 允许我们实现时钟分辨率和最大计时范围的折衷, 无论是作为输入进行测量、作为输出, 或产生周期性中断。 因此,举例来说, 如果我想在那里产生 500KHz 的时钟, 那么我可以做下面几件事情。 我可以设置 ID 位,将时钟除以 4 进行预分频, 然后选择这里(TAIDEX)的预分频值为 5。 现在,我将采用我的 1/12MHz 时钟, 进行 4 预分频和 6 预分频, 这将生成在我下面的示例中 使用的 2 us 分辨率。 那么,这就是该折衷的过程。 现在,我们有许多计数模式。 我们将在本视频中使用的是 向上计数模式。基本来说, 计数器将向上计数,0,1,2,3。 当它达到该溢出值, 也就是这里的结束值之后,它将重新回到 0、1、2、3。 因此您现在可以看到,如果我把该常量设置为 n , 那么就设置了一个触发器, 这里就是我的触发器。 当计数值归零时,它会设置触发器,因此我们可以看到, 在采用我们前一张幻灯片所设置的预分频情况下, 在采用我们前一张幻灯片所设置的预分频情况下, 2 微秒乘以 (n+1), 这将是该置位信号的周期, 或是中断的周期。 很显然,我们可以看到n 是一个 16 位数字, 因此,这再次说明了时间分辨率与 最大中断时间间隔的比率。 在下一个视频中,我们将使用向上/向下模式, 并使用其他这些输出位,但在本视频中, 我们仅会生成一个周期性控制中断。 下面是产生周期性中断的步骤。 下面是产生周期性中断的步骤。 我们必须选择一个时钟,并且必须选择一个预分频。 正如我在示例中说过的, 我将选择 500kHz、2 微秒周期的预分频。 我需要对中断进行使能, 我将使能 TA0CCR0 的中断。 然后,我把这里的值设置成任何周期减 1, 其中周期乘以 2 微秒是我想要设置的中断周期。 其中周期乘以 2 微秒是我想要设置的中断周期。 其中周期乘以 2 微秒是我想要设置的中断周期。 现在,它是一个中断,因此它具有优先级。 我们将设置嵌套向量中断优先级寄存器。 我们将设置嵌套向量中断优先级寄存器。 还有一个步骤, 我们必须在嵌套向量中断控制器中开启该中断, 我们必须在嵌套向量中断控制器中开启该中断, 我们要开启该中断。 在所有初始化完成之后,我们要在处理器中, 在 primask 中设置 i=0, 这是在 primask 中, 它是处理器中的一个寄存器, 在 C 语言中,我们通过调用该函数 EnableInterrupts 来执行它。 但要再次强调的是,这个操作是在所有初始化完成之后。 但要再次强调的是,这个操作是在所有初始化完成之后。 这里是中断向量表, 正如我说过的,我们将使用定时器中断, 共有四个定时器模块, 其中每个定时器模块有七个子模块, 因此您在 MSP432 上可以有多达 28 个 不同的周期性中断。 我们只是将执行其中的一个, 我将使用定时器 2 的子模块 0, 下面将对它进行说明, 如果您查看该文件中的代码, 您将看到中断服务例程的标准定义。 您将看到中断服务例程的标准定义。 您还可以看到,对于这个特定中断, 这是定义中断优先级的三个 bit 所在的位置。 它位于 NVIC_IPR3 寄存器的7、6 和 5 中, 它是第 12 个中断 -- 我是说 IRQ 12 和中断 28。 因此,我们一会儿将在代码中看到这个 12。 这里是实际的代码, 这是摘取出来的部分代码,因此您看到, 它实际上具有一个函数指针。 这个 32 位的变量指向一个 用户函数,该函数以一个函数返回值结束, 然后,当我们调用该函数时, 我们将把这里的用户代码传递过去。 我们将传递该周期, 正如我在前一张幻灯片中所说的, 该周期将具有 2 微秒的单位。 我使这一切工作的方法是, 设置 SMCLK 为 12MHz 时钟, 并在那里选择 4 预分频,在这里选择 6 预分频, 这将生成我的 2 微秒周期。 之前说过,我将使用向上计数模式, 因此我要在这里将定时器设置为以向上计数模式运行。 我将 -- 周期性中断是另一个名称 --使用比较模式。 我将 -- 周期性中断是另一个名称 --使用比较模式。 我将 -- 周期性中断是另一个名称 --使用比较模式。 在比较模式下,换句话说,当计数器达到这里的值之后, 它会把重载标志位置 0 并继续计数。 这里是中断优先级寄存器 3 的位 7-5 , 这里是中断优先级寄存器 3 的位 7-5 , 它将设置中断优先级, 我告诉过您它是中断 12。 我通过设置嵌套向量中断控制器的设置位 12 来使能该中断。 我通过设置嵌套向量中断控制器的设置位 12 来使能该中断。 正如我说过的,我们要 首先初始化所有设备,然后再 启用中断。 这是中断服务例程看起来的样子。 您应该记得,对于 Systick, 引发 Systick 的标志在 Systick 中断运行时 自动清除。 而对于定时器来说不是这样。 这里是我们说过的触发标志位,它位于 CCTL 的位 0 中。 这是导致该中断发生的标志位, 因此为了能识别该中断, 需要将该标志位清除, 我将在这里清除该标志位。 然后,我将调用本例中特定的用户函数。 然后,我将调用本例中特定的用户函数。 然后,我将调用本例中特定的用户函数。 现在,这是定时器A2 子模块 0。 对于实验,您必须做的是,在定时器 A 子模块 0 上 创建一个周期性中断 -- 我是说定时器 A0 子模块 0。 因此,有几项内容必须改变。 在这里,所有您看到 2 的位置 -- 它们必须变为 0。 在这里,这是中断 12 -- 这 必须变为中断 10。 在这里,这是中断优先级 3 寄存器位 7、6、5 -- 它必须是中断优先级 2 寄存器。 这里的位,23、22 和 21。 这里的位,23、22 和 21。 这些是基本的差异。 除此之外,这全部四个模块具有非常 类似的工作方式。 总之,我们讨论了 定时器,它具有输入、输出功能和 周期性中断。 本节中我们特别讨论了使用定时器 来创建其它周期性运行的线程。 来创建其它周期性运行的线程。 正如我提到过的,您的系统上有四个定时器 -- 定时器 A0、A1、A2、A3。 在本视频中的代码向您展示了如何控制定时器 A1, 在本视频中的代码向您展示了如何使用定时器 A1, 您的任务是使用定时器 A0 ,并根据需要使用定时器 A2 和 A3。 希望您喜欢本实验。 在下一个视频中, 我们将扩展定时器的功能, 以生成脉宽调制输出。 好,希望您喜欢本次实验。
课程介绍 共计4课时,37分36秒

TI-RSLK 模块 13 - 计时器

TI PWM 机器人 软件 RSLK 计时器

在此模块中,您将编写用计时器创建 PWM 输出的软件。为 PWM 和周期性中断采用计时器可提供增加机器人系统复杂性的机制。

猜你喜欢 换一换

推荐帖子

锂电池充电及充电保护电路
  通过锂电池向电路系统提供3.3V电压,并具备USB充电功能及过充保护功能.         USB充电采用TP4056芯片电路实现.TP4056为单节锂离子电池恒定电流/恒定电压线性充电器,内部采用PMOSFET架构并结合防倒充电路,因此不需要外部隔离二极管.热反馈可对充电电流进行自动调节,以便在大功率操作或高温环境温度条件下对...
Aguilera 模拟与混合信号
DSP28335外部中断配置过程
28335外部中断基本特点 7个可屏蔽中断源和1个不可屏蔽外部中断源 GPIO0-31可选的中断源为XINT1(可屏蔽中断),XINT2和XNMI(不可屏蔽中断) GPIO32-GPIO63可选的中断源为XINT3-7 外部中断的触发方式可选上升沿或下降沿触发 **外部中断外设和其他外设不一样,在中断函数中只用清除PIE中断即可不用清除外设中断**。 外部中断配置过程 其实2...
fish001 DSP 与 ARM 处理器
TMS320VC5509使用nof flash AM29LV400
本帖最后由 fish001 于 2020-2-6 22:08 编辑 . 硬件接口如下,其中nor flash的使用方法,写的时候和NAND FLASH是一样的,读的时候和DRAM是一样的 2. 看下擦除指令和编程指令   ...
fish001 DSP 与 ARM 处理器
DSP 中断系统及其应用
1 中断概述 1.1 中断响应机制和分类 CPU在进程正常的程序处理的时候,有时候会被要求处理更高需求级别的任务,因此不得不中断当前任务进程,进入中断服务程序。而在处理完这些额外的任务之后,还需要回到之前的任务,因此就需要在进入中断程序之前必须保存现场,以确保在主要任务被打断并完成中断程序之后,能够准确地回到之前的任务节点。 另外,额外的任务有时候并不是更高级的需求, 中断请求可以分为 ...
fish001 DSP 与 ARM 处理器

shakencity

学习学习TI-RSLK 模块 13 - 计时器

2019年11月28日 13:37:17

hawkier

学习了

2019年08月01日 18:14:44

大明58

看看视频,学习一下。。

2019年06月27日 15:51:47

hellokt43

看看视频,学习学习一下

2019年05月16日 08:57:22

zwei9

周日继续学习下

2019年05月12日 12:03:44

dingxilindy

看看视频,学习一下

2019年02月08日 16:45:40

wudianjun2001

学习

2019年01月23日 10:55:03

wudianjun2001

学习

2019年01月23日 10:54:31

led2015

学习一下

2019年01月17日 16:22:17

led2015

学习一下

2019年01月14日 14:56:05

分享到X
微博
QQ
QQ空间
微信

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

 
机器人开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新文章 手机版

站点相关: EEWORLD首页 EE大学堂 论坛 下载中心 Datasheet 活动专区 博客

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved