Board logo

标题: 807MSCAN [打印本页]

作者: hanshengwu    时间: 2007-10-11 22:04     标题: 807MSCAN

您好!
在使用CW8.0编写CAN总线程序时遇到下面的问题(使用Iint_MSCAN bean)
1.在CAN1_Iint()中写入代码,当我下次再进入的时候,代码消失.我没有对其做任何修改,也没有用其他程序打开过它
2.在设置完初始化后,编写发送程序
while((CANCTL0)&0010==1)
CAN_TB0_IDR0=0x33; /* 设置发送缓冲区的接收符ID,使用标准模式*/
CAN_TB0_IDR1=0;
CAN_TB1_IDR0=0x44;
CAN_TB1_IDR1=0;
CAN_TB2_IDR0=0x55;
CAN_TB2_IDR1=0;

CAN_TB0_DLR=0x0008; /* 设置发送缓冲区的数据长度*/
CAN_TB1_DLR=0x0008;
CAN_TB2_DLR=0x0008;

CAN_TB0_TBPR=0x10; /* 设置发送缓冲区的优先级*/
CAN_TB1_TBPR=0x20;
CAN_TB2_TBPR=0x30;

GPR3=0x7500; /* 设置中断级别*/
CANRIER=0x0001; //允许MSCAN接收中断
while(1)
{
.........发送程序
}
通过另一块EVM可以接受数据

但是加了一个{}后
while((CANCTL0)&0010==1)
{
CAN_TB0_IDR0=0x33; /* 设置发送缓冲区的接收符ID,使用标准模式*/
CAN_TB0_IDR1=0;
CAN_TB1_IDR0=0x44;
CAN_TB1_IDR1=0;
CAN_TB2_IDR0=0x55;
CAN_TB2_IDR1=0;

CAN_TB0_DLR=0x0008; /* 设置发送缓冲区的数据长度*/
CAN_TB1_DLR=0x0008;
CAN_TB2_DLR=0x0008;

CAN_TB0_TBPR=0x10; /* 设置发送缓冲区的优先级*/
CAN_TB1_TBPR=0x20;
CAN_TB2_TBPR=0x30;

GPR3=0x7500; /* 设置中断级别*/
CANRIER=0x0001; //允许MSCAN接收中断
}

while(1)
{
.........发送程序
}

也能收到数据 但是不正确
即使上面那段程序放在主程序中,接收结果也不正确. 请各位帮忙 谢谢.
作者: strongchen    时间: 2007-10-12 10:23

在使用PE时,如果修改了PE生成的代码,可以用FREEZE功能阻止它重新生成代码。




欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) Powered by Discuz! 7.0.0