大家好,
我帮助客户发送帖子。
“我正在研究TMS570LS1224的CAN中断。 我想生成CAN Raw数据的正弦波信号。 我尝试修改CAN中断代码,但我无法获得输出,您能告诉我错误的位置,帮助我吗? 下面是我正在使用的代码:
#include "sys_common.h"
/*用户代码开始(1)*/
包含"CAN.h"
包括"ESM.h"
#include "sys_core.h"
#include "sci.h"
#include "stdio.h"
包含"math.h"
#define D_count 8.
UINT32 cnt=0,错误=0,TX_done =0;
UINT8 TX_DATA[D_COUNT][8]={0};
UINT8 Rx_DATA[D_COUNT][8]={0};
UINT8 *TX_PTR =&TX_DATA[0][0];
UINT8 *RX_PTR =&RX_DATA[0][0];
UINT8 *dptr=0;
UINT32 cnt1 = 0;
int x=0;
int y=0;
浮点I=0;
int j=0;
浮子A[600];
void dumpSomeData();
void dumpSomeData1();
/*用户代码结束*/
/**@fn void main(void)
*@简介应用程序主要功能
*@注意此函数默认为空。
*
*此函数在启动后调用。
*用户可以使用此功能来实施应用程序。
*/
/*用户代码开始(2)*/
/*用户代码结束*/
内部主(无效)
{
/*用户代码开始(3)*/
/*在Cortex R4 *中启用IRQ中断
_enable_interrupit_();
// sciInit();
//sciSend(scilinREG,18,(unsigned char*)"SCI已初始化.\r\n");
/**-在RAM中写入随机数据-传输*/
//dumpSomeData();
dumpSomeData1();
/**-将CAN1 MB1,Msg ID-1配置为传输,将CAN2 MB1配置为接收*/
canInit();
/**-启用错误中断*/
canEnableErrorNotification (canREG1);
canEnableErrorNotification (canREG2);
/**-起动变速箱*/
对于(cnt1=0;cnt1<D_count;cnt1++)
{
Int cnt1 = 0;
canTransmit (canREG1,canMESSAGE_BOX1,TX_PTR);/*传输8个不同的块,1 x 1 *
while (TX_done == 0){
//如果(++cnt1 == 100){
// sciSend(scilinREG,18,(unsigned char*)"无法传输.\r\n");
//中断;
//}
};/*....等待传输请求通过*/
用于(x=1;x<200;x++)
{
对于(y=0;y<200;y++){};
}
tx_done=1;
TX_PTR +=8;/*下一个块....*/
}
/**-使用传输的数据检查接收到的数据*/
TX_PTR =&TX_DATA[0][0];
RX_PTR =&RX_DATA[0][0];
用于(cnt=0;cnt<63;cnt++)
{
如果(*TX_PTR++!=*RX_PTR++)
{
错误++;/*数据错误*/
}
}
while (1){};/* TX-Rx完成后永远等待。 */
/*用户代码结束*/
返回0;
}
/*用户代码开始(4)*/
/*将一些数据写入ram */
void dumpSomeData()
{
UINT32 tmp = 0x11;
CNT =(D_COUNT*8)-1;
dptr =&TX_data[0][0];
*dptr = tmp;
而(cnt--)
{
tmp =*dptr++;
*dptr = tmp + 0x11;
}
}
void dumpSomeData1()
{
UINT32 tmp;
CNT =(D_COUNT*8)-1;
*dptr = tmp;
对于(i=0;i<40;)
{
*dptr=10*sin (2* 3.14 *50*i);
dptr =&TX_data[0][0];
J++;
1.5 ;
}
}
这就是我获得输出的方式:

"
感谢你的帮助。
此致,

