人工智能
最新课程
- 高压系统功能安全简介
- 揭秘高压应用安规中的电气间隙和爬电距离
- 管理微型逆变器中的电源转换挑战
- 比较三相工业系统的交流/直流电源转换拓扑
- 隔离认证概述及其对高压设计的意义
- 在基于 GaN 的电源中实现钛金级效率
- 提高 800V SiC 牵引逆变器效率和功率密度的主要设计注意事项
- 如何设计安全可靠和高效的储能系统
- 使用传统升压控制器创建初级侧调节反激式转换器
- 相移全桥转换器基础知识
热门课程
TI-RSLK 模块 10 - 讲座视频 - 调试实时系统 - 理论
大家好,我是
在本章中,
在讨论调试和中断。
在前两个视频中,
调试的
和中断的
在本视频中,让我们讨论
中断的具体示例。
SysTick
硬件触发的
可导致每隔固定
这里的中断服务
我们的需要。
因此,事实证明这是
我们可以在许多
在这些应用中,我们
某些软件事件。
我们将在实验中
我们将能够
,并弥补
等待传感器激活
然后,当我们
我们要把它用于
在实验
因此,我们将
该周期性中断。
那么,让我们开始吧。
那么一般而言,
硬件触发的
我们要在这里
是定期从传感器
好的,那么我们
在实验
正如我说过的,当我们
我们将使用
然后,当我们
我们将以周期性的
以便周期性地
我们上次提到的
我获得的传感器数据,我必须
我不能把它留在
我必须把它
因此我要创建
某个永久性
它可以是公共、全局性的,
也可以是静态的
在该文件的函数内共享。
无论是哪种方法,
现在,我们可以进入
进入标志中的变量。
正如我上次提到的,
我们实际上可以
先入先出环队列中。
当我们到实验
那么让我们回顾一下
时间的章节。
SysTick
24
因此它会递减
我们具有一个
进行写入。
那么,尤其是,如果
n
那么它将对
一直到
正是这种
将触发中断。
一旦
那么,如果
这是一个模块
它连接到总线时钟。
因此,如果我们
那么该时钟将
或确切地说每
让我们更深入地
它的寄存器。
再说一次,我们上次看到过这个。
它仅有三个寄存器,
寄存器,以及一个值寄存器。
这是计数器本身。
为了使它发生,
时钟源作为
我们将启用它,以便
在先前的使用中,我们
但现在我们将使用中断。
因此我要使它为
正如我先前
标志是该
该计数标志
因此随着它
它将重新
我将
但这里的转换,
将设置计数标志。
由于我们已经
因此如果我们
那么这些是导致
首先我们必须
我们必须
我们必须
对于生成
这些是三个必要条件,
初始化
也就是说,如果我
中断一次,周期的
我要将周期减
例如,如果我希望
那么总共是
这是转换。
48,000
因此,这里的值
那么,该中断
触发一次。
7
我们曾在先前的
我们有多个中断,
在该
这是一个
顶部的
中断的优先级。
那么这是我们的例程。
这是我们的初始化。
它会执行一次。
在我们的主程序中,
都进行
我们将启用中断。
然后,第一个
从
它将不停地
因为计数器
计数。
那么,这是初始化。
中断服务例程
再说一次,我们曾在上一张
一个函数,并且我使用
例如
中断的中断
现在,我要
请注意,这不是
但这是一项一般任务。
这是该项任务
您应该记得计数
它使用某个值进行了设置,
标志进行了设置。
运行该中断
清除上一个
好的,现在我们
看到了作为一种性能评测
再说一次,它的功能和它的
在该例程中,我要
三次切换。
在前一个视频中,
那么我要获取
我要删掉
我将把它乘以
这样我会得到这个数字。
我要在其中添加的
因此,我要
然后我会得到一个特定的寄存器,
端口
那么,如果我向端口
但该三次切换技术的
如果我放大逻辑
那么我可以看到三次
一、二、三,等等,
运行我的
所花费的时间。
再说一次,这具有
因为如果我要
该中断,那么执行这些代码行
一微秒。
因此,调试检测
与调试检测之间的
再说一次,一微秒
因此,它具有极低的侵入性。
这意味着调试
不会修改
但是,如果我缩小,
如果我缩小,我就不再
示波器规模上分别
现在,我只能
那么,该三次
看起来像是一次切换。
因此,我将能够
中断之间的时间。
这样,利用单个
通过缩小测量
并且能够通过
时间。
这就是该调试
但再说一次,
我需要做的
然后它就会运行。
到目前为止,我在这次课中
现在,是时候
关键部分的
那么,您需要
如果您曾共享过
这个永久性
因为您应该记得
如果它们曾共享
这可能是全局性的,
例如在本例中
您可以看到这是端口
这是端口
我有两个不同的线程。
我要共享它。
如果它们中的任何一个是写入
我允许您开始
因为在微观级别,
发生了某种情况,
糟糕,是灾难性的。
那么,让我们来说明一下
那么,我将再次获取我的
现在,看起来这个
那个会设置为
那么这个会影响
您可能会说,嘿,John,
位
这个仅会更改
但不是这样的,
它们生成的线程
那么,让我们放大
它们由任何
生成以尝试实现
正如我们在先前的
要访问全局变量,
一个指向
因此,R2
指向端口
接下来,它将
寄存器中。
那么,该端口的值
现在,某个
思考一下刚才发生了什么。
在这里,我有一个
该
都位于该端口中。
但现在我有一个寄存器,
它具有该端口的值。
我在两个不同的位置
那么,我要问您,
情况变得更糟了。
让我们看看该点。
现在,我在这里具有
就在这里。
我在该寄存器中具有
这两个值是不同的。
您看到了吗?
这个值现在设置了位
那么,这时,我有
这两个值
我有存在于
信息的副本。
它们不一定
让我们在这里
让我们执行
那么我得到了值。
让我们挑选一个
让我挑选一个数字。
那么我要挑选
只是为了说明
我要挑选一个
那么,让我们假设
0、0、0、0。
好的,这很好。
这只是初始的状态。
它包含一些零,
1,2,3,4,5,6,7,8。
端口
让我们重点看看
这是我们在时间
具有的内容。
那么,在这里,
端口中
但幸运的是
在这两条指令之间,
接下来让我们
现在,这个
我刚才设置了位
它具有值
我是说,它具有值
或运算。
但我们获得了中断。
该线程
那么,要执行的
那么,现在我
再说一次,您还记得吗,
寄存器入栈,
一些新的
那么,该寄存器
那么,当我读取
我将得到
这一次,我将设置这个位。
那么,它将变为
然后,我将
现在,在这里写入了该
好的,那么这是时间
然后,我
请记住,连接
那么,它会
那么,最终,它会
这是第
但您应该记得,它所做的是,
弹出。
因此
因为我把它留在了这里。
那么,当我这么做时,
这是第
那么,现在,如果
我已经执行了
我最终
我应该最终
但我最终使一个
这是因为该共享
是一个关键部分,它具有
换句话说,
读取、修改、写入。
这是一件糟糕的事情。
因此,我们要
我们可以使这个成为端口
这样就可以
我们已经看到过
我们可通过它
我们可以
中断赋予相同的
就无法相互中断。
这样就可以解决该问题。
或者,我们可以针对
再重新启用中断。
这会导致
一旦我开始
它就会不可分割地
它会以原子方式运行。
换句话说,
那么,这些就是我可以
三种方法。
但请记住,如果您有
如果您有多线程,
共享某个永久性的
而某人采取了正确的
当一个东西使另一个
发生什么怪异的事情。
然后,使用这
来解决
好,那么我们
我们讨论了
它作为我们的第一个中断,
几行初始化代码,
中断处理例程。
然后,我们再次
它是一种用于查看
时间和中断之间的
我为您带来了有关
关键部分是当您具有
非原子意味着它可以拆分。
中断已启用。
该事件序列
非原子序列,
变量的读取、修改、写入
这种序列
还有其他序列,如写入、
但这种序列可能
然后,我们讨论了三种
方法的思想是通过使它们
我们可以通过
我们可以通过更改
我们可以通过禁用中断
优先级来实现原子性。
好吧,祝您本次实验愉快。
本次实验
但是,我认为一旦您完成它,
好的,祝您愉快。
- 未学习 TI-RSLK 模块 1 - 讲座视频 – 使用 CCS 在 LaunchPad 上运行代码
- 未学习 TI-RSLK 模块 1 - 实验视频 1.1 – 安装 tirslk_maze
- 未学习 TI-RSLK 模块 1 - 实验视频 1.2 – 安装 CCS 和调试
- 未学习 TI-RSLK 模块 1 - 实验视频 1.3 – 运行 TExaS 逻辑分析仪
- 未学习 TI-RSLK 模块 1 - 实验视频 1.4 – 运行 TExaS 示波器
- 未学习 TI-RSLK 模块 2 - 讲座视频 – 电压、电流和功率
- 未学习 TI-RSLK 模块 2 - 实验视频 2.1 – 测量电容器的阻抗
- 未学习 TI-RSLK 模块 2 - 实验视频 2.2 – LED (I,V) 响应曲线、指数关系
- 未学习 TI-RSLK 模块 3 - 讲座视频 - ARM Cortex M 架构
- 未学习 TI-RSLK 模块 3 - 讲座视频 - ARM Cortex M 组件
- 未学习 TI-RSLK 模块 3 - 实验视频 3.1 - 调试解决方案、可视化、断点和单步执行
- 未学习 TI-RSLK 模块 4 - 讲座视频 - C 语言编程
- 未学习 TI-RSLK 模块 4 - 讲座视频 - 设计
- 未学习 TI-RSLK 模块 4 - 讲座视频 - 调试
- 未学习 TI-RSLK 模块 4 - 实验视频 4.1 - 调试解决方案、可视化、变量、单步执行
- 未学习 TI-RSLK 模块 4 - 实验视频 4.2 - 调试解决方案、可视化、断点、单步执行
- 未学习 TI-RSLK 模块 5 - 讲座视频 - 电池和电压
- 未学习 TI-RSLK 模块 5 - 实验视频 5.1 - 测量电池的电压和电流
- 未学习 TI-RSLK 模块 5 - 实验视频 5.2 - 连接电机驱动器和配电板
- 未学习 TI-RSLK 模块 6 - 讲座视频 - GPIO MSP432
- 未学习 TI-RSLK 模块 6 - 讲座视频 - GPIO 编程
- 未学习 TI-RSLK 模块 6 - 实验视频 6.1 - 演示反射传感器的工作原理
- 未学习 TI-RSLK 模块 6 - 实验视频 6.2 - 演示实验解决方案 - 测试线路传感器
- 未学习 TI-RSLK 模块 7 - 讲座视频 - 有限状态机理论
- 未学习 TI-RSLK 模块 7 - 讲座视频 - 有限状态机线路跟踪器
- 未学习 TI-RSLK 模块 7 - 实验视频 7.1 - 运行 FSM 启动代码
- 未学习 TI-RSLK 模块 7 - 实验视频 7.2 - 运行解决方案代码 - 设计更好的 FSM
- 未学习 TI-RSLK 模块 8 - 讲座视频第一部分 - 开关
- 未学习 TI-RSLK 模块 8 - 讲座视频第二部分 - 连接输入和输出 - LED
- 未学习 TI-RSLK 模块 8 - 实验视频 8.1 - 连接开关和 LED 以及调试
- 未学习 TI-RSLK 模块 9 - 讲座视频 - SysTick 计时器 - 理论
- 未学习 TI-RSLK 模块 9 - 讲座视频 - SysTick 计时器 - PWM
- 未学习 TI-RSLK 模块 9 - 实验视频 9.1 - 演示通过调整占空比来运行检测信号
- 未学习 TI-RSLK 模块 9 - 实验视频 9.2 - 演示通过运行正弦波输出来调整功率
- 未学习 TI-RSLK 模块 10 - 讲座视频 - 调试实时系统 - 理论
- 未学习 TI-RSLK 模块 10 - 讲座视频 - 调试实时系统 - 中断
- 未学习 TI-RSLK 模块 10 - 讲座视频 - 调试实时系统 - SysTick 中断
- 未学习 TI-RSLK 模块 10 - 实验视频 - 演示运行线传感器和黑匣子记录器
- 未学习 TI-RSLK 模块 11 - 讲座视频 - 液晶显示屏
- 未学习 TI-RSLK 模块 11 - 实验视频 11.1 - 演示 LCD 界面
- 未学习 TI-RSLK 模块 12 - 讲座视频 - 直流电机 - 物理
- 未学习 TI-RSLK 模块 12 - 讲座视频 - 直流电机 - 接口
- 未学习 TI-RSLK 模块 12 - 实验视频 12.1 - 演示电机基础知识
- 未学习 TI-RSLK 模块 12 - 实验视频 12.2 - 演示机器人以预设模式移动
- 未学习 TI-RSLK 模块 13 - 讲座视频 - 周期性输入
- 未学习 TI-RSLK 模块 13 - 讲座视频 - 脉宽调制
- 未学习 TI-RSLK 模块 13 - 实验视频 13.1 - 通过计时器产生的 PWM 输出来旋转电机
- 未学习 TI-RSLK 模块 13 - 实验视频 13.2 - 测量中断延迟
- 未学习 TI-RSLK 模块 14 - 讲座视频 - 实时系统 - 理论
- 未学习 TI-RSLK 模块 14 - 讲座视频 - 实时系统 - 边沿触发中断
- 未学习 TI-RSLK 模块 14 - 实验视频 14.1 - 使用边沿触发中断为碰撞开关提供实时响应
- 未学习 TI-RSLK 模块 15 - 讲座视频 - 数据采集系统 - 理论
- 未学习 TI-RSLK 模块 15 - 讲座视频 - 数据采集系统 - 性能测量
- 未学习 TI-RSLK 模块 15 - 实验视频 15.1 - 使用 ADC 测试红外距离测量
- 未学习 TI-RSLK 模块 16 - 讲座视频 - 转速计 - 输入捕捉
- 未学习 TI-RSLK 模块 16 - 讲座视频 - 转速计 - 接口
- 未学习 TI-RSLK 模块 16 - 实验视频 16.1 - 测试转速计以测量速度
- 未学习 TI-RSLK 模块 17 - 讲座视频 - 控制系统
- 未学习 TI-RSLK 模块 17 - 实验视频 17.1 - 演示控制系统 - 积分控制
- 未学习 TI-RSLK 模块 17 - 实验视频 17.2 - 演示控制系统 - 比例控制
- 未学习 TI-RSLK 模块 18 - 讲座视频 - 串行通信 - UART
- 未学习 TI-RSLK 模块 18 - 讲座视频 - 串行通信 - FIFO
- 未学习 TI-RSLK 模块 18 - 实验视频 18.1 - 演示 UART
- 未学习 TI-RSLK 模块 18 - 实验视频 18.2 - 命令解释器
- 未学习 TI-RSLK 模块 19 - 讲座视频 - 低功耗蓝牙 - 无线
- 未学习 TI-RSLK 模块 19 - 讲座视频 - 低功耗蓝牙 - 理论
- 未学习 TI-RSLK 模块 19 - 讲座视频 - 低功耗蓝牙 - 简单网络处理器
- 未学习 TI-RSLK 模块 19 - 实验视频 19.1 - 演示 BLE
- 未学习 TI-RSLK 模块 19 - 实验视频 19.2 - 与机器人通信
视频简介
TI-RSLK 模块 10 - 讲座视频 - 调试实时系统 - 理论
在该实验中,你将学习如何利用SysTick产生周期性中断。