Hi Lingling,
好的,我先测试一下,又问题再回复。谢谢。
Best Regards
Simon Chen WKsh
Weikeng International Co.,Ltd.
Tel:+86 15951972552
Hi Lingling,
我测试了一下这个工程,在4014上没问题。但是当我尝试将工程迁移到Cy8C4146AZI-S433上时,出现了问题。代码如下:
int main()
{
/* Enable global interrupt */
CyGlobalIntEnable;
port2_hsiom = CY_GET_REG32(CYREG_HSIOM_PORT_SEL2);
port3_hsiom = CY_GET_REG32(CYREG_HSIOM_PORT_SEL3);
/* Set up and enable a TCPWM interrupt handler. */
Isr_Timer_StartEx(InterruptHandler);
/* Start the TCPWM Component */
PWM_Start();
CyDelay(2000);
for(;;)
{
if(flag1==1)
{
CY_SET_REG32(CYREG_HSIOM_PORT_SEL2, port2_hsiom&(~Pin_1__0__HSIOM_MASK));
Pin_1_Write(1);
CY_SET_REG32(CYREG_HSIOM_PORT_SEL3, (port3_hsiom&(~Pin_2__0__HSIOM_MASK))|0x08000000);
temp = CY_GET_REG32(CYREG_HSIOM_PORT_SEL3);
}
else if(flag2==1)
{
CY_SET_REG32(CYREG_HSIOM_PORT_SEL3, port3_hsiom );
CY_SET_REG32(CYREG_HSIOM_PORT_SEL2, port2_hsiom );
}
}
}
工程中,将Pin_1设置为2.6脚,Pin_2设置为3.6脚。
上电调试看到port2_hsiom 为0x08000000;port3_hsiom为0x0000EE00;所以我将CYREG_HSIOM_PORT_SEL3根据port_hsiom设置为0x0800EE00,但是测试发现引脚不能正常输出PWM。
请问,我应如何实现将P2.6脚切换到P3.6脚上输出PWM?我使用的是CY8CKIT-041-41xx 4100s pioneer kit。
Best Regards
Simon Chen WKsh
Weikeng International Co.,Ltd.
Tel:+86 15951972552
Simon,
我测试了确实和你反应的现象是一样的,等我调试一下,之后给你跟新这个project。
Hi Simon,
问题的根本原因是:
管脚的切换需要是同一个IP,TCPWM[0] TCPWM[1],TCPWM[2] TCPWM[3],TCPWM[4]
P2.6 是TCPWM[1],P3.6是TCPWM[3], 所以不能切换。
Requirement:
先使用4个PWM component,连接P1.0 P1.2 P2.0 P2.4,完成功能后,再将4个PWM component连接到P2.6 P3.0 P3.4 P3.6上,实现下一个功能
Solution:
切换前 切换后
P1.0 -----> P3.4
P1.2------>P3.6
P2.4------->3.0
P2.0
P2.6
如果你把P2.6改成2.1的话,4个TCPWM就可以切换过去,如果不能改的话,就需要用5个TCPWM。