TI中文支持网
TI专业的中文技术问题搜集分享网站

TDC1000-C2000EVM 相关GPIO问题

板子:
TDC1000-C2000EVM


环境:
CCS8.1.0, XDS200


代码如下,目的是周期性反转两个IO口(GPIO22 & GPIO20)的电平

for(;;)
{
GpioDataRegs.GPASET.bit.GPIO22 = 1; // SET TDC1000 trigger
GpioDataRegs.GPACLEAR.bit.GPIO22 = 1; // Clear TDC1000 trigger
DELAY_US(0.1);

GpioDataRegs.GPACLEAR.bit.GPIO20 = 1; // Clear ENABLE
GpioDataRegs.GPASET.bit.GPIO20 = 1; // SET ENABLE
DELAY_US(0.3);

//——————————–//
GpioDataRegs.GPASET.bit.GPIO22 = 1; // SET TDC1000 trigger
GpioDataRegs.GPACLEAR.bit.GPIO22 = 1; // Clear TDC1000 trigger
GpioDataRegs.GPASET.bit.GPIO22 = 1; // SET TDC1000 trigger
GpioDataRegs.GPACLEAR.bit.GPIO22 = 1; // Clear TDC1000 trigger

GpioDataRegs.GPACLEAR.bit.GPIO20 = 1; // Clear ENABLE
GpioDataRegs.GPASET.bit.GPIO20 = 1; // SET ENABLE
DELAY_US(0.3);

//——————————–//
GpioDataRegs.GPASET.bit.GPIO22 = 1; // SET TDC1000 trigger
GpioDataRegs.GPACLEAR.bit.GPIO22 = 1; // Clear TDC1000 trigger
GpioDataRegs.GPASET.bit.GPIO22 = 1; // SET TDC1000 trigger
GpioDataRegs.GPACLEAR.bit.GPIO22 = 1; // Clear TDC1000 trigger

GpioDataRegs.GPACLEAR.bit.GPIO20 = 1; // Clear ENABLE
GpioDataRegs.GPASET.bit.GPIO20 = 1; // SET ENABLE
DELAY_US(0.3);

}

问题:

尝试更改上述代码第五行加黑代码(   DELAY_US(0.1);  )时出现下述问题

(下图中黄色为GPIO22输出,蓝色为GPIO20输出 )

1)去掉该行代码时,输出结果如下图:

GPIO22变换后,GPIO20立即变化,符合代码。

但是代码中GPIO20与GPIO22的DELAY_US(0.3)明显不对,图中的延时已经大约为9us了。

2)DELAY_US(0.1)时

此时GPIO20(蓝色曲线)反转存在明显延迟,但后两个GPIO22反转正常,无延时。

3)DELAY_US(1)

此时,2)中的GPIO20反转间的延时消失,但是DELAY_US(1)对应的延时时间为9us左右。

4)DELAY_US(10)

DELAY_US(10)对应的时间进阶20us。

 

疑惑:

1)DELAY_US()的延时时间与代码不符合

2)GPIO20为何会出现延迟反转的现象(第二张图)

谢谢

mangui zhang:你看看delay_us的传递函数数据类型

板子:
TDC1000-C2000EVM


环境:
CCS8.1.0, XDS200


代码如下,目的是周期性反转两个IO口(GPIO22 & GPIO20)的电平

for(;;)
{
GpioDataRegs.GPASET.bit.GPIO22 = 1; // SET TDC1000 trigger
GpioDataRegs.GPACLEAR.bit.GPIO22 = 1; // Clear TDC1000 trigger
DELAY_US(0.1);

GpioDataRegs.GPACLEAR.bit.GPIO20 = 1; // Clear ENABLE
GpioDataRegs.GPASET.bit.GPIO20 = 1; // SET ENABLE
DELAY_US(0.3);

//——————————–//
GpioDataRegs.GPASET.bit.GPIO22 = 1; // SET TDC1000 trigger
GpioDataRegs.GPACLEAR.bit.GPIO22 = 1; // Clear TDC1000 trigger
GpioDataRegs.GPASET.bit.GPIO22 = 1; // SET TDC1000 trigger
GpioDataRegs.GPACLEAR.bit.GPIO22 = 1; // Clear TDC1000 trigger

GpioDataRegs.GPACLEAR.bit.GPIO20 = 1; // Clear ENABLE
GpioDataRegs.GPASET.bit.GPIO20 = 1; // SET ENABLE
DELAY_US(0.3);

//——————————–//
GpioDataRegs.GPASET.bit.GPIO22 = 1; // SET TDC1000 trigger
GpioDataRegs.GPACLEAR.bit.GPIO22 = 1; // Clear TDC1000 trigger
GpioDataRegs.GPASET.bit.GPIO22 = 1; // SET TDC1000 trigger
GpioDataRegs.GPACLEAR.bit.GPIO22 = 1; // Clear TDC1000 trigger

GpioDataRegs.GPACLEAR.bit.GPIO20 = 1; // Clear ENABLE
GpioDataRegs.GPASET.bit.GPIO20 = 1; // SET ENABLE
DELAY_US(0.3);

}

问题:

尝试更改上述代码第五行加黑代码(   DELAY_US(0.1);  )时出现下述问题

(下图中黄色为GPIO22输出,蓝色为GPIO20输出 )

1)去掉该行代码时,输出结果如下图:

GPIO22变换后,GPIO20立即变化,符合代码。

但是代码中GPIO20与GPIO22的DELAY_US(0.3)明显不对,图中的延时已经大约为9us了。

2)DELAY_US(0.1)时

此时GPIO20(蓝色曲线)反转存在明显延迟,但后两个GPIO22反转正常,无延时。

3)DELAY_US(1)

此时,2)中的GPIO20反转间的延时消失,但是DELAY_US(1)对应的延时时间为9us左右。

4)DELAY_US(10)

DELAY_US(10)对应的时间进阶20us。

 

疑惑:

1)DELAY_US()的延时时间与代码不符合

2)GPIO20为何会出现延迟反转的现象(第二张图)

谢谢

Susan Yang:请TIer 去 https://e2e.ti.com/发帖询问。

赞(0)
未经允许不得转载:TI中文支持网 » TDC1000-C2000EVM 相关GPIO问题
分享到: 更多 (0)