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

将ECan放在AD中断中发送数据,在线仿真时可以发送,烧写到Flash中就不可以

具体问题是这样的:我将在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的一个问题。

赞(0)
未经允许不得转载:TI中文支持网 » 将ECan放在AD中断中发送数据,在线仿真时可以发送,烧写到Flash中就不可以
分享到: 更多 (0)