具体问题是这样的:我将在AD中断中用查询的方式用ECAN发送数据,在线仿真的时候可以很好的运行,但是烧写到DSP中上电运行后,程序就一直等待在
do
{
ECanaShadow.CANTA.all = ECanaRegs.CANTA.all;
} while(ECanaShadow.CANTA.bit.TA25 == 0 );
处,其中AD中断可以正常的进入。
比较奇怪的是,我将ECAN放在在for循环中烧写到Flash中,Ecan就可以正常的发送数据。
我自己考虑的时候,认为AD中断时间有可能不够,但是延长后仍然不行。论坛上有人提到头文件版本的问题,我不知道有没有人提到相同的问题。
Ninghao Li:
我也出现了这个问题,你怎么解决的?
具体问题是这样的:我将在AD中断中用查询的方式用ECAN发送数据,在线仿真的时候可以很好的运行,但是烧写到DSP中上电运行后,程序就一直等待在
do
{
ECanaShadow.CANTA.all = ECanaRegs.CANTA.all;
} while(ECanaShadow.CANTA.bit.TA25 == 0 );
处,其中AD中断可以正常的进入。
比较奇怪的是,我将ECAN放在在for循环中烧写到Flash中,Ecan就可以正常的发送数据。
我自己考虑的时候,认为AD中断时间有可能不够,但是延长后仍然不行。论坛上有人提到头文件版本的问题,我不知道有没有人提到相同的问题。
mangui zhang:
RAM中运行是全速运行吗 还是单步调试的
如果全速的话 应该比烧写到flash中效率高
个人觉得还是时间差的问题
可能不是很好的抓到ECanaShadow.CANTA.bit.TA25 == 0
具体问题是这样的:我将在AD中断中用查询的方式用ECAN发送数据,在线仿真的时候可以很好的运行,但是烧写到DSP中上电运行后,程序就一直等待在
do
{
ECanaShadow.CANTA.all = ECanaRegs.CANTA.all;
} while(ECanaShadow.CANTA.bit.TA25 == 0 );
处,其中AD中断可以正常的进入。
比较奇怪的是,我将ECAN放在在for循环中烧写到Flash中,Ecan就可以正常的发送数据。
我自己考虑的时候,认为AD中断时间有可能不够,但是延长后仍然不行。论坛上有人提到头文件版本的问题,我不知道有没有人提到相同的问题。
Ninghao Li:
回复 mangui zhang:
跟时间差没关系,在对发送请求寄存器操作之后,DSP的CANTX引脚根本没有输出。昨天在TI的官网发现了关于2802的勘误表,链接为http://www.ti.com.cn/cn/lit/er/sprz171q/sprz171q.pdf 该勘误表的第20页,描述了2802的从ROM启动时eCAN的一个问题。