No.73136 作者:guest 邮件:guest@guest.com ID:6 登陆:16560次 文章数:7648篇 最后登陆IP:219.68.9.43 最后登陆:2005/5/20 1:37:44 注册:2003/3/10 16:21:00 财富:35062 发帖时间:2005/2/18 8:33:46 发贴者IP:210.21.215.18 标题:guest:[求助] 摘要:No.73136[求助] 在调试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 13 usin ......
>>返回讨论的主题
|