这里是一段定义:(加过EALLOW和EDIS)
GpioCtrlRegs.GPCMUX1.bit.GPIO70 = 0; //定义限位1
GpioCtrlRegs.GPCDIR.bit.GPIO70=0; //定义限位1方式为输入
GpioCtrlRegs.GPCMUX1.bit.GPIO71 = 0; //定义限位2
GpioCtrlRegs.GPCDIR.bit.GPIO71=0; //定义限位2方式为输入
定义了两个数据寄存器
#define Fbit_EH GpioDataRegs.GPCDAT.bit.GPIO70 // 定义限位1的数据寄存器
#define Fbit_EV GpioDataRegs.GPCDAT.bit.GPIO71 // 定义限位2的数据寄存器、
读数据寄存器的值
FLAG_EH = Fbit_EH;
FLAG_EV = Fbit_EV;
数据寄存器整形变量定义
int FLAG_EH,FLAG_EV;
用仿真器去查看FLAG_EH,FLAG_EV的值的时候,怎么都不能改变
查看若干资料和例程都没有发现有问题,求教!
yan shu:
肯定我外边输入过来的信号是变化了的,这个也是用示波器检测着
这里是一段定义:(加过EALLOW和EDIS)
GpioCtrlRegs.GPCMUX1.bit.GPIO70 = 0; //定义限位1
GpioCtrlRegs.GPCDIR.bit.GPIO70=0; //定义限位1方式为输入
GpioCtrlRegs.GPCMUX1.bit.GPIO71 = 0; //定义限位2
GpioCtrlRegs.GPCDIR.bit.GPIO71=0; //定义限位2方式为输入
定义了两个数据寄存器
#define Fbit_EH GpioDataRegs.GPCDAT.bit.GPIO70 // 定义限位1的数据寄存器
#define Fbit_EV GpioDataRegs.GPCDAT.bit.GPIO71 // 定义限位2的数据寄存器、
读数据寄存器的值
FLAG_EH = Fbit_EH;
FLAG_EV = Fbit_EV;
数据寄存器整形变量定义
int FLAG_EH,FLAG_EV;
用仿真器去查看FLAG_EH,FLAG_EV的值的时候,怎么都不能改变
查看若干资料和例程都没有发现有问题,求教!
Jones Chen:
1. 外部变化的幅值 已经能够达到 所要求的电平了么? 即 低电平0.7V以下,高电平2.8V以上?
看代码好像没有问题。
2. 单步调试,代码可以执行到上面的语句么?程序运行正常么?
这里是一段定义:(加过EALLOW和EDIS)
GpioCtrlRegs.GPCMUX1.bit.GPIO70 = 0; //定义限位1
GpioCtrlRegs.GPCDIR.bit.GPIO70=0; //定义限位1方式为输入
GpioCtrlRegs.GPCMUX1.bit.GPIO71 = 0; //定义限位2
GpioCtrlRegs.GPCDIR.bit.GPIO71=0; //定义限位2方式为输入
定义了两个数据寄存器
#define Fbit_EH GpioDataRegs.GPCDAT.bit.GPIO70 // 定义限位1的数据寄存器
#define Fbit_EV GpioDataRegs.GPCDAT.bit.GPIO71 // 定义限位2的数据寄存器、
读数据寄存器的值
FLAG_EH = Fbit_EH;
FLAG_EV = Fbit_EV;
数据寄存器整形变量定义
int FLAG_EH,FLAG_EV;
用仿真器去查看FLAG_EH,FLAG_EV的值的时候,怎么都不能改变
查看若干资料和例程都没有发现有问题,求教!
yan shu:
回复 Jones Chen:
电平都是低,然后用在该处设置断点,也可以执行到此处。但就是不改变值。(实际值是0,0,但CCS中看到的结果是1,0)
唯一就是我的读IO值是写在他Timer0中断中的,这会有影响么?
这里是一段定义:(加过EALLOW和EDIS)
GpioCtrlRegs.GPCMUX1.bit.GPIO70 = 0; //定义限位1
GpioCtrlRegs.GPCDIR.bit.GPIO70=0; //定义限位1方式为输入
GpioCtrlRegs.GPCMUX1.bit.GPIO71 = 0; //定义限位2
GpioCtrlRegs.GPCDIR.bit.GPIO71=0; //定义限位2方式为输入
定义了两个数据寄存器
#define Fbit_EH GpioDataRegs.GPCDAT.bit.GPIO70 // 定义限位1的数据寄存器
#define Fbit_EV GpioDataRegs.GPCDAT.bit.GPIO71 // 定义限位2的数据寄存器、
读数据寄存器的值
FLAG_EH = Fbit_EH;
FLAG_EV = Fbit_EV;
数据寄存器整形变量定义
int FLAG_EH,FLAG_EV;
用仿真器去查看FLAG_EH,FLAG_EV的值的时候,怎么都不能改变
查看若干资料和例程都没有发现有问题,求教!
Jones Chen:
回复 yan shu:
如果在Timer0中断中,读此I/O值的时刻,I/O值确实已经变成低电平的话(确实低于0.7V),应该就没有问题,前提是程序能执行到此中断。
另外,能否看看此句的汇编代码是什么?
您也可以,先将此读状态语句,放到主函数中,再试试。