CCS在线调试时实时修改变量值

  在使用CCS调试dsp芯片时,发现CCS软件有一个非常好的功能,在仿真调试的时候可以实时修改代码中变量的值。这个功能在调试switch语句的时候非常好用,比如想要执行哪个case语句,直接在仿真界面里面修改switch语句入口参数就行。
  话不多说,直接上代码演示。

#include "DSP2833x_Device.h"     // DSP2833x Headerfile Include File
#include "DSP2833x_Examples.h"   // DSP2833x Examples Include File#include "leds.h"int i=0,j=0;void main()
{InitSysCtrl();InitPieCtrl();IER = 0x0000;IFR = 0x0000;InitPieVectTable();LED_Init();while(1){i=j;}
}

  先用一个简单的功能来演示,主代码就执行一条语句 将j的值赋给i,按照正常逻辑来讲,这个i的值永远都是0。但是在这里就是见证奇迹的时刻了。直接仿真运行代码。

  进入仿真界面后再i变量上单击鼠标右键,选择添加到观察窗口。同样的方法也将j的值添加到观察从窗口。
在这里插入图片描述
然后再右边窗口中选中实时刷新按钮。
在这里插入图片描述
接着在变量观察窗口i上面鼠标右键,选择Graph
在这里插入图片描述
变量i的值,就会以曲线的形式在下面绘制出来。
在这里插入图片描述
在新打开的图像绘制窗口上也要选中实时刷新按钮。
在这里插入图片描述

全速运行程序
在这里插入图片描述
这时候i的值显示为一条直线,下面直接在变量观察窗口修改j的值。
在这里插入图片描述

  鼠标单击value框,直接将值修改为10,然后按回车键,此时就会发现i的值也变成了10。接着继续修改j的值,从10依次减小到1。这时候底下的曲线也会依次绘制出i值变化的曲线。
在这里插入图片描述

  这样在不用修改程序的情况下,代码持续运行的过程中可以随时修改变量值,给调试程序带来了极大地便利性。
随便修改j的值看看效果。

在这里插入图片描述

接下来使用switch语句来控制几路LED灯看看效果。

#include "DSP2833x_Device.h"     // DSP2833x Headerfile Include File
#include "DSP2833x_Examples.h"   // DSP2833x Examples Include File#include "leds.h"int value;void main()
{InitSysCtrl();InitPieCtrl();IER = 0x0000;IFR = 0x0000;InitPieVectTable();LED_Init();while(1){switch(value){case 10:  LED1_OFF; break;case 11:  LED1_ON; break;case 20:  LED2_OFF; break;case 21:  LED2_ON; break;case 30:  LED3_OFF; break;case 31:  LED3_ON; break;case 40:  LED4_OFF; break;case 41:  LED4_ON; break;case 50:  LED5_OFF; break;case 51:  LED5_ON; break;default:break;}}
}

通过switch语句中的value值控制LED的亮灭,其中LED的端口控制使用宏定义的方式。

#define LED1_OFF		(GpioDataRegs.GPCSET.bit.GPIO68=1)
#define LED1_ON			(GpioDataRegs.GPCCLEAR.bit.GPIO68=1)
#define LED1_TOGGLE		(GpioDataRegs.GPCTOGGLE.bit.GPIO68=1)#define LED2_OFF		(GpioDataRegs.GPCSET.bit.GPIO67=1)
#define LED2_ON			(GpioDataRegs.GPCCLEAR.bit.GPIO67=1)
#define LED2_TOGGLE		(GpioDataRegs.GPCTOGGLE.bit.GPIO67=1)#define LED3_OFF		(GpioDataRegs.GPCSET.bit.GPIO66=1)
#define LED3_ON			(GpioDataRegs.GPCCLEAR.bit.GPIO66=1)
#define LED3_TOGGLE		(GpioDataRegs.GPCTOGGLE.bit.GPIO66=1)#define LED4_OFF		(GpioDataRegs.GPCSET.bit.GPIO65=1)
#define LED4_ON			(GpioDataRegs.GPCCLEAR.bit.GPIO65=1)
#define LED4_TOGGLE		(GpioDataRegs.GPCTOGGLE.bit.GPIO65=1)#define LED5_OFF		(GpioDataRegs.GPCSET.bit.GPIO64=1)
#define LED5_ON			(GpioDataRegs.GPCCLEAR.bit.GPIO64=1)
#define LED5_TOGGLE		(GpioDataRegs.GPCTOGGLE.bit.GPIO64=1)

  开始调试程序,按照上面的方法将变量value的值添加到变量观测窗口,同时也将value的值添加到图形显示中。
在这里插入图片描述
为了更清晰的看到LED端口的变化,将GPIO数据寄存器也添加到变量观察窗口中。

在这里插入图片描述

  将数据寄存器展开,LED主要在GPIOC口的64–68,默认情况下端口值都为1,将变量value的值直接修改为11,点亮LED1。

在这里插入图片描述

当value的值修改为11时,可以看到GPIO68的值由1变为了0。

