TI E2E™ 设计支持论坛将于 5 月 30 日至 6 月 1 日进行维护。如果您在此期间需要技术支持,请联系 TI 的客户支持中心寻求帮助。

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.

[参考译文] TMS320F280049C:错误#20:标识符"GpioCtrlRegs"未定义

Guru**** 2048860 points
Other Parts Discussed in Thread: C2000WARE, SYSCONFIG, LAUNCHXL-F280049C
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1362864/tms320f280049c-error-20-identifier-gpioctrlregs-is-undefined

器件型号:TMS320F280049C
主题中讨论的其他器件:C2000WARESysConfigLAUNCHXL-F280049C

您好!

我正在尝试通过修改 epwm_ex3_synchronization 来通过采样窗口(6样本)来限定 GPIO。 以下代码行已添加到 epwm_ex3_synchronization.c 文件以执行此操作:  

void configureGPIO (void){
EALLOW;

//将 GPIO56设置为输入
GpioCtrlRegs.GPBDIR.bit.GPIO56 = 0;

//清除 GPIO55
GpioDataRegs.GPBCLEAR.bit.GPIO56 = 1;

//将 QUALPRD3中 GPIO 引脚的限定周期设置为0xD0
GpioCtrlRegs.GPBCTRL.bit.QUALPRD3 = 0xD0;

//将 GPIO34的限定选择设置为2 (示例)
GpioCtrlRegs.GPBQSEL2.bit.GPIO56 = 2;

EDIS;
}

这导致了以下错误、我 ahve 尝试重新求解但没有结果:

>>编译失败
subdir_rules.mk:9:目标"epwm_ex3_synchronization.obj"的配方失败
"../ePWM_ex3_synchronization.c"、第231行:错误#20:未定义标识符"GpioCtrlRegs"
"../epwm_ex3_synchronization.c"、第234行:错误#20:未定义标识符"GpioDataRegs"
编译"../epwm_ex3_synchronization.c"时检测到2个错误。
gmake:***[epwm_ex3_synchronization.obj]错误1.

.

.

gmake:由于错误、未重制目标"all"。

我已附上为您需要的项目文件 help.e2e.ti.com/.../8015.epwm_5F00_ex3_5F00_synchronization.zip

