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.
在配置GPIO过程中,将GPIO0,1均配置为输入,且采样周期为系统时钟,采样次数与系统时钟同步。然后用GPADAT寄存器读取,程序如下:
if (GpioDataRegs.GPADAT.bit.GPIO0==0)
{a=a+1;}
if (GpioDataRegs.GPADAT.bit.GPIO1==0)
{b=b+1;}
用ccs的clock功能发现程序从if (GpioDataRegs.GPADAT.bit.GPIO0==0)到if (GpioDataRegs.GPADAT.bit.GPIO1==0)大概10ns
然后将采样周期改为510个系统时钟,采样次数为6个采样周期,执行上述程序,同样发现程序从if (GpioDataRegs.GPADAT.bit.GPIO0==0)到if (GpioDataRegs.GPADAT.bit.GPIO1==0)大概10ns。
即配置输入限定不影响GPADAT读取时间?按照我的理解,GPADAT读取是对GPIO管脚进行采样,检测该管脚电平高低,采样周期越长,读取的时间也应该越长,不知道是否理解有误?
谢谢回答,不过代码if (GpioDataRegs.GPADAT.bit.GPIO0==0)执行后,参数a发生变化,说明条件成立,也就是说GPIO确实由高电平变成了低电平,而且通过输入限定,被GPADAT读取。程序从if (GpioDataRegs.GPADAT.bit.GPIO0==0)到if (GpioDataRegs.GPADAT.bit.GPIO1==0)大概10ns,如果认为是程序执行的时间,而且参数发生变化,不是代表这10ns中,IO口电平由高到底被检测通过输入限定了吗,但是通过输入限定的时间可以配置为500个系统时钟,大概是3us。怎么理解这10ns和3us,感觉有冲突
只要GPIO上的输入信号满足要求,便会通过阴影部分,GPADAT的值就会发生相应的变化。这些动作会发生在任何时刻。
10ns是这几行代码的执行时间,完全是两码事。