<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic MSCAN Problem... I don't know where! in S12 / MagniV Microcontrollers</title>
    <link>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/MSCAN-Problem-I-don-t-know-where/m-p/190135#M7362</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Hi all,&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;We're using mc9sxdp512 MCU and we're trying to use MSCAN module. My rutines are:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BLOCKQUOTE class="jive-quote"&gt;&lt;BLOCKQUOTE class="jive-quote"&gt;&lt;DIV align="left"&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;void Can0Init (void)&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;{&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp; CAN0CTL0_INITRQ = 0x01;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Modo inicializacion&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp; while(!(CAN0CTL1_INITAK))&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp; {&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; SCI1_OutChar('I');&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; SCI1_OutChar(CR);&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp; }&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp; CAN0BTR0=0xC1; // 4Tq de Sync Jump Width.&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Prescaler 2...125Kbps(4Mhz)&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp; CAN0BTR1=0x3A;&amp;nbsp; // One sample per bit&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Time Segment 1 = 11 Tq&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Time Segment 2 = 4 Tq&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp; CAN0CTL1=0xA0;&amp;nbsp; // MSCAN enable + LoopBack&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp; /*&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp; 7 CANE&amp;nbsp;&amp;nbsp; 1&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp; 6 CLKSRC 0&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp; 5 LOOPB&amp;nbsp; 1&amp;nbsp;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp; 4 LISTEN 0&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp; 3 BORM&amp;nbsp;&amp;nbsp; 0&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp; 2 WUPM&amp;nbsp;&amp;nbsp; 0&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp; 1 SLPAK&amp;nbsp; 0&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp; 0 INITAK 0&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp; */&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp; /* Configuracion de los filtros de aceptacion de mensajes*/&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp; CAN0IDMR0=0xFF;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp; CAN0IDMR1=0xFF;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp; CAN0IDMR2=0xFF;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp; CAN0IDMR3=0xFF;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp; CAN0IDMR4=0xFF;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp; CAN0IDMR5=0xFF;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp; CAN0IDMR6=0xFF;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp; CAN0IDMR7=0xFF;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp; CAN0CTL0=0x00;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Salir modo inicializacion&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp; while(CAN0CTL1_INITAK)&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp; {&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp; };&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp; CAN0RIER=0x01; // ON Rx Interrupts&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp; INT_CFADDR=&amp;nbsp; INTVECT_CAN0RX &amp;amp; 0xF0;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp; INT_CFDATA_ARR[(INTVECT_CAN0RX &amp;amp; 0x0F) &amp;gt;&amp;gt; 1]= 0x04;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp; INT_CFADDR=&amp;nbsp; INTVECT_CAN0TX &amp;amp; 0xF0;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp; INT_CFDATA_ARR[(INTVECT_CAN0TX &amp;amp; 0x0F) &amp;gt;&amp;gt; 1]= 0x04;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;}&lt;BR /&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;void CAN0_InBuffer(void)&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;{&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp; unsigned char i;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp; while((CAN0RFLG &amp;amp; CAN0RFLG_RXF_MASK)== 0){};&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp; CanRx_Store.DLR = CAN0RXDLR &amp;amp; 0x0F;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp; for(i=0;i&amp;lt;CanRx_Store.DLR;i++)&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp; {&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; CanRx_Store.Data[i]=*(&amp;amp;CAN0RXDSR0+i);&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt; &lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp; }&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp; CAN0RFLG=0x01;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;}&lt;BR /&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;void CAN0_OutBuffer(struct Can_struct Tx_struct)&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;{&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp; unsigned char i, txbuffer;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp; //Libre Buffer0?&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp;if(CAN0TFLG_TXE0==1)&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp;{&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp; // Buffer0 libre&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp; Stop_CAN0_Tx(0); // Deshabilita las interrupciones por el Buffer0&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp; CAN0TBSEL=CAN0TFLG;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp; txbuffer=CAN0TBSEL;&amp;nbsp;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp; CAN0TXIDR0 = Tx_struct.ID;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp; CAN0TXDLR = Tx_struct.DLR;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp; CAN0TXTBPR = Tx_struct.Priority;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp; for(i=0;i&amp;lt;Tx_struct.DLR;i++)&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp; {&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Relleno el buffer de salida&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; *(&amp;amp;CAN0TXDSR0+i)=Tx_struct.Data[i];&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp; }&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp; CAN0TFLG=txbuffer; // Clear TXE flag&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp; Start_CAN0_Tx(0); // Habilita las interrupciones en el Buffer0&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp;}&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp;//Libre Buffer1?&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp;else if(CAN0TFLG_TXE1==1)&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp;{&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp; // Buffer1 libre&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp; Stop_CAN0_Tx(1); // Deshabilita las interrupciones por el Buffer0&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp; CAN0TBSEL=CAN0TFLG;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp; txbuffer=CAN0TBSEL;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp; CAN0TXIDR0 = Tx_struct.ID;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp; CAN0TXDLR = Tx_struct.DLR;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp; CAN0TXTBPR = Tx_struct.Priority;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp; for(i=0;i&amp;lt;Tx_struct.DLR;i++)&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp; {&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Relleno el buffer de salida&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; *(&amp;amp;CAN0TXDSR0+i)=Tx_struct.Data[i];&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp; }&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp; CAN0TFLG=txbuffer; // Clear TXE flag&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp; Start_CAN0_Tx(1); // Habilita las interrupciones en el Buffer1&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp;}&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp;//Libre Buffer2?&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp;else if(CAN0TFLG_TXE2==1)&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp;{&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp; // Buffer2 libre&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp; Stop_CAN0_Tx(2); // Deshabilita las interrupciones por el Buffer0&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp; CAN0TBSEL=CAN0TFLG;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp; txbuffer=CAN0TBSEL;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp; CAN0TXIDR0 = Tx_struct.ID;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp; CAN0TXDLR = Tx_struct.DLR;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp; CAN0TXTBPR = Tx_struct.Priority;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp; for(i=0;i&amp;lt;Tx_struct.DLR;i++)&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp; {&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Relleno el buffer de salida&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; *(&amp;amp;CAN0TXDSR0+i)=Tx_struct.Data[i];&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp; }&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp; CAN0TFLG=txbuffer; // Clear TXE flag&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp; Start_CAN0_Tx(2); // Habilita las interrupciones en el Buffer02&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp;}&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;}&lt;BR /&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;void Start_CAN0_Tx(unsigned char buffer)&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;{&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp; // On Tx interrupts en CAN0&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp; switch(buffer)&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp; {&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; case 0x00:&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CAN0TIER_TXEIE0=0x01; // ON Buffer 0&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; break;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; case 0x01:&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CAN0TIER_TXEIE1=0x01; // ON Buffer 1&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; break;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; case 0x02:&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CAN0TIER_TXEIE2=0x01; // ON Buffer 2&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; break;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; case 0x03:&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CAN0TIER_TXEIE0=0x01; // ON Buffer 0&amp;nbsp;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CAN0TIER_TXEIE1=0x01; // ON Buffer 1&amp;nbsp;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CAN0TIER_TXEIE2=0x01; // ON Buffer 2&amp;nbsp;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; break;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; default:&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; break;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp; }&amp;nbsp;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;}&lt;BR /&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;void Stop_CAN0_Tx(unsigned char buffer)&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;{&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp; // OFF Tx Interrupts&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp; switch(buffer)&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp; {&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; case 0:&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CAN0TIER_TXEIE0=0x00; // OFF Buffer 0&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; break;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; case 1:&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CAN0TIER_TXEIE1=0x00; // OFF Buffer 1&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; break;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; case 2:&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CAN0TIER_TXEIE2=0x00; // OFF Buffer 2&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; break;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; case 3:&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CAN0TIER_TXEIE0=0x00; // OFF Buffer 0&amp;nbsp;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CAN0TIER_TXEIE1=0x00; // OFF Buffer 1&amp;nbsp;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CAN0TIER_TXEIE2=0x00; // OFF Buffer 2&amp;nbsp;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; break;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; default:&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; break;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp; }&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;}&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;/DIV&gt;&lt;/BLOCKQUOTE&gt;What is the problem? It seems that TX part works fine but in RX arrives data but not good-data.&lt;BR /&gt;&lt;BR /&gt;Can anyone help me? I know these forums is the unique place in the world where I can find my solution... at least my last problems have been solved!&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;DIV align="left"&gt;&lt;BR /&gt;&lt;/DIV&gt;&lt;/BLOCKQUOTE&gt;&lt;BR /&gt;&lt;DIV&gt; &lt;/DIV&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Wed, 01 Oct 2008 15:55:04 GMT</pubDate>
    <dc:creator>RubenCG</dc:creator>
    <dc:date>2008-10-01T15:55:04Z</dc:date>
    <item>
      <title>MSCAN Problem... I don't know where!</title>
      <link>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/MSCAN-Problem-I-don-t-know-where/m-p/190135#M7362</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Hi all,&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;We're using mc9sxdp512 MCU and we're trying to use MSCAN module. My rutines are:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BLOCKQUOTE class="jive-quote"&gt;&lt;BLOCKQUOTE class="jive-quote"&gt;&lt;DIV align="left"&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;void Can0Init (void)&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;{&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp; CAN0CTL0_INITRQ = 0x01;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Modo inicializacion&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp; while(!(CAN0CTL1_INITAK))&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp; {&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; SCI1_OutChar('I');&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; SCI1_OutChar(CR);&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp; }&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp; CAN0BTR0=0xC1; // 4Tq de Sync Jump Width.&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Prescaler 2...125Kbps(4Mhz)&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp; CAN0BTR1=0x3A;&amp;nbsp; // One sample per bit&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Time Segment 1 = 11 Tq&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Time Segment 2 = 4 Tq&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp; CAN0CTL1=0xA0;&amp;nbsp; // MSCAN enable + LoopBack&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp; /*&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp; 7 CANE&amp;nbsp;&amp;nbsp; 1&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp; 6 CLKSRC 0&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp; 5 LOOPB&amp;nbsp; 1&amp;nbsp;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp; 4 LISTEN 0&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp; 3 BORM&amp;nbsp;&amp;nbsp; 0&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp; 2 WUPM&amp;nbsp;&amp;nbsp; 0&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp; 1 SLPAK&amp;nbsp; 0&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp; 0 INITAK 0&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp; */&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp; /* Configuracion de los filtros de aceptacion de mensajes*/&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp; CAN0IDMR0=0xFF;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp; CAN0IDMR1=0xFF;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp; CAN0IDMR2=0xFF;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp; CAN0IDMR3=0xFF;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp; CAN0IDMR4=0xFF;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp; CAN0IDMR5=0xFF;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp; CAN0IDMR6=0xFF;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp; CAN0IDMR7=0xFF;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp; CAN0CTL0=0x00;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Salir modo inicializacion&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp; while(CAN0CTL1_INITAK)&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp; {&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp; };&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp; CAN0RIER=0x01; // ON Rx Interrupts&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp; INT_CFADDR=&amp;nbsp; INTVECT_CAN0RX &amp;amp; 0xF0;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp; INT_CFDATA_ARR[(INTVECT_CAN0RX &amp;amp; 0x0F) &amp;gt;&amp;gt; 1]= 0x04;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp; INT_CFADDR=&amp;nbsp; INTVECT_CAN0TX &amp;amp; 0xF0;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp; INT_CFDATA_ARR[(INTVECT_CAN0TX &amp;amp; 0x0F) &amp;gt;&amp;gt; 1]= 0x04;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;}&lt;BR /&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;void CAN0_InBuffer(void)&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;{&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp; unsigned char i;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp; while((CAN0RFLG &amp;amp; CAN0RFLG_RXF_MASK)== 0){};&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp; CanRx_Store.DLR = CAN0RXDLR &amp;amp; 0x0F;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp; for(i=0;i&amp;lt;CanRx_Store.DLR;i++)&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp; {&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; CanRx_Store.Data[i]=*(&amp;amp;CAN0RXDSR0+i);&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt; &lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp; }&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp; CAN0RFLG=0x01;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;}&lt;BR /&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;void CAN0_OutBuffer(struct Can_struct Tx_struct)&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;{&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp; unsigned char i, txbuffer;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp; //Libre Buffer0?&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp;if(CAN0TFLG_TXE0==1)&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp;{&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp; // Buffer0 libre&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp; Stop_CAN0_Tx(0); // Deshabilita las interrupciones por el Buffer0&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp; CAN0TBSEL=CAN0TFLG;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp; txbuffer=CAN0TBSEL;&amp;nbsp;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp; CAN0TXIDR0 = Tx_struct.ID;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp; CAN0TXDLR = Tx_struct.DLR;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp; CAN0TXTBPR = Tx_struct.Priority;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp; for(i=0;i&amp;lt;Tx_struct.DLR;i++)&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp; {&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Relleno el buffer de salida&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; *(&amp;amp;CAN0TXDSR0+i)=Tx_struct.Data[i];&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp; }&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp; CAN0TFLG=txbuffer; // Clear TXE flag&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp; Start_CAN0_Tx(0); // Habilita las interrupciones en el Buffer0&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp;}&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp;//Libre Buffer1?&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp;else if(CAN0TFLG_TXE1==1)&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp;{&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp; // Buffer1 libre&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp; Stop_CAN0_Tx(1); // Deshabilita las interrupciones por el Buffer0&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp; CAN0TBSEL=CAN0TFLG;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp; txbuffer=CAN0TBSEL;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp; CAN0TXIDR0 = Tx_struct.ID;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp; CAN0TXDLR = Tx_struct.DLR;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp; CAN0TXTBPR = Tx_struct.Priority;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp; for(i=0;i&amp;lt;Tx_struct.DLR;i++)&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp; {&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Relleno el buffer de salida&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; *(&amp;amp;CAN0TXDSR0+i)=Tx_struct.Data[i];&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp; }&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp; CAN0TFLG=txbuffer; // Clear TXE flag&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp; Start_CAN0_Tx(1); // Habilita las interrupciones en el Buffer1&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp;}&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp;//Libre Buffer2?&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp;else if(CAN0TFLG_TXE2==1)&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp;{&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp; // Buffer2 libre&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp; Stop_CAN0_Tx(2); // Deshabilita las interrupciones por el Buffer0&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp; CAN0TBSEL=CAN0TFLG;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp; txbuffer=CAN0TBSEL;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp; CAN0TXIDR0 = Tx_struct.ID;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp; CAN0TXDLR = Tx_struct.DLR;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp; CAN0TXTBPR = Tx_struct.Priority;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp; for(i=0;i&amp;lt;Tx_struct.DLR;i++)&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp; {&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Relleno el buffer de salida&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; *(&amp;amp;CAN0TXDSR0+i)=Tx_struct.Data[i];&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp; }&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp; CAN0TFLG=txbuffer; // Clear TXE flag&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp; Start_CAN0_Tx(2); // Habilita las interrupciones en el Buffer02&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp;}&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;}&lt;BR /&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;void Start_CAN0_Tx(unsigned char buffer)&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;{&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp; // On Tx interrupts en CAN0&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp; switch(buffer)&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp; {&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; case 0x00:&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CAN0TIER_TXEIE0=0x01; // ON Buffer 0&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; break;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; case 0x01:&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CAN0TIER_TXEIE1=0x01; // ON Buffer 1&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; break;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; case 0x02:&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CAN0TIER_TXEIE2=0x01; // ON Buffer 2&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; break;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; case 0x03:&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CAN0TIER_TXEIE0=0x01; // ON Buffer 0&amp;nbsp;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CAN0TIER_TXEIE1=0x01; // ON Buffer 1&amp;nbsp;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CAN0TIER_TXEIE2=0x01; // ON Buffer 2&amp;nbsp;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; break;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; default:&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; break;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp; }&amp;nbsp;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;}&lt;BR /&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;void Stop_CAN0_Tx(unsigned char buffer)&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;{&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp; // OFF Tx Interrupts&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp; switch(buffer)&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp; {&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; case 0:&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CAN0TIER_TXEIE0=0x00; // OFF Buffer 0&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; break;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; case 1:&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CAN0TIER_TXEIE1=0x00; // OFF Buffer 1&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; break;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; case 2:&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CAN0TIER_TXEIE2=0x00; // OFF Buffer 2&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; break;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; case 3:&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CAN0TIER_TXEIE0=0x00; // OFF Buffer 0&amp;nbsp;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CAN0TIER_TXEIE1=0x00; // OFF Buffer 1&amp;nbsp;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CAN0TIER_TXEIE2=0x00; // OFF Buffer 2&amp;nbsp;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; break;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; default:&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; break;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;&amp;nbsp; }&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Verdana; font-size: 2;"&gt;}&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;/DIV&gt;&lt;/BLOCKQUOTE&gt;What is the problem? It seems that TX part works fine but in RX arrives data but not good-data.&lt;BR /&gt;&lt;BR /&gt;Can anyone help me? I know these forums is the unique place in the world where I can find my solution... at least my last problems have been solved!&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;DIV align="left"&gt;&lt;BR /&gt;&lt;/DIV&gt;&lt;/BLOCKQUOTE&gt;&lt;BR /&gt;&lt;DIV&gt; &lt;/DIV&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 01 Oct 2008 15:55:04 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/MSCAN-Problem-I-don-t-know-where/m-p/190135#M7362</guid>
      <dc:creator>RubenCG</dc:creator>
      <dc:date>2008-10-01T15:55:04Z</dc:date>
    </item>
    <item>
      <title>Re: MSCAN Problem... I don't know where!</title>
      <link>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/MSCAN-Problem-I-don-t-know-where/m-p/190136#M7363</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;DIV&gt;Is it OK that loopback mode is on.&lt;/DIV&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 02 Oct 2008 15:45:00 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/MSCAN-Problem-I-don-t-know-where/m-p/190136#M7363</guid>
      <dc:creator>kef</dc:creator>
      <dc:date>2008-10-02T15:45:00Z</dc:date>
    </item>
    <item>
      <title>Re: MSCAN Problem... I don't know where!</title>
      <link>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/MSCAN-Problem-I-don-t-know-where/m-p/190137#M7364</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;Hi,&lt;BR /&gt;&lt;BR /&gt;Yes, I switched ON the loopback mode to test my software without BUS.&lt;BR /&gt;&lt;BR /&gt;I don't understand why my software doesn't work properly, it's very simple.&lt;BR /&gt;&lt;BR /&gt;Thanks,&lt;BR /&gt;Rbn&lt;BR /&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 02 Oct 2008 16:09:57 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/MSCAN-Problem-I-don-t-know-where/m-p/190137#M7364</guid>
      <dc:creator>RubenCG</dc:creator>
      <dc:date>2008-10-02T16:09:57Z</dc:date>
    </item>
    <item>
      <title>Re: MSCAN Problem... I don't know where!</title>
      <link>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/MSCAN-Problem-I-don-t-know-where/m-p/190138#M7365</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;DIV&gt;I see you initialize the RX interrupt. But why you use polling mechanisme in &lt;FONT face="Verdana" size="2"&gt;CAN0_InBuffer() by testing CAN0RFLG_RXF_MASK?&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Verdana" size="2"&gt;Can you&amp;nbsp;specify more, how the CAN-data is corupted and is the receiced CAN-ID correct?&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Verdana" size="2"&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/DIV&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 02 Oct 2008 20:25:10 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/MSCAN-Problem-I-don-t-know-where/m-p/190138#M7365</guid>
      <dc:creator>harry_haeusern</dc:creator>
      <dc:date>2008-10-02T20:25:10Z</dc:date>
    </item>
    <item>
      <title>Re: MSCAN Problem... I don't know where!</title>
      <link>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/MSCAN-Problem-I-don-t-know-where/m-p/190139#M7366</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;Hi Harry,&lt;BR /&gt;&lt;BR /&gt;It know that the test of RXF bit is NOT absolutely necessary, the routine works with and without this bit-testing. If the Rx-interrupt comes the RXF-bit is set by CPU.&lt;BR /&gt;&lt;BR /&gt;Information:&lt;BR /&gt;&lt;BR /&gt;CAN0IDMR0=0xFF;&lt;BR /&gt;CAN0IDMR1=0xFF;&lt;BR /&gt;CAN0IDMR2=0xFF;&lt;BR /&gt;CAN0IDMR3=0xFF;&lt;BR /&gt;CAN0IDMR4=0xFF;&lt;BR /&gt;CAN0IDMR5=0xFF;&lt;BR /&gt;CAN0IDMR6=0xFF;&lt;BR /&gt;CAN0IDMR7=0xFF;&lt;BR /&gt;&lt;BR /&gt;So, I think the CAN-ID doesn't matter.&lt;BR /&gt;&lt;BR /&gt;Tx-Data in bytes: 0x01 0xDD 0xDD 0xDD 0xDD 0xDD 0xDD 0x02&lt;BR /&gt;Rx-Data in bytes: 0x87 0xC9 0xDD 0xDD 0xDD 0xDD 0xDD 0x02&lt;BR /&gt;&lt;BR /&gt;To be sincere I don't know if the problem is Tx or Rx. Perhaps the routine in interrupts are not properly. Hace you any example (CanRx-interrupt or Tx.interrupt) to compare code?&lt;BR /&gt;&lt;BR /&gt;Thanks for your interest,&lt;BR /&gt;Rbn&lt;BR /&gt;&lt;BR /&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 02 Oct 2008 20:40:53 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/MSCAN-Problem-I-don-t-know-where/m-p/190139#M7366</guid>
      <dc:creator>RubenCG</dc:creator>
      <dc:date>2008-10-02T20:40:53Z</dc:date>
    </item>
    <item>
      <title>Re: MSCAN Problem... I don't know where!</title>
      <link>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/MSCAN-Problem-I-don-t-know-where/m-p/190140#M7367</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;DIV&gt;I wrote a CAN-Driver for HC9S12C32, this is base on CAN-module MSCAN12&amp;nbsp;(uC MC9S12C32)&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;if you are interested I can send it to you?&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;BR /&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;BR /&gt;&amp;nbsp;&lt;/DIV&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 02 Oct 2008 21:11:13 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/MSCAN-Problem-I-don-t-know-where/m-p/190140#M7367</guid>
      <dc:creator>harry_haeusern</dc:creator>
      <dc:date>2008-10-02T21:11:13Z</dc:date>
    </item>
    <item>
      <title>Re: MSCAN Problem... I don't know where!</title>
      <link>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/MSCAN-Problem-I-don-t-know-where/m-p/190141#M7368</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;I think it could be positive for me, I've read my code 100 times and I can't find my errors... too much for me!&lt;BR /&gt;&lt;BR /&gt;My email is rcampog@icf.com.es&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;Thank you once again,&lt;BR /&gt;Rbn&lt;BR /&gt;&lt;BR /&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 02 Oct 2008 21:19:18 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/MSCAN-Problem-I-don-t-know-where/m-p/190141#M7368</guid>
      <dc:creator>RubenCG</dc:creator>
      <dc:date>2008-10-02T21:19:18Z</dc:date>
    </item>
    <item>
      <title>Re: MSCAN Problem... I don't know where!</title>
      <link>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/MSCAN-Problem-I-don-t-know-where/m-p/190142#M7369</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;Harry... You were right last email, the problem was the ID. I tried to use Standard ID and all the mask are 0xFF but when I fill CAN0IDR0, CAN0IDR1, CAN0IDR2, CAN0IDR3 with 0x00 the problem has disappeared.&lt;BR /&gt;&lt;BR /&gt;Can you explain me what was the problem? If the ID didn't match, why the RXF flag is set and the RX-Interrupt is requested?... for me is unexplained!&lt;BR /&gt;&lt;BR /&gt;If you have any problem I'm still interested in reading your CAN-drive.&lt;BR /&gt;&lt;BR /&gt;Really thanks, I hope I can help you in the future.&lt;BR /&gt;Rbn &amp;nbsp;&lt;BR /&gt;&lt;BR /&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 02 Oct 2008 23:22:31 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/MSCAN-Problem-I-don-t-know-where/m-p/190142#M7369</guid>
      <dc:creator>RubenCG</dc:creator>
      <dc:date>2008-10-02T23:22:31Z</dc:date>
    </item>
  </channel>
</rss>