依次点亮所有的LED,此时在电路板上也可以看到LED依次点亮,然后依次熄灭。

在这里插入图片描述

  通过这种直接在观察窗口修改变量值的方法,测试程序的时候就方便多了。不用修改一次变量值就要调试一次。

请添加图片描述

  当然不仅switch语句可以使用,其他情况下也能使用。比如调试通信协议的时。当接收到不同的指令就需要执行不同的代码,通常情况下需要外部给单片机发送命令,单片机接收到命令后再执行相关函数。这样调试起来比较浪费时间,而且比较麻烦。通过使用这种方法,直接在观察窗口中修改指令,就可以执行对应的函数。

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

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

相关文章

全球历年GDP增长率_探数API数据统计

以下是数据的详细说明: 全球GDP增长最快的年份是1964年,全球GDP增速达到6.65%。2021年的GDP增长率也相当高,主要受2020年衰退后的恢复性增长推动。 全球GDP增长最慢的年份包括:1974年、1975年(第一次石油危机引发&…

【亲测】国内如何支付Overleaf?Overleaf如何升级标准版专业版?Overleaf升级保姆级教程

0. 【必看】开通步骤简述 升级Overleaf的步骤简要总结如下: 使用虚拟信用卡平台WildCard开通虚拟信用卡(从链接进入可以优惠15元人民币哦)。开卡后,进入WIldcard找到卡片信息进入Overleaf绑定卡片并支付,完成支付后就…

【arduino】控制N位数码管

以下以四位共阳极数码管为例; 本文所有说明均以注释的方式进行。 使用方法: #include "DigitalTube.h" //每位共阳极对应的引脚int digital[4] {8, 11, 12, 7};//参数分别为a f b g e c d dp digital(共阳极引脚数组) length(digital长度)D…

Golang教程一(环境搭建,变量,数据类型,数组切片map)

目录 一、环境搭建 1.windows安装 2.linux安装 3.开发工具 二、变量定义与输入输出 1.变量定义 2.全局变量与局部变量 3.定义多个变量 4.常量定义 5.命名规范 6.输出 7.输入 三、基本数据类型 1.整数型 2.浮点型 3.字符型 4.字符串类型 转义字符 多行字符…

数字人生成 Wav2Lip面部动画 神经辐射场 NeRF场景结构 3DMM人脸模型 深度学习 生成对抗网 GAN 语音交互、虚拟现实(VR)和增强现实(AR)

数字人生成 喝奶茶的甄嬛 数字人,从广义上来说,是数字技术在人体解剖、物理、生理及智能各个层次、各个阶段的渗透。它是信息科学与生命科学融合的产物,利用信息科学的方法对人体在不同水平的形态和功能进行虚拟仿真。数字人可以是虚拟人物,也可以是真实人物的数字再现,它…

Typora导入功能使用详细

一、 pandoc安装(导入需要的插件) 1. 首次安装完typora,是没法导入的,需要安装pandoc,首先我们先在文件夹里面新建一个Typora文件,然后再找到导入功能点击就可以弹出安装的地址了 2. 点击文件可以找到导入…

常用算法——双指针算法

双指针算法介绍: 所谓的双指针算法看似十分的神秘,但是实质上就是两个标志查找元素的变量。双指针既可以是我们平常最常说的指针(类似int *类型的数据),也可以是数组的下标。因为对于一个数组数据的查找,通…

halcon-轴断面检测定位

前言 通常情况下轴检测时,通常会检测轴的各个阶段的长度。但是由于各种原因,在轴断面的区域现实不明显,无法正确提取,这时候需要根据轴断面的突出部分进行检测,但是由于部分轴的粗轴和细轴区域的宽度差距相当接近&…

安卓数据怎么恢复?十大顶级Android数据恢复软件

Android 是移动设备的顶级操作系统。由于许多不确定的情况,会发生数据丢失。数据恢复软件有助于挽救丢失的数据。在这里,让我们讨论一下 前 10 名最佳 android 数据恢复软件。 十大顶级Android数据恢复软件 1.奇客数据恢复 奇客数据恢复是由奇客软件软件…

Blender4.0 下载地址及安装教程

Blender是一款开源的3D计算机图形软件,广泛应用于动画制作、游戏开发、建模、渲染等领域。它提供了一套强大的工具和功能,让用户能够进行三维建模、动画制作和视觉效果的创作。 Blender支持多种文件格式的导入和导出,使用户能够与其他软件进…

浮点数的表示

王道考研ppt总结: 二、个人理解 浮点数解决的是定点数的位数局限,导致表示范围有限的问题 阶码:由阶符和数值部分组成,阶符为,小数点向左移动,否则向右移动;数值部分,是底数的几次幂…

【CSS】一篇文章讲清楚screen、window和html元素的位置:top、left、width、height

一个Web网页从内到外的顺序是: 元素div,ul,table... → 页面body → 浏览器window → 屏幕screen 分类详情屏幕screen srceen.width - 屏幕的宽度 screen.height - 屏幕的高度(屏幕未缩放时,表示屏幕分辨率) screen.availLeft …