导航: 老古网老古论坛XMOS公共讨论区XMOS开源项目区单片机程序设计嵌入式系统广告区域
→发表看法:[canglang008]求助一个P87c591中CAN网初始化的



No.73137
作者:canglang008
邮件:canglang008@163.com
ID:30750
登陆:4次
文章数:1篇
最后登陆IP:221.221.157.44
最后登陆:2005/11/22 15:06:42
注册:2005/2/4 9:46:18
财富:108
发帖时间:2005/2/18 9:24:41
发贴者IP:61.51.60.101
标题:canglang008:求助一个P87c591中CAN网初始化的问题?
摘要:No.73137求助一个P87c591中CAN网初始化的问题? 我现在遇到一个问题:在调试Phillips的P87c591的can网时,发现进入不了can中断,

具体调试程序如下,希望大侠们帮我看看问题出在哪?谢谢.

串口和定时器都调通了,灯也调通了.我得调试思路是,在主程序中每隔10秒向can网发数据,同时产生can中断,在can中断中发数据,在can中断中点一个灯,结果发现在can中断中点的灯怎么也不亮,不知道问题出在哪,希望帮我看看下边的程序.

main()

{

init_can_controller();

......

ECAN=1;

while()

{

/*每隔10秒向CAN网发数据*/

CANCON = 0x01; /*发送中断*/

}

 

}

CAN网初始化函数
void init_can_controller(void)

/* 进入CAN控制器复位模式 */
CANMOD = 0x01;        /* 将CAN控制器设置为复位模式以启动初始化 */
/* TXDC Port (P1.1) 配置 */
/* 管脚TXDC 设置为推挽模式 */
P1M2 = P1M2 | 0x02; /* P1M2.1=’1’, P1M1.1 = ’0’ (默认) */
/* 配置与CAN有关的中断 */
CANSTA = 0x03; /* 使能接收和发送中断 */

/* CAN位定时的配置 */ 
CANADR = 0x06; /* BTR0和BTR1编程为125 kbit/s @12 MHz */
CANDAT = 0x45;
CANADR = 0x07; /* TSEG1 = 12, TSEG2 = 3, SJW = 2 */
CANDAT = 0x2B; /* Samples = 1 ->   sample point ~81 % */


/* 选择操作模式退出CAN控制器复位模式 */
CANMOD = 0x00;                
while (CANSTA & 0x80); /*等待总线激活*/
}

CAN网中断函数
void ECAN_int_service(void) interrupt  ......

>>返回讨论的主题



  发表回复
用户名   *您没有注册?
密码   *
验证码   * .
标题   *
心情
随便说说    我回答你    最新发现    得意的笑   
气死我了    真是没劲    坚决同意    表示反对   
大家过来    好奇怪哟    懒得理它    大家小心   
文件上传
内容


字体:      字体大小:    颜色:
粗体 斜体 下划线 居中 超级连接 Email连接 图片 Flash图片 Shockwave文件 realplay视频文件 Media Player视频文件 QuickTime视频文件 引用 飞行字 移动字 发光字 阴影字 查看更多的心情图标 背景音乐
点击加入表情
                         
选项
有回复时用短消息通知您?

   




老古网执行:16毫秒 最大:78531毫秒 查询6次