此致、

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Olutayo:

    此工程是否是从 C2000Ware 的"driverlib"文件夹导入的? 仅基于 bitfield 的工程(位于器件支持文件夹)支持您添加的代码。

    您可以使用 GPIO_setQualificationMode 函数进行配置。

    我建议您使用 SysConfig 或参阅 driverlib 文件夹中的 GPIO 示例以配置 GPIO。

    如果您有其他问题、请告诉我。

    谢谢!

    Luke

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Luke:

    感谢您的意见。

    该工程是从"C:\ti\C2000Ware_4_02_00_00\driverlib\f28004x\examples\ePWM\ccs\EPWM_ex3_synchronization2"导入的。 请参阅我的以下评论以回应您的建议:

    1."SysConfig 选项":在此项目中、我将使用 SysConfig 选项。 遗憾的是、没有菜单可用于输入  GPIO 限定的六个样本的限定周期。 可用的选项如下所示:


    另一个问题是用示波器测量时 GPIO 56上的信号(电压)为零。 为了进行仔细检查、我尝试将 GPIO58设置为输出模式(高电平)、如下所示-电压也为零。 请注意、我的 PWM 在其他 GPIO (例如00 - 01)上运行良好。

    2."GPIO 示例选项":我从 C:\ti\C2000Ware_4_02_00_00\device_support\f28004x\examples\gpio 导入了 GPIO 示例。 它构建良好并得到改进(示例1)、但正如上面第1号问题一样、GPIO 8 - 11上没有输出信号(对于器件)。  

    3.我尝试在第1号中将 SysConfig 文件添加到第1号中的 GPIO 示例中 上面的2、但当从 RAM 构建时、已解决下面的错误:  

    gmake:***[build-902921329]错误1.
    gmake:由于错误、未重制目标"all"。

    它在闪存中成功构建、但 PWM 和 GPIO 没有输出。

    在等待您就上述问题提供有益建议的同时、假设上述问题已得到解决、您能否告诉我以下内容是否可执行:如果我将以下代码行 GpioCtrlRegs.GPBCTRL.bit.QUALPRD3 = 0xD0;添加到 gpio_ex1_setup.c 文件中、以使用 SysConfig 中设置的 GPIO 限定(我建议此选项、因为上述"QUALPRD3 "菜单中未提供)。  

    如果有帮助、我附加了这些项目。 请注意、我使用的是 LAUNCHXL-F280049C。

    抱歉-这周围有太多问题-期待您的友好建议。

    此致。

    e2e.ti.com/.../0728.epwm_5F00_ex3_5F00_synchronization.zip

    e2e.ti.com/.../gpio-_2D00_-Olutayo.zip

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Olutayo:

    1.什么意思是没有选项输入6个样本的 qual period ? 此选项位于下拉列表中:

    您看到的"58"适用于引脚编号。 点击 SysConfig 右上角的"Preferences and Actions"、可以修改器件引脚标签来显示 GPIO 编号、或修改 GPIO 编号+引脚编号。

    2.选择 GPIO 编号而不是管脚编号后、可以解决此问题

    3.您能显示整个错误消息吗? 您显示的错误消息似乎未显示问题的原因。

    SysConfig 通过调用 GPIO_setQualificationMode 函数来配置以下寄存器:

    谢谢!

    Luke

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Luke:

    感谢您的反馈。

    1.我可以在"Preferences and Actions"中看到引脚命名选项、非常有用(谢谢)。 然而、我注意到这种混淆、这就是我确保在(GPIO8 (引脚74)- GPIO11 (引脚52))上测试 GPIO 的原因。 我再次进行了双重测试、输入和输出配置上都没有输出。 请注意、使用 SysConfig 启动的 empw 在 0728.epwm_ex3_synchronization.zip 中工作 、但在 GPIO - Olutayo.zip 中不工作

    2.质量周期:在 TRM (第945页,请参见下图)中,质量周期可以设置在0-255之间。 在传统编码中、从0-255选择的数字的十六进制等效值将(例如)输入为  GpioCtrlRegs.GPBCTRL.bit.QUALPRD3 = 0xD0;SysConfig 中的限定类型(例如、三个或六个样本)菜单可用、但限定周期的菜单不可用(可能是我缺失或存在误解)。  

    为了更加明确地说明品质周期、例如在 Simulink 中的 C2000微控制器 Blockset 中、可以如下面筛选帖子中所示设置品质周期。 请不要说我故意给您添加了一个错误的值、以便您查看可接受的范围。

    3.我可以看到,你可能跳过我的一个问题 viz "..当我等待你对上述问题的好建议,假设上述问题已解决,你能告诉我,以下是否是可执行的:如果我添加以下代码行 GpioCtrlRegs.GPBCTRL.bit.QUALPRD3 = 0xD0; 添加了 gpio_ex1_setup.c 文件、以处理 SysConfig 中设置的 GPIO 限定条件(我建议使用此选项、因为上述第1部分已指出 SysConfig 中未提供限定周期菜单)"。

    4. 在 GPIO - Olutayo.zip 中从 RAM 生成的错误消息:完整的控制台消息如下所示。 感谢您期待进一步的帮助。


    ****为项目 GPIO_ex1_setup 构建配置 CPU1_RAM ****

    "C:\\ti\\ccs1210\\ccs\\utils\\bin\gmake"-k -j 8 all -O

    构建文件:"../epwm_ex3_synchronization.syscfg"
    调用:SysConfig
    "c:/ti/ccs1210/ccs/utils/sysconfig_1.14.0/sysconfig_cli.bat --脚本"C:/ti/C2000Ware_4_02_00_00/driverlib/f28004x/examples/epwm/CCS/gpio_ex1_setup/epwm_ex3_synchronization.syscfg -o "syscfg"-- compiler ccs

    用法:
    CLI [-o.

    ][-s ][-u ][-b. ][-d. ][-p. ][-r ][--treatWarningsAsErrors][--quiet -q]
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Olutayo:

    我需要一些时间来测试您提供的示例以确定问题、我将在本周稍后时间与您联系。

    谢谢!

    Luke

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Olutayo:

    我将休假到6月底、一旦我回来、我将继续处理此问题。

    谢谢!

    Luke

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Olutayo:

    您可以使用 GPIO_setQualificationPeriod 驱动程序库函数来执行此操作、而不是对 GpioCtrlRegs.GPBCTRL.bit.QUALPRD3 进行写入。

    您是否使用 C2000Ware 版本4.02?

    您能否在项目属性中共享您的.sysfg 文件和以下菜单的屏幕截图?

    示例:

    谢谢!

    Luke

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    似乎缺少用于设置采样之间鉴定周期的菜单选项。 我将提交一个请求单、以便将其添加到 SysConfig 中

    谢谢!

    Luke