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

* 73137: 求助一个P87c591中CAN网初始化的问题?

   canglang008 
canglang008发表的帖子 

 求助一个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 13 using 2    /* 高优先级 */
{
  
 unsigned char xdata CANADR_save; 

/*在此处点一个灯*/

        InterruptRegCopy = CANCON;          /* 读中断寄存器 */
        CANADR_save = CANADR;               /* 保存CANADR */
                                            /* CAN 发送中断 */
       if ((InterruptRegCopy & 0x02) == 0x02)
        {
                                            /* 发送中断处理 */
          TX_Service ();
          CanTraBufferFlag=0;               /*00表示发送can缓冲区没有数据,1表示发送缓冲区有数据*/

          CANCON=0x00;
        }
                                            /* CAN接收中断 */
      if ((InterruptRegCopy & 0x01) == 0x01)
        {
          do {
               RX_Service();
               Can_Identifer_Define();
               CanRecBufferFlag=1;            /*00表示接收can缓冲区没有数据,1表示接收缓冲区有数据*/
             } 
          while (RBS);                     /* 接收缓冲区是否清空 */ 
        }

CANADR = CANADR_save; /* 恢复CANADR */
/* ----- EX0_int_service结束 ----- */
}

 

 



发表时间:2005年2月18日9:24:41

  
回复该帖

本主题共有 2 帖,分页:>>>>>该主题的所有内容[2]条

 *树形目录 只列出部分跟帖的标题以及简单的摘要信息 该主题的部分跟帖如下:

  73272.[详细]你可以看看~~
摘要:P87C591单片机: /******************************************  单片机CAN寄存器初始化函数 ****************************......(2076字)
- [fenggou80][890次] 2005年2月21日

[上一篇帖子]:软件工程师招聘招聘: /P P 世宏科技(Innosis),一家位于苏州园区的ic设计企业。 B
[下一篇帖子]:[求助]在调试Phillips的P87c591的can网时,发现进入不了can中断, /P P