自己尝试将官方Back2bak.c添加进insta-spinfoc例程,按手册重新配置了一遍,debug一直卡在initECana()中下面这块:
// Wait until the CPU no longer has permission to change the configuration registers
do
{
ECanaShadow.CANES.all = ECanaRegs.CANES.all;
} while(ECanaShadow.CANES.bit.CCE != 0 ); // Wait for CCE bit to be cleared..
发现ECanaShadow.CANES这个应该是变化了,但是寄存器CANES没变!
是否因为 can.h 只是定义了ecan的各个寄存器变量,但是还需要地址映射才能起作用?
望解答,谢谢
mangui zhang:
最好看看controlSUITE里面等有没有例程
自己尝试将官方Back2bak.c添加进insta-spinfoc例程,按手册重新配置了一遍,debug一直卡在initECana()中下面这块:
// Wait until the CPU no longer has permission to change the configuration registers
do
{
ECanaShadow.CANES.all = ECanaRegs.CANES.all;
} while(ECanaShadow.CANES.bit.CCE != 0 ); // Wait for CCE bit to be cleared..
发现ECanaShadow.CANES这个应该是变化了,但是寄存器CANES没变!
是否因为 can.h 只是定义了ecan的各个寄存器变量,但是还需要地址映射才能起作用?
望解答,谢谢
deping long:
我最近也在做相同的事情,与您一样试过一遍,也发现can的寄存器里的值并没有被修改。
尝试了另一种方式,仿照controlsuite里面编程的风格,利用了里面的cmd对can的寄存器进行地址映射,发现修改寄存器值仍然没有效果。
请问您找到问题的解决方法了吗?