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

28335 代码执行时出现问题

代码很简单,.就是写下边几个IO口输出为0,  但是实际运行时,如果不加那些 NOP 延时的话.输出口会出现两个不能写为0的情况. 单步调试并没有这样的问题.

请问这是什么原因. 我只是想知道为什么会这样.   虽然用清除寄存器或别的方法可以避免这个问题.

GpioDataRegs.GPBDAT.bit.GPIO58 = 0;
NOP; NOP; NOP; NOP; NOP; NOP;

GpioDataRegs.GPBDAT.bit.GPIO59 = 0;
NOP; NOP; NOP; NOP; NOP; NOP;

GpioDataRegs.GPBDAT.bit.GPIO62 = 0;
NOP; NOP; NOP; NOP; NOP; NOP;

GpioDataRegs.GPBDAT.bit.GPIO63 = 0;
NOP; NOP; NOP; NOP; NOP; NOP;

Jay:

用GPxDAT寄存器操作GPIO时,由于Buffer存在,GPIO引脚上电平变化会有延时。

如果需要即时操作GPIO电平,请用GPxSET和GPxCLR操作。

代码很简单,.就是写下边几个IO口输出为0,  但是实际运行时,如果不加那些 NOP 延时的话.输出口会出现两个不能写为0的情况. 单步调试并没有这样的问题.

请问这是什么原因. 我只是想知道为什么会这样.   虽然用清除寄存器或别的方法可以避免这个问题.

GpioDataRegs.GPBDAT.bit.GPIO58 = 0;
NOP; NOP; NOP; NOP; NOP; NOP;

GpioDataRegs.GPBDAT.bit.GPIO59 = 0;
NOP; NOP; NOP; NOP; NOP; NOP;

GpioDataRegs.GPBDAT.bit.GPIO62 = 0;
NOP; NOP; NOP; NOP; NOP; NOP;

GpioDataRegs.GPBDAT.bit.GPIO63 = 0;
NOP; NOP; NOP; NOP; NOP; NOP;

Eric Ma:

xiaonan,

如Jay所言。

详情可看下面网址

http://processors.wiki.ti.com/index.php/General_Purpose_IO_(GPIO)_FAQ_for_C2000#Q:_Back-to-back_DAT_register_writes_do_not_work_as_expected

Eric

赞(0)
未经允许不得转载:TI中文支持网 » 28335 代码执行时出现问题
分享到: 更多 (0)