导航: 老古网老古论坛XMOS公共讨论区XMOS开源项目区单片机程序设计嵌入式系统广告区域
→发表看法:[guest][求助]



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 ......

>>返回讨论的主题



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


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

   




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