This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
工具/软件:Code Composer Studio
大家好、我在 GUI Composer 中创建了一个按钮小工具、并将可绑定触发器链接到我的 CCS 代码中的变量。 实质上、我希望微控制器在按下按钮小工具一次时计算某些值并在 GUI 中显示结果。 但是、只要我按下小部件两次、而不是一次、微控制器就会执行上述操作。
那么、我的问题是、每次按下小工具时、可绑定的触发器是否会递增1? 此外、它的初始值是否由链接到可绑定触发器的变量确定?
我很困惑。 我似乎找不到有关 GUI Composer 的大量文档。 我可以找到的最好的链接是: https://processors.wiki.ti.com/index.php/GUI_Composer_Widgets_And_Properties
感谢你能抽出时间。
请查看此链接下的 GUI Composer 文档资源。 这与基于云的 GC 设计器更相关。
http://dev.ti.com/tirex/explore/node?node=AJvSrvufhzxVTyD9bKHSpw__FUz-xrs__LATEST
这个类似的论坛主题也可能会有所帮助: https://e2e.ti.com/support/tools/ccs/f/81/t/778758
库中还有几个示例 GUI、可用作 您的良好参考和起点、以便在以下基础上进行构建:
https://dev.ti.com/gallery/
希望这对您有所帮助。
我查看了您发送给我的论坛、但我不认为我的问题需要 JavaScript。 我遵循了关于按钮小工具的可绑定触发器属性的建议(即:"当 BindableTrigger 更改为>0"时触发操作")。 但是、问题是我的代码的一个部分仅在每次按下其他按钮时执行。 除 for 循环外、其他所有内容都将执行。 我甚至试图把它输入一个 if else 语句中,但这似乎不起作用。
我是否缺少有关 GUI Composer 的真正明显的东西? 按下"run 相关性"后、"samplesNumber"和"quizingFreq"是否不会立即更新?
附件是我的代码的一部分。 我通过 GUI 更改的变量是"samplesNumber"和"analysingFreq"。 我希望在按下"run 相关性"时运行代码
if (buttonCount > 0){ runXCorr = true; createAnalyzingWave (averingFreq、averingWave); uint8_t i; uint16_t SUM = 0; if (true){ for (i = 1;i <= samplesNumber;i++){ createDataWave (dataWave); sum = crossCorrelationV4 (dataWave、analysingWave)+ sum; } } averageValue =总和/ samplesNumber; oldButton = newButton; buttonCount = 0; COUNTER++; runXCorr = false; i = 1; }
用户好、
按下按钮后、bindableTrigger 将自动递增一次。 samplesNumber 和 quizingFreq 在哪里定义?
您使用的是哪种运输方式/型号?
此致、
Patrick
我将 samplesNumber 和 alqingFreq 定义为全局变量、因为我认为它们需要是全局变量才能与 GUI 进行通信。 我在4月28日发布的代码位于 while (1){}循环内、因此它会连续运行。
我使用 XDS 作为传输方法。
感谢你能抽出时间。
XDS 传输使用(轮询)程序模型。 当 buttonTrigger 改变时、该值将发送到器件。 所有绑定都将在下一轮询周期更新。
我想确认我的理解是否正确:
让我们假设我输入一个频率和一些样本。 然后、当我按下运行相关按钮时、GUI 会发送该特定轮询周期的频率和样本数。 但是、如果我在下一轮询周期后更新2个值、那么当我按下"运行相关性"时、不会发生任何情况。
这是正确的思考方式吗?
按下按钮时、GUI 不会向器件发送频率和数字。 按下按钮将更改 BindableTrigger。 如果将按钮的 BindableTrigger 绑定到设备变量。 让我们设置 myBindCounter、而不是 myBindCounter、将递增1。
如果您将频率和样本文本框的"value"按钮限定为器件的变量、则无论何时在文本框中输入值、GC 都会立即将该值发送到您的器件。
我在轮询时所指的是、在下一轮询周期之前、您限定到器件的其他值将不会更新。 假设您通过在文本框中输入值来更改频率、如果器件中的值与 GC 已知的值不同、则会更新样本。 如果检测到更改,则将以两种方式(双向数据库绑定)自动更新受限值。
代码和屏幕截图中找到。 我看不出您是如何将样本和频率限定为全局变量的。 我猜在看不到您的应用程序的情况下、您很可能没有将这两个文本框小工具的值属性绑定到您的设备的全局变量、也没有调用 gc.DataBind 注册表.getBinding ('my_model.mydevice_variable').getValue ()获取样本值和频率值、然后再在 JavaScript 代码中使用它。
感谢你的帮助。
我将您的代码误读为 JavaScript 代码。 在这种情况下,您无需调用 gc.DataBind.registry.getBinding(),此调用将用于 JavaScript。
您是否有办法在固件代码中打印样片编号? 因此、当您使用 GC 应用程序更改样本编号文本框时、您可以验证该值是否已更新。 然后按下按钮将递增 buttonCount 并使 buttonCount 条件的 if 语句为 true。
我假设您有某种类型的计时器定期循环您的固件代码中的 IF (buttonCount > 0)条件。
Patrick
感谢您的帮助;再次感谢您的参与。
您的计时器评论实际上给了我一个想法。 我在 while 循环中施加了一个轻微的延迟、它似乎可以解决问题。