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.
您好!
我正在尝试通过修改 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.
您好、Olutayo:
我需要一些时间来测试您提供的示例以确定问题、我将在本周稍后时间与您联系。
谢谢!
Luke
您好、Olutayo:
我将休假到6月底、一旦我回来、我将继续处理此问题。
谢谢!
Luke
您好、Olutayo:
您可以使用 GPIO_setQualificationPeriod 驱动程序库函数来执行此操作、而不是对 GpioCtrlRegs.GPBCTRL.bit.QUALPRD3 进行写入。
您是否使用 C2000Ware 版本4.02?
您能否在项目属性中共享您的.sysfg 文件和以下菜单的屏幕截图?
示例:
谢谢!
Luke
似乎缺少用于设置采样之间鉴定周期的菜单选项。 我将提交一个请求单、以便将其添加到 SysConfig 中
谢谢!
Luke