Subversion Repositories HomeAutomation

Rev

Rev 50 | Blame | Last modification | View Log | SVN | RSS feed

MP2COD 4.02, COFF to COD File Converter
Copyright (c) 2006 Microchip Technology Inc.
Listing File Generated: Mon Oct 23 23:10:30 2006


Address  Value    Disassembly              Source                                                                           File
-------  -------  -----------------------  -------------------------------------------------------------------------------  -----
                                           /*********************************************************************           F:\MCP\projects\CAN\canNode\Source\Main.c
                                            *                                                                               F:\MCP\projects\CAN\canNode\Source\Main.c
                                            *                  Main application                                             F:\MCP\projects\CAN\canNode\Source\Main.c
                                            *                                                                               F:\MCP\projects\CAN\canNode\Source\Main.c
                                            *********************************************************************           F:\MCP\projects\CAN\canNode\Source\Main.c
                                            * FileName:        Main.c                                                       F:\MCP\projects\CAN\canNode\Source\Main.c
                                            *                                                                               F:\MCP\projects\CAN\canNode\Source\Main.c
                                            * Author               Date    Comment                                          F:\MCP\projects\CAN\canNode\Source\Main.c
                                            *~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~           F:\MCP\projects\CAN\canNode\Source\Main.c
                                            * Johan Böhlin     21-10-06    Original        (Rev 1.0)                          F:\MCP\projects\CAN\canNode\Source\Main.c
                                            ********************************************************************/           F:\MCP\projects\CAN\canNode\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canNode\Source\Main.c
                                           #include <compiler.h>                                                            F:\MCP\projects\CAN\canNode\Source\Main.c
                                           #include <stackTasks.h>                                                          F:\MCP\projects\CAN\canNode\Source\Main.c
                                           #include <Tick.h>                                                                F:\MCP\projects\CAN\canNode\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canNode\Source\Main.c
                                           #ifdef USE_CAN                                                                   F:\MCP\projects\CAN\canNode\Source\Main.c
                                            #include <CAN.h>                                                                F:\MCP\projects\CAN\canNode\Source\Main.c
                                           #endif                                                                           F:\MCP\projects\CAN\canNode\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canNode\Source\Main.c
                                           static void mainInit(void);                                                      F:\MCP\projects\CAN\canNode\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canNode\Source\Main.c
0004ca   cfd9     MOVFF     0xfd9,0xfe6    void main()                                                                      F:\MCP\projects\CAN\canNode\Source\Main.c
0004cc   ffe6                                                                                                               
0004ce   cfe1     MOVFF     0xfe1,0xfd9                                                                                     
0004d0   ffd9                                                                                                               
0004d2   0e0e     MOVLW     0xe                                                                                             
0004d4   26e1     ADDWF     0xe1,0x1,0x0                                                                                    
                                           {                                                                                F:\MCP\projects\CAN\canNode\Source\Main.c
                                            static TICK t = 0;                                                              F:\MCP\projects\CAN\canNode\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canNode\Source\Main.c
                                            // Inits                                                                        F:\MCP\projects\CAN\canNode\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canNode\Source\Main.c
0004d6   d956     RCALL     0x784           mainInit();                                                                     F:\MCP\projects\CAN\canNode\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canNode\Source\Main.c
                                            #ifdef USE_CAN                                                                  F:\MCP\projects\CAN\canNode\Source\Main.c
0004d8   ec22     CALL      0x44,0x0            canInit();                                                                     F:\MCP\projects\CAN\canNode\Source\Main.c
0004da   f000                                                                                                               
                                            #endif                                                                          F:\MCP\projects\CAN\canNode\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canNode\Source\Main.c
0004dc   ec86     CALL      0x90c,0x0       tickInit();                                                                     F:\MCP\projects\CAN\canNode\Source\Main.c
0004de   f004                                                                                                               
                                                                                                                            F:\MCP\projects\CAN\canNode\Source\Main.c
                                            while(1)                                                                        F:\MCP\projects\CAN\canNode\Source\Main.c
                                            {                                                                               F:\MCP\projects\CAN\canNode\Source\Main.c
                                                #ifdef USE_CAN                                                                 F:\MCP\projects\CAN\canNode\Source\Main.c
0004e0   ec90     CALL      0x920,0x0           if ((tickGet()-t)>=5*TICK_SECOND)                                              F:\MCP\projects\CAN\canNode\Source\Main.c
0004e2   f004                                                                                                               
0004e4   0100     MOVLB     0x0                                                                                             
0004e6   516a     MOVF      0x6a,0x0,0x1                                                                                    
0004e8   5c18     SUBWF     0x18,0x0,0x0                                                                                    
0004ea   6e00     MOVWF     0x0,0x0                                                                                         
0004ec   516b     MOVF      0x6b,0x0,0x1                                                                                    
0004ee   5819     SUBWFB    0x19,0x0,0x0                                                                                    
0004f0   6e01     MOVWF     0x1,0x0                                                                                         
0004f2   516c     MOVF      0x6c,0x0,0x1                                                                                    
0004f4   581a     SUBWFB    0x1a,0x0,0x0                                                                                    
0004f6   6e02     MOVWF     0x2,0x0                                                                                         
0004f8   516d     MOVF      0x6d,0x0,0x1                                                                                    
0004fa   581b     SUBWFB    0x1b,0x0,0x0                                                                                    
0004fc   6e03     MOVWF     0x3,0x0                                                                                         
0004fe   0ef4     MOVLW     0xf4                                                                                            
000500   5c00     SUBWF     0x0,0x0,0x0                                                                                     
000502   0e01     MOVLW     0x1                                                                                             
000504   5801     SUBWFB    0x1,0x0,0x0                                                                                     
000506   0e00     MOVLW     0x0                                                                                             
000508   5802     SUBWFB    0x2,0x0,0x0                                                                                     
00050a   0e00     MOVLW     0x0                                                                                             
00050c   5803     SUBWFB    0x3,0x0,0x0                                                                                     
00050e   e3e8     BNC       0x4e0                                                                                           
                                                {                                                                              F:\MCP\projects\CAN\canNode\Source\Main.c
                                                    CAN_MESSAGE cm;                                                               F:\MCP\projects\CAN\canNode\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canNode\Source\Main.c
000510   ec90     CALL      0x920,0x0               t = tickGet();                                                                F:\MCP\projects\CAN\canNode\Source\Main.c
000512   f004                                                                                                               
000514   c018     MOVFF     0x18,0x6a                                                                                       
000516   f06a                                                                                                               
000518   c019     MOVFF     0x19,0x6b                                                                                       
00051a   f06b                                                                                                               
00051c   c01a     MOVFF     0x1a,0x6c                                                                                       
00051e   f06c                                                                                                               
000520   c01b     MOVFF     0x1b,0x6d                                                                                       
000522   f06d                                                                                                               
                                                                                                                               F:\MCP\projects\CAN\canNode\Source\Main.c
                                                    // Send heartbeat                                                             F:\MCP\projects\CAN\canNode\Source\Main.c
000524   0e66     MOVLW     0x66                    cm.ident=0x00000666;                                                          F:\MCP\projects\CAN\canNode\Source\Main.c
000526   6ede     MOVWF     0xde,0x0                                                                                        
000528   0e06     MOVLW     0x6                                                                                             
00052a   6ede     MOVWF     0xde,0x0                                                                                        
00052c   6ade     CLRF      0xde,0x0                                                                                        
00052e   6add     CLRF      0xdd,0x0                                                                                        
000530   52dd     MOVF      0xdd,0x1,0x0                                                                                    
000532   52dd     MOVF      0xdd,0x1,0x0                                                                                    
000534   0e04     MOVLW     0x4                     cm.extended=FALSE;                                                            F:\MCP\projects\CAN\canNode\Source\Main.c
000536   6adb     CLRF      0xdb,0x0                                                                                        
000538   0e01     MOVLW     0x1                     cm.data_length=1;                                                             F:\MCP\projects\CAN\canNode\Source\Main.c
00053a   6ef3     MOVWF     0xf3,0x0                                                                                        
00053c   0e05     MOVLW     0x5                                                                                             
00053e   cff3     MOVFF     0xff3,0xfdb                                                                                     
000540   ffdb                                                                                                               
000542   0e48     MOVLW     0x48                    cm.data[0]='H';                                                               F:\MCP\projects\CAN\canNode\Source\Main.c
000544   6ef3     MOVWF     0xf3,0x0                                                                                        
000546   0e06     MOVLW     0x6                                                                                             
000548   cff3     MOVFF     0xff3,0xfdb                                                                                     
00054a   ffdb                                                                                                               
                                                                                                                            F:\MCP\projects\CAN\canNode\Source\Main.c
00054c   cfd9     MOVFF     0xfd9,0xfe9             while(!canSendMessage(cm));                                                   F:\MCP\projects\CAN\canNode\Source\Main.c
00054e   ffe9                                                                                                               
000550   cfda     MOVFF     0xfda,0xfea                                                                                     
000552   ffea                                                                                                               
000554   cfee     MOVFF     0xfee,0xfe6                                                                                     
000556   ffe6                                                                                                               
000558   cfee     MOVFF     0xfee,0xfe6                                                                                     
00055a   ffe6                                                                                                               
00055c   cfee     MOVFF     0xfee,0xfe6                                                                                     
00055e   ffe6                                                                                                               
000560   cfee     MOVFF     0xfee,0xfe6                                                                                     
000562   ffe6                                                                                                               
000564   cfee     MOVFF     0xfee,0xfe6                                                                                     
000566   ffe6                                                                                                               
000568   cfee     MOVFF     0xfee,0xfe6                                                                                     
00056a   ffe6                                                                                                               
00056c   cfee     MOVFF     0xfee,0xfe6                                                                                     
00056e   ffe6                                                                                                               
000570   cfee     MOVFF     0xfee,0xfe6                                                                                     
000572   ffe6                                                                                                               
000574   cfee     MOVFF     0xfee,0xfe6                                                                                     
000576   ffe6                                                                                                               
000578   cfee     MOVFF     0xfee,0xfe6                                                                                     
00057a   ffe6                                                                                                               
00057c   cfee     MOVFF     0xfee,0xfe6                                                                                     
00057e   ffe6                                                                                                               
000580   cfee     MOVFF     0xfee,0xfe6                                                                                     
000582   ffe6                                                                                                               
000584   cfee     MOVFF     0xfee,0xfe6                                                                                     
000586   ffe6                                                                                                               
000588   cfee     MOVFF     0xfee,0xfe6                                                                                     
00058a   ffe6                                                                                                               
00058c   ec85     CALL      0x30a,0x0                                                                                       
00058e   f001                                                                                                               
000590   6e00     MOVWF     0x0,0x0                                                                                         
000592   0e0e     MOVLW     0xe                                                                                             
000594   5ee1     SUBWF     0xe1,0x1,0x0                                                                                    
000596   5000     MOVF      0x0,0x0,0x0                                                                                     
000598   0900     IORLW     0x0                                                                                             
00059a   e1a2     BNZ       0x4e0                                                                                           
00059c   d7d7     BRA       0x54c                                                                                           
                                                }                                                                              F:\MCP\projects\CAN\canNode\Source\Main.c
                                                #endif                                                                         F:\MCP\projects\CAN\canNode\Source\Main.c
                                            }                                                                               F:\MCP\projects\CAN\canNode\Source\Main.c
                                           }                                                                                F:\MCP\projects\CAN\canNode\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canNode\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canNode\Source\Main.c
                                           #pragma interruptlow HighISR                                                     F:\MCP\projects\CAN\canNode\Source\Main.c
00059e   cfd8     MOVFF     0xfd8,0xfe4    void HighISR(void)                                                               F:\MCP\projects\CAN\canNode\Source\Main.c
0005a0   ffe4                                                                                                               
0005a2   cfe0     MOVFF     0xfe0,0xfe4                                                                                     
0005a4   ffe4                                                                                                               
0005a6   6ee4     MOVWF     0xe4,0x0                                                                                        
0005a8   cfda     MOVFF     0xfda,0xfe4                                                                                     
0005aa   ffe4                                                                                                               
0005ac   cfe2     MOVFF     0xfe2,0xfda                                                                                     
0005ae   ffda                                                                                                               
0005b0   cfe9     MOVFF     0xfe9,0xfe4                                                                                     
0005b2   ffe4                                                                                                               
0005b4   cfea     MOVFF     0xfea,0xfe4                                                                                     
0005b6   ffe4                                                                                                               
0005b8   cff6     MOVFF     0xff6,0xfe4                                                                                     
0005ba   ffe4                                                                                                               
0005bc   cff7     MOVFF     0xff7,0xfe4                                                                                     
0005be   ffe4                                                                                                               
0005c0   cff5     MOVFF     0xff5,0xfe4                                                                                     
0005c2   ffe4                                                                                                               
0005c4   cff3     MOVFF     0xff3,0xfe4                                                                                     
0005c6   ffe4                                                                                                               
0005c8   cff4     MOVFF     0xff4,0xfe4                                                                                     
0005ca   ffe4                                                                                                               
0005cc   cffa     MOVFF     0xffa,0xfe4                                                                                     
0005ce   ffe4                                                                                                               
0005d0   ee00     LFSR      0x0,0x14                                                                                        
0005d2   f014                                                                                                               
0005d4   0e0b     MOVLW     0xb                                                                                             
0005d6   04e8     DECF      0xe8,0x0,0x0                                                                                    
0005d8   e303     BNC       0x5e0                                                                                           
0005da   cfee     MOVFF     0xfee,0xfe4                                                                                     
0005dc   ffe4                                                                                                               
0005de   d7fb     BRA       0x5d6                                                                                           
0005e0   ee00     LFSR      0x0,0x0                                                                                         
0005e2   f000                                                                                                               
0005e4   0e14     MOVLW     0x14                                                                                            
0005e6   04e8     DECF      0xe8,0x0,0x0                                                                                    
0005e8   e303     BNC       0x5f0                                                                                           
0005ea   cfee     MOVFF     0xfee,0xfe4                                                                                     
0005ec   ffe4                                                                                                               
0005ee   d7fb     BRA       0x5e6                                                                                           
0005f0   52e6     MOVF      0xe6,0x1,0x0                                                                                    
0005f2   cfd9     MOVFF     0xfd9,0xfe6                                                                                     
0005f4   ffe6                                                                                                               
0005f6   cfe1     MOVFF     0xfe1,0xfd9                                                                                     
0005f8   ffd9                                                                                                               
0005fa   0e0e     MOVLW     0xe                                                                                             
0005fc   26e1     ADDWF     0xe1,0x1,0x0                                                                                    
                                           {                                                                                F:\MCP\projects\CAN\canNode\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canNode\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canNode\Source\Main.c
                                            #ifdef USE_CAN                                                                  F:\MCP\projects\CAN\canNode\Source\Main.c
0005fe   ec4b     CALL      0x96,0x0            canISR();                                                                      F:\MCP\projects\CAN\canNode\Source\Main.c
000600   f000                                                                                                               
                                            #endif                                                                          F:\MCP\projects\CAN\canNode\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canNode\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canNode\Source\Main.c
000602   50f2     MOVF      0xf2,0x0,0x0    if (INTCONbits.INT0IE && INTCONbits.INT0IF)                                     F:\MCP\projects\CAN\canNode\Source\Main.c
000604   0b10     ANDLW     0x10                                                                                            
000606   e101     BNZ       0x60a                                                                                           
000608   d078     BRA       0x6fa                                                                                           
00060a   50f2     MOVF      0xf2,0x0,0x0                                                                                    
00060c   0b02     ANDLW     0x2                                                                                             
00060e   e075     BZ        0x6fa                                                                                           
                                            {                                                                               F:\MCP\projects\CAN\canNode\Source\Main.c
                                                static TICK t = 0;                                                             F:\MCP\projects\CAN\canNode\Source\Main.c
                                                CAN_MESSAGE cm;                                                                F:\MCP\projects\CAN\canNode\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canNode\Source\Main.c
000610   ec90     CALL      0x920,0x0           if ((tickGet()-t)>TICK_SECOND/2)                                               F:\MCP\projects\CAN\canNode\Source\Main.c
000612   f004                                                                                                               
000614   0100     MOVLB     0x0                                                                                             
000616   516e     MOVF      0x6e,0x0,0x1                                                                                    
000618   5c18     SUBWF     0x18,0x0,0x0                                                                                    
00061a   6e1f     MOVWF     0x1f,0x0                                                                                        
00061c   516f     MOVF      0x6f,0x0,0x1                                                                                    
00061e   5819     SUBWFB    0x19,0x0,0x0                                                                                    
000620   6e20     MOVWF     0x20,0x0                                                                                        
000622   5170     MOVF      0x70,0x0,0x1                                                                                    
000624   581a     SUBWFB    0x1a,0x0,0x0                                                                                    
000626   6e21     MOVWF     0x21,0x0                                                                                        
000628   5171     MOVF      0x71,0x0,0x1                                                                                    
00062a   581b     SUBWFB    0x1b,0x0,0x0                                                                                    
00062c   6e22     MOVWF     0x22,0x0                                                                                        
00062e   80d8     BSF       0xd8,0x0,0x0                                                                                    
000630   0e32     MOVLW     0x32                                                                                            
000632   541f     SUBFWB    0x1f,0x0,0x0                                                                                    
000634   0e00     MOVLW     0x0                                                                                             
000636   5420     SUBFWB    0x20,0x0,0x0                                                                                    
000638   0e00     MOVLW     0x0                                                                                             
00063a   5421     SUBFWB    0x21,0x0,0x0                                                                                    
00063c   0e00     MOVLW     0x0                                                                                             
00063e   5422     SUBFWB    0x22,0x0,0x0                                                                                    
000640   e25b     BC        0x6f8                                                                                           
                                                {                                                                              F:\MCP\projects\CAN\canNode\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canNode\Source\Main.c
000642   7282     BTG       0x82,0x1,0x0            LED0_IO=~LED0_IO;                                                             F:\MCP\projects\CAN\canNode\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canNode\Source\Main.c
                                                    // Send heartbeat                                                             F:\MCP\projects\CAN\canNode\Source\Main.c
000644   0e91     MOVLW     0x91                    cm.ident=0x1F910091;                                                          F:\MCP\projects\CAN\canNode\Source\Main.c
000646   6ede     MOVWF     0xde,0x0                                                                                        
000648   6ade     CLRF      0xde,0x0                                                                                        
00064a   6ede     MOVWF     0xde,0x0                                                                                        
00064c   0e1f     MOVLW     0x1f                                                                                            
00064e   6edd     MOVWF     0xdd,0x0                                                                                        
000650   52dd     MOVF      0xdd,0x1,0x0                                                                                    
000652   52dd     MOVF      0xdd,0x1,0x0                                                                                    
000654   0e01     MOVLW     0x1                     cm.extended=TRUE;                                                             F:\MCP\projects\CAN\canNode\Source\Main.c
000656   6ef3     MOVWF     0xf3,0x0                                                                                        
000658   0e04     MOVLW     0x4                                                                                             
00065a   cff3     MOVFF     0xff3,0xfdb                                                                                     
00065c   ffdb                                                                                                               
00065e   0e01     MOVLW     0x1                     cm.data_length=1;                                                             F:\MCP\projects\CAN\canNode\Source\Main.c
000660   6ef3     MOVWF     0xf3,0x0                                                                                        
000662   0e05     MOVLW     0x5                                                                                             
000664   cff3     MOVFF     0xff3,0xfdb                                                                                     
000666   ffdb                                                                                                               
000668   0e01     MOVLW     0x1                     cm.data[0]=0x01;                                                              F:\MCP\projects\CAN\canNode\Source\Main.c
00066a   6ef3     MOVWF     0xf3,0x0                                                                                        
00066c   0e06     MOVLW     0x6                                                                                             
00066e   cff3     MOVFF     0xff3,0xfdb                                                                                     
000670   ffdb                                                                                                               
000672   0e07     MOVLW     0x7                     cm.data[1]=0x07;                                                              F:\MCP\projects\CAN\canNode\Source\Main.c
000674   6ef3     MOVWF     0xf3,0x0                                                                                        
000676   6edb     MOVWF     0xdb,0x0                                                                                        
000678   0e09     MOVLW     0x9                     cm.data[2]=0x09;                                                              F:\MCP\projects\CAN\canNode\Source\Main.c
00067a   6ef3     MOVWF     0xf3,0x0                                                                                        
00067c   0e08     MOVLW     0x8                                                                                             
00067e   cff3     MOVFF     0xff3,0xfdb                                                                                     
000680   ffdb                                                                                                               
000682   6ef3     MOVWF     0xf3,0x0                cm.data[3]=0x08;                                                              F:\MCP\projects\CAN\canNode\Source\Main.c
000684   0e09     MOVLW     0x9                                                                                             
000686   cff3     MOVFF     0xff3,0xfdb                                                                                     
000688   ffdb                                                                                                               
00068a   0e03     MOVLW     0x3                     cm.data[4]=0x03;                                                              F:\MCP\projects\CAN\canNode\Source\Main.c
00068c   6ef3     MOVWF     0xf3,0x0                                                                                        
00068e   0e0a     MOVLW     0xa                                                                                             
000690   cff3     MOVFF     0xff3,0xfdb                                                                                     
000692   ffdb                                                                                                               
                                                                                                                            F:\MCP\projects\CAN\canNode\Source\Main.c
000694   cfd9     MOVFF     0xfd9,0xfe9             while(!canSendMessage(cm));                                                   F:\MCP\projects\CAN\canNode\Source\Main.c
000696   ffe9                                                                                                               
000698   cfda     MOVFF     0xfda,0xfea                                                                                     
00069a   ffea                                                                                                               
00069c   cfee     MOVFF     0xfee,0xfe6                                                                                     
00069e   ffe6                                                                                                               
0006a0   cfee     MOVFF     0xfee,0xfe6                                                                                     
0006a2   ffe6                                                                                                               
0006a4   cfee     MOVFF     0xfee,0xfe6                                                                                     
0006a6   ffe6                                                                                                               
0006a8   cfee     MOVFF     0xfee,0xfe6                                                                                     
0006aa   ffe6                                                                                                               
0006ac   cfee     MOVFF     0xfee,0xfe6                                                                                     
0006ae   ffe6                                                                                                               
0006b0   cfee     MOVFF     0xfee,0xfe6                                                                                     
0006b2   ffe6                                                                                                               
0006b4   cfee     MOVFF     0xfee,0xfe6                                                                                     
0006b6   ffe6                                                                                                               
0006b8   cfee     MOVFF     0xfee,0xfe6                                                                                     
0006ba   ffe6                                                                                                               
0006bc   cfee     MOVFF     0xfee,0xfe6                                                                                     
0006be   ffe6                                                                                                               
0006c0   cfee     MOVFF     0xfee,0xfe6                                                                                     
0006c2   ffe6                                                                                                               
0006c4   cfee     MOVFF     0xfee,0xfe6                                                                                     
0006c6   ffe6                                                                                                               
0006c8   cfee     MOVFF     0xfee,0xfe6                                                                                     
0006ca   ffe6                                                                                                               
0006cc   cfee     MOVFF     0xfee,0xfe6                                                                                     
0006ce   ffe6                                                                                                               
0006d0   cfee     MOVFF     0xfee,0xfe6                                                                                     
0006d2   ffe6                                                                                                               
0006d4   ec85     CALL      0x30a,0x0                                                                                       
0006d6   f001                                                                                                               
0006d8   6e1f     MOVWF     0x1f,0x0                                                                                        
0006da   0e0e     MOVLW     0xe                                                                                             
0006dc   5ee1     SUBWF     0xe1,0x1,0x0                                                                                    
0006de   501f     MOVF      0x1f,0x0,0x0                                                                                    
0006e0   0900     IORLW     0x0                                                                                             
0006e2   e0d8     BZ        0x694                                                                                           
                                                                                                                                  F:\MCP\projects\CAN\canNode\Source\Main.c
0006e4   ec90     CALL      0x920,0x0               t=tickGet();                                                                  F:\MCP\projects\CAN\canNode\Source\Main.c
0006e6   f004                                                                                                               
0006e8   c018     MOVFF     0x18,0x6e                                                                                       
0006ea   f06e                                                                                                               
0006ec   c019     MOVFF     0x19,0x6f                                                                                       
0006ee   f06f                                                                                                               
0006f0   c01a     MOVFF     0x1a,0x70                                                                                       
0006f2   f070                                                                                                               
0006f4   c01b     MOVFF     0x1b,0x71                                                                                       
0006f6   f071                                                                                                               
                                                }                                                                              F:\MCP\projects\CAN\canNode\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canNode\Source\Main.c
0006f8   92f2     BCF       0xf2,0x1,0x0        INTCONbits.INT0IF=0;                                                           F:\MCP\projects\CAN\canNode\Source\Main.c
                                            }                                                                               F:\MCP\projects\CAN\canNode\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canNode\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canNode\Source\Main.c
0006fa   ec99     CALL      0x932,0x0       tickUpdate();                                                                   F:\MCP\projects\CAN\canNode\Source\Main.c
0006fc   f004                                                                                                               
0006fe   0e0e     MOVLW     0xe            }                                                                                F:\MCP\projects\CAN\canNode\Source\Main.c
000700   5ce1     SUBWF     0xe1,0x0,0x0                                                                                    
000702   e202     BC        0x708                                                                                           
000704   6ae1     CLRF      0xe1,0x0                                                                                        
000706   52e5     MOVF      0xe5,0x1,0x0                                                                                    
000708   6ee1     MOVWF     0xe1,0x0                                                                                        
00070a   52e5     MOVF      0xe5,0x1,0x0                                                                                    
00070c   cfe7     MOVFF     0xfe7,0xfd9                                                                                     
00070e   ffd9                                                                                                               
000710   52e5     MOVF      0xe5,0x1,0x0                                                                                    
000712   ee00     LFSR      0x0,0x13                                                                                        
000714   f013                                                                                                               
000716   0e14     MOVLW     0x14                                                                                            
000718   04e8     DECF      0xe8,0x0,0x0                                                                                    
00071a   e303     BNC       0x722                                                                                           
00071c   cfe5     MOVFF     0xfe5,0xfed                                                                                     
00071e   ffed                                                                                                               
000720   d7fb     BRA       0x718                                                                                           
000722   ee00     LFSR      0x0,0x1e                                                                                        
000724   f01e                                                                                                               
000726   0e0b     MOVLW     0xb                                                                                             
000728   04e8     DECF      0xe8,0x0,0x0                                                                                    
00072a   e303     BNC       0x732                                                                                           
00072c   cfe5     MOVFF     0xfe5,0xfed                                                                                     
00072e   ffed                                                                                                               
000730   d7fb     BRA       0x728                                                                                           
000732   cfe5     MOVFF     0xfe5,0xffa                                                                                     
000734   fffa                                                                                                               
000736   cfe5     MOVFF     0xfe5,0xff4                                                                                     
000738   fff4                                                                                                               
00073a   cfe5     MOVFF     0xfe5,0xff3                                                                                     
00073c   fff3                                                                                                               
00073e   cfe5     MOVFF     0xfe5,0xff5                                                                                     
000740   fff5                                                                                                               
000742   cfe5     MOVFF     0xfe5,0xff7                                                                                     
000744   fff7                                                                                                               
000746   cfe5     MOVFF     0xfe5,0xff6                                                                                     
000748   fff6                                                                                                               
00074a   cfe5     MOVFF     0xfe5,0xfea                                                                                     
00074c   ffea                                                                                                               
00074e   cfe5     MOVFF     0xfe5,0xfe9                                                                                     
000750   ffe9                                                                                                               
000752   cfe5     MOVFF     0xfe5,0xfda                                                                                     
000754   ffda                                                                                                               
000756   50e5     MOVF      0xe5,0x0,0x0                                                                                    
000758   cfe5     MOVFF     0xfe5,0xfe0                                                                                     
00075a   ffe0                                                                                                               
00075c   cfe5     MOVFF     0xfe5,0xfd8                                                                                     
00075e   ffd8                                                                                                               
000760   0010     RETFIE    0x0                                                                                             
                                           #pragma code highVector=0x08                                                     F:\MCP\projects\CAN\canNode\Source\Main.c
                                           void HighVector (void)                                                           F:\MCP\projects\CAN\canNode\Source\Main.c
                                           {                                                                                F:\MCP\projects\CAN\canNode\Source\Main.c
000008   efcf     GOTO      0x59e              _asm goto HighISR _endasm                                                    F:\MCP\projects\CAN\canNode\Source\Main.c
00000a   f002                                                                                                               
00000c   0012     RETURN    0x0            }                                                                                F:\MCP\projects\CAN\canNode\Source\Main.c
                                           #pragma code // Return to default code section                                   F:\MCP\projects\CAN\canNode\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canNode\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canNode\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canNode\Source\Main.c
                                           #pragma interruptlow LowISR                                                      F:\MCP\projects\CAN\canNode\Source\Main.c
000762   cfd8     MOVFF     0xfd8,0xfe4    void LowISR(void)                                                                F:\MCP\projects\CAN\canNode\Source\Main.c
000764   ffe4                                                                                                               
000766   cfe0     MOVFF     0xfe0,0xfe4                                                                                     
000768   ffe4                                                                                                               
00076a   6ee4     MOVWF     0xe4,0x0                                                                                        
00076c   cfda     MOVFF     0xfda,0xfe4                                                                                     
00076e   ffe4                                                                                                               
000770   52e6     MOVF      0xe6,0x1,0x0                                                                                    
                                           {                                                                                F:\MCP\projects\CAN\canNode\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canNode\Source\Main.c
000772   52e5     MOVF      0xe5,0x1,0x0   }                                                                                F:\MCP\projects\CAN\canNode\Source\Main.c
000774   cfe5     MOVFF     0xfe5,0xfda                                                                                     
000776   ffda                                                                                                               
000778   50e5     MOVF      0xe5,0x0,0x0                                                                                    
00077a   cfe5     MOVFF     0xfe5,0xfe0                                                                                     
00077c   ffe0                                                                                                               
00077e   cfe5     MOVFF     0xfe5,0xfd8                                                                                     
000780   ffd8                                                                                                               
000782   0010     RETFIE    0x0                                                                                             
                                           #pragma code lowVector=0x18                                                      F:\MCP\projects\CAN\canNode\Source\Main.c
                                           void LowVector (void)                                                            F:\MCP\projects\CAN\canNode\Source\Main.c
                                           {                                                                                F:\MCP\projects\CAN\canNode\Source\Main.c
000018   efb1     GOTO      0x762              _asm goto LowISR _endasm                                                     F:\MCP\projects\CAN\canNode\Source\Main.c
00001a   f003                                                                                                               
00001c   0012     RETURN    0x0            }                                                                                F:\MCP\projects\CAN\canNode\Source\Main.c
                                           #pragma code // Return to default code section                                   F:\MCP\projects\CAN\canNode\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canNode\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canNode\Source\Main.c
                                           /*                                                                               F:\MCP\projects\CAN\canNode\Source\Main.c
                                           *    Function: mainInit                                                             F:\MCP\projects\CAN\canNode\Source\Main.c
                                           *                                                                                F:\MCP\projects\CAN\canNode\Source\Main.c
                                           *    Input:  none                                                                    F:\MCP\projects\CAN\canNode\Source\Main.c
                                           *    Output: none                                                                   F:\MCP\projects\CAN\canNode\Source\Main.c
                                           *    Pre-conditions: none                                                           F:\MCP\projects\CAN\canNode\Source\Main.c
                                           *    Affects: Se code                                                               F:\MCP\projects\CAN\canNode\Source\Main.c
                                           *    Depends: none.                                                                 F:\MCP\projects\CAN\canNode\Source\Main.c
                                           */                                                                               F:\MCP\projects\CAN\canNode\Source\Main.c
                                           void mainInit()                                                                  F:\MCP\projects\CAN\canNode\Source\Main.c
                                           {                                                                                F:\MCP\projects\CAN\canNode\Source\Main.c
000784   9294     BCF       0x94,0x1,0x0    LED0_TRIS=0;                                                                       F:\MCP\projects\CAN\canNode\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canNode\Source\Main.c
                                               // Enable internal PORTB pull-ups                                            F:\MCP\projects\CAN\canNode\Source\Main.c
000786   9ef1     BCF       0xf1,0x7,0x0       INTCON2bits.RBPU = 0;                                                        F:\MCP\projects\CAN\canNode\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canNode\Source\Main.c
                                            // Enable Interrupts                                                            F:\MCP\projects\CAN\canNode\Source\Main.c
000788   8ef2     BSF       0xf2,0x7,0x0       INTCONbits.GIEH = 1;                                                         F:\MCP\projects\CAN\canNode\Source\Main.c
00078a   8cf2     BSF       0xf2,0x6,0x0       INTCONbits.GIEL = 1;                                                         F:\MCP\projects\CAN\canNode\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canNode\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canNode\Source\Main.c
                                            // RB0 interrupt                                                                F:\MCP\projects\CAN\canNode\Source\Main.c
00078c   8cf1     BSF       0xf1,0x6,0x0    INTCON2bits.INTEDG0 = 1; //rising edge                                          F:\MCP\projects\CAN\canNode\Source\Main.c
00078e   88f2     BSF       0xf2,0x4,0x0    INTCONbits.INT0IE = 1;                                                           F:\MCP\projects\CAN\canNode\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canNode\Source\Main.c
                                            // Enable interrupt prirority                                                   F:\MCP\projects\CAN\canNode\Source\Main.c
000790   8ed0     BSF       0xd0,0x7,0x0    RCONbits.IPEN=1;                                                                F:\MCP\projects\CAN\canNode\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canNode\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canNode\Source\Main.c
000792   0012     RETURN    0x0            }                                                                                F:\MCP\projects\CAN\canNode\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canNode\Source\Main.c
                                           /*                                                                               F:\MCP\projects\CAN\canNode\Source\Main.c
                                           *    Function: canParse                                                             F:\MCP\projects\CAN\canNode\Source\Main.c
                                           *                                                                                F:\MCP\projects\CAN\canNode\Source\Main.c
                                           *    Input:  Received can message                                                    F:\MCP\projects\CAN\canNode\Source\Main.c
                                           *    Output: none                                                                   F:\MCP\projects\CAN\canNode\Source\Main.c
                                           *    Pre-conditions: canInit and received packet.                                   F:\MCP\projects\CAN\canNode\Source\Main.c
                                           *    Affects: Sensors/actuators/etc. See code.                                      F:\MCP\projects\CAN\canNode\Source\Main.c
                                           *    Depends: none.                                                                 F:\MCP\projects\CAN\canNode\Source\Main.c
                                           */                                                                               F:\MCP\projects\CAN\canNode\Source\Main.c
                                           #ifdef USE_CAN                                                                   F:\MCP\projects\CAN\canNode\Source\Main.c
000794   cfd9     MOVFF     0xfd9,0xfe6    void canParse(CAN_MESSAGE cm)                                                    F:\MCP\projects\CAN\canNode\Source\Main.c
000796   ffe6                                                                                                               
000798   cfe1     MOVFF     0xfe1,0xfd9                                                                                     
00079a   ffd9                                                                                                               
                                           {                                                                                F:\MCP\projects\CAN\canNode\Source\Main.c
00079c   50e1     MOVF      0xe1,0x0,0x0        if (cm.ident==0x00000304)                                                      F:\MCP\projects\CAN\canNode\Source\Main.c
00079e   0ff1     ADDLW     0xf1                                                                                            
0007a0   6ee9     MOVWF     0xe9,0x0                                                                                        
0007a2   0eff     MOVLW     0xff                                                                                            
0007a4   20da     ADDWFC    0xda,0x0,0x0                                                                                    
0007a6   6eea     MOVWF     0xea,0x0                                                                                        
0007a8   0e04     MOVLW     0x4                                                                                             
0007aa   18ee     XORWF     0xee,0x0,0x0                                                                                    
0007ac   e15c     BNZ       0x866                                                                                           
0007ae   0e03     MOVLW     0x3                                                                                             
0007b0   18ee     XORWF     0xee,0x0,0x0                                                                                    
0007b2   e159     BNZ       0x866                                                                                           
0007b4   50ee     MOVF      0xee,0x0,0x0                                                                                    
0007b6   e157     BNZ       0x866                                                                                           
0007b8   50ee     MOVF      0xee,0x0,0x0                                                                                    
0007ba   e155     BNZ       0x866                                                                                           
                                                {                                                                              F:\MCP\projects\CAN\canNode\Source\Main.c
0007bc   0ef7     MOVLW     0xf7                    if (cm.data[0]==0x20) LED0_IO=1;                                              F:\MCP\projects\CAN\canNode\Source\Main.c
0007be   50db     MOVF      0xdb,0x0,0x0                                                                                    
0007c0   0820     SUBLW     0x20                                                                                            
0007c2   e101     BNZ       0x7c6                                                                                           
0007c4   8282     BSF       0x82,0x1,0x0                                                                                    
0007c6   0ef7     MOVLW     0xf7                    if (cm.data[0]==0x40) LED0_IO=0;                                              F:\MCP\projects\CAN\canNode\Source\Main.c
0007c8   50db     MOVF      0xdb,0x0,0x0                                                                                    
0007ca   0840     SUBLW     0x40                                                                                            
0007cc   e101     BNZ       0x7d0                                                                                           
0007ce   9282     BCF       0x82,0x1,0x0                                                                                    
0007d0   0ef7     MOVLW     0xf7                    if (cm.data[0]==0x80)                                                         F:\MCP\projects\CAN\canNode\Source\Main.c
0007d2   50db     MOVF      0xdb,0x0,0x0                                                                                    
0007d4   0880     SUBLW     0x80                                                                                            
0007d6   e147     BNZ       0x866                                                                                           
                                                    {                                                                             F:\MCP\projects\CAN\canNode\Source\Main.c
0007d8   0e03     MOVLW     0x3                         cm.ident=0x00000303;                                                         F:\MCP\projects\CAN\canNode\Source\Main.c
0007da   6ef3     MOVWF     0xf3,0x0                                                                                        
0007dc   0ef1     MOVLW     0xf1                                                                                            
0007de   cff3     MOVFF     0xff3,0xfdb                                                                                     
0007e0   ffdb                                                                                                               
0007e2   0e03     MOVLW     0x3                                                                                             
0007e4   6ef3     MOVWF     0xf3,0x0                                                                                        
0007e6   0ef2     MOVLW     0xf2                                                                                            
0007e8   cff3     MOVFF     0xff3,0xfdb                                                                                     
0007ea   ffdb                                                                                                               
0007ec   0ef3     MOVLW     0xf3                                                                                            
0007ee   6adb     CLRF      0xdb,0x0                                                                                        
0007f0   0ef4     MOVLW     0xf4                                                                                            
0007f2   6adb     CLRF      0xdb,0x0                                                                                        
0007f4   0ef5     MOVLW     0xf5                        cm.extended=FALSE;                                                           F:\MCP\projects\CAN\canNode\Source\Main.c
0007f6   6adb     CLRF      0xdb,0x0                                                                                        
0007f8   0e01     MOVLW     0x1                         cm.data_length=1;                                                            F:\MCP\projects\CAN\canNode\Source\Main.c
0007fa   6ef3     MOVWF     0xf3,0x0                                                                                        
0007fc   0ef6     MOVLW     0xf6                                                                                            
0007fe   cff3     MOVFF     0xff3,0xfdb                                                                                     
000800   ffdb                                                                                                               
000802   5082     MOVF      0x82,0x0,0x0                cm.data[0]=LED0_IO;                                                          F:\MCP\projects\CAN\canNode\Source\Main.c
000804   0b02     ANDLW     0x2                                                                                             
000806   e001     BZ        0x80a                                                                                           
000808   0e01     MOVLW     0x1                                                                                             
00080a   6ee7     MOVWF     0xe7,0x0                                                                                        
00080c   0ef7     MOVLW     0xf7                                                                                            
00080e   cfe7     MOVFF     0xfe7,0xfdb                                                                                     
000810   ffdb                                                                                                               
000812   50d9     MOVF      0xd9,0x0,0x0                while(!canSendMessage(cm));                                                  F:\MCP\projects\CAN\canNode\Source\Main.c
000814   0ff1     ADDLW     0xf1                                                                                            
000816   6ee9     MOVWF     0xe9,0x0                                                                                        
000818   0eff     MOVLW     0xff                                                                                            
00081a   20da     ADDWFC    0xda,0x0,0x0                                                                                    
00081c   6eea     MOVWF     0xea,0x0                                                                                        
00081e   cfee     MOVFF     0xfee,0xfe6                                                                                     
000820   ffe6                                                                                                               
000822   cfee     MOVFF     0xfee,0xfe6                                                                                     
000824   ffe6                                                                                                               
000826   cfee     MOVFF     0xfee,0xfe6                                                                                     
000828   ffe6                                                                                                               
00082a   cfee     MOVFF     0xfee,0xfe6                                                                                     
00082c   ffe6                                                                                                               
00082e   cfee     MOVFF     0xfee,0xfe6                                                                                     
000830   ffe6                                                                                                               
000832   cfee     MOVFF     0xfee,0xfe6                                                                                     
000834   ffe6                                                                                                               
000836   cfee     MOVFF     0xfee,0xfe6                                                                                     
000838   ffe6                                                                                                               
00083a   cfee     MOVFF     0xfee,0xfe6                                                                                     
00083c   ffe6                                                                                                               
00083e   cfee     MOVFF     0xfee,0xfe6                                                                                     
000840   ffe6                                                                                                               
000842   cfee     MOVFF     0xfee,0xfe6                                                                                     
000844   ffe6                                                                                                               
000846   cfee     MOVFF     0xfee,0xfe6                                                                                     
000848   ffe6                                                                                                               
00084a   cfee     MOVFF     0xfee,0xfe6                                                                                     
00084c   ffe6                                                                                                               
00084e   cfee     MOVFF     0xfee,0xfe6                                                                                     
000850   ffe6                                                                                                               
000852   cfee     MOVFF     0xfee,0xfe6                                                                                     
000854   ffe6                                                                                                               
000856   ec85     CALL      0x30a,0x0                                                                                       
000858   f001                                                                                                               
00085a   6e00     MOVWF     0x0,0x0                                                                                         
00085c   0e0e     MOVLW     0xe                                                                                             
00085e   5ee1     SUBWF     0xe1,0x1,0x0                                                                                    
000860   5000     MOVF      0x0,0x0,0x0                                                                                     
000862   0900     IORLW     0x0                                                                                             
000864   e0d6     BZ        0x812                                                                                           
                                                                                                                            F:\MCP\projects\CAN\canNode\Source\Main.c
                                                    }                                                                             F:\MCP\projects\CAN\canNode\Source\Main.c
                                                }                                                                              F:\MCP\projects\CAN\canNode\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canNode\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canNode\Source\Main.c
000866   52e5     MOVF      0xe5,0x1,0x0   }                                                                                F:\MCP\projects\CAN\canNode\Source\Main.c
000868   cfe7     MOVFF     0xfe7,0xfd9                                                                                     
00086a   ffd9                                                                                                               
00086c   0012     RETURN    0x0                                                                                             
                                           #endif                                                                           F:\MCP\projects\CAN\canNode\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canNode\Source\Main.c
                                           /*********************************************************************           F:\MCP\projects\CAN\Source\CAN.c
                                            *                                                                               F:\MCP\projects\CAN\Source\CAN.c
                                            *                  CAN driver                                                   F:\MCP\projects\CAN\Source\CAN.c
                                            *                                                                               F:\MCP\projects\CAN\Source\CAN.c
                                            *********************************************************************           F:\MCP\projects\CAN\Source\CAN.c
                                            * FileName:        CAN.c                                                        F:\MCP\projects\CAN\Source\CAN.c
                                            *                                                                               F:\MCP\projects\CAN\Source\CAN.c
                                            * Author               Date    Comment                                          F:\MCP\projects\CAN\Source\CAN.c
                                            *~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~           F:\MCP\projects\CAN\Source\CAN.c
                                            * Johan Böhlin     21-10-06    Original        (Rev 1.0)                          F:\MCP\projects\CAN\Source\CAN.c
                                            ********************************************************************/           F:\MCP\projects\CAN\Source\CAN.c
                                                                                                                            F:\MCP\projects\CAN\Source\CAN.c
                                           #include <CANdefs.h>                                                             F:\MCP\projects\CAN\Source\CAN.c
                                           #include <stackTasks.h>                                                          F:\MCP\projects\CAN\Source\CAN.c
                                           #include <CAN.h>                                                                 F:\MCP\projects\CAN\Source\CAN.c
                                                                                                                            F:\MCP\projects\CAN\Source\CAN.c
                                           static void canGetPacket(void);                                                  F:\MCP\projects\CAN\Source\CAN.c
                                                                                                                            F:\MCP\projects\CAN\Source\CAN.c
                                           #ifdef USE_CAN                                                                   F:\MCP\projects\CAN\Source\CAN.c
                                                                                                                            F:\MCP\projects\CAN\Source\CAN.c
                                                                                                                            F:\MCP\projects\CAN\Source\CAN.c
                                           /*                                                                               F:\MCP\projects\CAN\Source\CAN.c
                                           *    Function: canInit                                                              F:\MCP\projects\CAN\Source\CAN.c
                                           *                                                                                F:\MCP\projects\CAN\Source\CAN.c
                                           *    Input:  none                                                                    F:\MCP\projects\CAN\Source\CAN.c
                                           *    Output: none                                                                   F:\MCP\projects\CAN\Source\CAN.c
                                           *    Pre-conditions: none                                                           F:\MCP\projects\CAN\Source\CAN.c
                                           *    Affects: Changes can registers.                                                F:\MCP\projects\CAN\Source\CAN.c
                                           *    Depends: none.                                                                 F:\MCP\projects\CAN\Source\CAN.c
                                           */                                                                               F:\MCP\projects\CAN\Source\CAN.c
                                           void canInit()                                                                   F:\MCP\projects\CAN\Source\CAN.c
                                           {                                                                                F:\MCP\projects\CAN\Source\CAN.c
000044   0e80     MOVLW     0x80            CANCON = 0x80; //request config mode                                            F:\MCP\projects\CAN\Source\CAN.c
000046   6e6f     MOVWF     0x6f,0x0                                                                                        
000048   0ee0     MOVLW     0xe0            while ((CANSTAT & 0xE0) != 0x80 ); //wait for config mode request               F:\MCP\projects\CAN\Source\CAN.c
00004a   146e     ANDWF     0x6e,0x0,0x0                                                                                    
00004c   0880     SUBLW     0x80                                                                                            
00004e   e1fc     BNZ       0x48                                                                                            
                                                                                                                            F:\MCP\projects\CAN\Source\CAN.c
                                            // BAUD AND TQS                                                                 F:\MCP\projects\CAN\Source\CAN.c
                                                                                                                            F:\MCP\projects\CAN\Source\CAN.c
000050   6a70     CLRF      0x70,0x0        BRGCON1=0;                                                                      F:\MCP\projects\CAN\Source\CAN.c
                                                                                                                            F:\MCP\projects\CAN\Source\CAN.c
                                            // Sync_Seq = 2 x TQ = 1                                                        F:\MCP\projects\CAN\Source\CAN.c
000052   9e70     BCF       0x70,0x7,0x0    BRGCON1bits.SJW1=0;                                                             F:\MCP\projects\CAN\Source\CAN.c
000054   8c70     BSF       0x70,0x6,0x0    BRGCON1bits.SJW0=1;                                                             F:\MCP\projects\CAN\Source\CAN.c
                                                                                                                            F:\MCP\projects\CAN\Source\CAN.c
                                            // Setting BRP.                                                                 F:\MCP\projects\CAN\Source\CAN.c
000056   0e09     MOVLW     0x9             BRGCON1=BRGCON1|CAN_BRP;                                                        F:\MCP\projects\CAN\Source\CAN.c
000058   1070     IORWF     0x70,0x0,0x0                                                                                    
00005a   6e70     MOVWF     0x70,0x0                                                                                        
                                                                                                                            F:\MCP\projects\CAN\Source\CAN.c
                                            // Maximum PHEG1                                                                F:\MCP\projects\CAN\Source\CAN.c
00005c   8e71     BSF       0x71,0x7,0x0    BRGCON2bits.SEG2PHTS = 1;                                                       F:\MCP\projects\CAN\Source\CAN.c
                                                                                                                            F:\MCP\projects\CAN\Source\CAN.c
                                            // Phase_Seg1 = 2 x TQ = 1                                                      F:\MCP\projects\CAN\Source\CAN.c
00005e   9a71     BCF       0x71,0x5,0x0    BRGCON2bits.SEG1PH2 = 0;                                                        F:\MCP\projects\CAN\Source\CAN.c
000060   9871     BCF       0x71,0x4,0x0    BRGCON2bits.SEG1PH1 = 0;                                                        F:\MCP\projects\CAN\Source\CAN.c
000062   8671     BSF       0x71,0x3,0x0    BRGCON2bits.SEG1PH0 = 1;                                                        F:\MCP\projects\CAN\Source\CAN.c
                                                                                                                            F:\MCP\projects\CAN\Source\CAN.c
                                            // Prop_Seq = 2 x TQ = 1                                                        F:\MCP\projects\CAN\Source\CAN.c
000064   9471     BCF       0x71,0x2,0x0    BRGCON2bits.PRSEG2 = 0;                                                         F:\MCP\projects\CAN\Source\CAN.c
000066   9271     BCF       0x71,0x1,0x0    BRGCON2bits.PRSEG1 = 0;                                                         F:\MCP\projects\CAN\Source\CAN.c
000068   8071     BSF       0x71,0x0,0x0    BRGCON2bits.PRSEG0 = 1;                                                         F:\MCP\projects\CAN\Source\CAN.c
                                                                                                                            F:\MCP\projects\CAN\Source\CAN.c
                                            //  Enableing bus wake-up                                                       F:\MCP\projects\CAN\Source\CAN.c
00006a   9e72     BCF       0x72,0x7,0x0    BRGCON3bits.WAKDIS = 0;                                                         F:\MCP\projects\CAN\Source\CAN.c
                                                                                                                            F:\MCP\projects\CAN\Source\CAN.c
                                            // Dont use filter when wakeup                                                  F:\MCP\projects\CAN\Source\CAN.c
00006c   9c72     BCF       0x72,0x6,0x0    BRGCON3bits.WAKFIL = 0;                                                         F:\MCP\projects\CAN\Source\CAN.c
                                                                                                                            F:\MCP\projects\CAN\Source\CAN.c
                                            // Phase_Seg2 = 2 x TQ = 1                                                      F:\MCP\projects\CAN\Source\CAN.c
00006e   9472     BCF       0x72,0x2,0x0    BRGCON3bits.SEG2PH2 = 0;                                                        F:\MCP\projects\CAN\Source\CAN.c
000070   9272     BCF       0x72,0x1,0x0    BRGCON3bits.SEG2PH1 = 0;                                                        F:\MCP\projects\CAN\Source\CAN.c
000072   8072     BSF       0x72,0x0,0x0    BRGCON3bits.SEG2PH0 = 1;                                                        F:\MCP\projects\CAN\Source\CAN.c
                                                                                                                            F:\MCP\projects\CAN\Source\CAN.c
000074   6a77     CLRF      0x77,0x0        ECANCON=0;                                                                      F:\MCP\projects\CAN\Source\CAN.c
000076   9e77     BCF       0x77,0x7,0x0    ECANCONbits.MDSEL1 = 0;                                                         F:\MCP\projects\CAN\Source\CAN.c
000078   8c77     BSF       0x77,0x6,0x0    ECANCONbits.MDSEL0 = 1;                                                         F:\MCP\projects\CAN\Source\CAN.c
                                                                                                                            F:\MCP\projects\CAN\Source\CAN.c
                                                                                                                            F:\MCP\projects\CAN\Source\CAN.c
                                            // FILTERS AND MASKS                                                            F:\MCP\projects\CAN\Source\CAN.c
00007a   8c60     BSF       0x60,0x6,0x0    RXB0CONbits.RXM1=1;                                                             F:\MCP\projects\CAN\Source\CAN.c
00007c   9a60     BCF       0x60,0x5,0x0    RXB0CONbits.RXM0=0;                                                             F:\MCP\projects\CAN\Source\CAN.c
                                                                                                                            F:\MCP\projects\CAN\Source\CAN.c
                                                                                                                            F:\MCP\projects\CAN\Source\CAN.c
                                            // INTERRUPTS                                                                   F:\MCP\projects\CAN\Source\CAN.c
                                                                                                                            F:\MCP\projects\CAN\Source\CAN.c
                                            // Diable transmit interrupt                                                    F:\MCP\projects\CAN\Source\CAN.c
00007e   010d     MOVLB     0xd             TXBIE = 0;                                                                      F:\MCP\projects\CAN\Source\CAN.c
000080   6bfc     CLRF      0xfc,0x1                                                                                        
                                                                                                                            F:\MCP\projects\CAN\Source\CAN.c
                                            //rx any interrupt                                                              F:\MCP\projects\CAN\Source\CAN.c
000082   6aa4     CLRF      0xa4,0x0        PIR3 = 0;                                                                       F:\MCP\projects\CAN\Source\CAN.c
000084   0e03     MOVLW     0x3             PIE3 = 0b00000011;                                                              F:\MCP\projects\CAN\Source\CAN.c
000086   6ea3     MOVWF     0xa3,0x0                                                                                        
                                                                                                                            F:\MCP\projects\CAN\Source\CAN.c
                                            // High interrupt                                                               F:\MCP\projects\CAN\Source\CAN.c
000088   6ea5     MOVWF     0xa5,0x0        IPR3 =0b00000011;                                                               F:\MCP\projects\CAN\Source\CAN.c
                                                                                                                            F:\MCP\projects\CAN\Source\CAN.c
                                            // Programmable buffers interrupt                                               F:\MCP\projects\CAN\Source\CAN.c
00008a   69fa     SETF      0xfa,0x1        BIE0  = 0xFF;                                                                     F:\MCP\projects\CAN\Source\CAN.c
                                                                                                                            F:\MCP\projects\CAN\Source\CAN.c
                                                                                                                            F:\MCP\projects\CAN\Source\CAN.c
                                            //loopback mode or not                                                          F:\MCP\projects\CAN\Source\CAN.c
                                            #ifdef CAN_LOOPBACK_MODE                                                        F:\MCP\projects\CAN\Source\CAN.c
                                                CANCON = 0x40;//request loopback mode                                          F:\MCP\projects\CAN\Source\CAN.c
                                                while ((CANSTAT & 0xE0) != 0x40 );//wait for loopback mode                     F:\MCP\projects\CAN\Source\CAN.c
                                            #else                                                                           F:\MCP\projects\CAN\Source\CAN.c
00008c   6a6f     CLRF      0x6f,0x0            CANCON = 0x00;//request normal mode                                            F:\MCP\projects\CAN\Source\CAN.c
00008e   0ee0     MOVLW     0xe0                while ((CANSTAT & 0xE0) != 0x00 );//wait for normal mode                       F:\MCP\projects\CAN\Source\CAN.c
000090   146e     ANDWF     0x6e,0x0,0x0                                                                                    
000092   e1fd     BNZ       0x8e                                                                                            
                                            #endif                                                                          F:\MCP\projects\CAN\Source\CAN.c
                                                                                                                            F:\MCP\projects\CAN\Source\CAN.c
000094   0012     RETURN    0x0            }                                                                                F:\MCP\projects\CAN\Source\CAN.c
                                                                                                                            F:\MCP\projects\CAN\Source\CAN.c
                                                                                                                            F:\MCP\projects\CAN\Source\CAN.c
                                           /*                                                                               F:\MCP\projects\CAN\Source\CAN.c
                                           *    Function: canISR                                                               F:\MCP\projects\CAN\Source\CAN.c
                                           *                                                                                F:\MCP\projects\CAN\Source\CAN.c
                                           *    Input:  none                                                                    F:\MCP\projects\CAN\Source\CAN.c
                                           *    Output: none                                                                   F:\MCP\projects\CAN\Source\CAN.c
                                           *    Pre-conditions: a call to canInit()                                            F:\MCP\projects\CAN\Source\CAN.c
                                           *    Affects: interrupt registers and receive data buffers                          F:\MCP\projects\CAN\Source\CAN.c
                                           *    Depends: ..                                                                    F:\MCP\projects\CAN\Source\CAN.c
                                           */                                                                               F:\MCP\projects\CAN\Source\CAN.c
                                           void canISR()                                                                    F:\MCP\projects\CAN\Source\CAN.c
                                           {                                                                                F:\MCP\projects\CAN\Source\CAN.c
                                                                                                                            F:\MCP\projects\CAN\Source\CAN.c
                                                                                                                            F:\MCP\projects\CAN\Source\CAN.c
000096   50a4     MOVF      0xa4,0x0,0x0    if (PIR3bits.RXBnIF || PIR3bits.RXB1IF || PIR3bits.RXB0IF)                      F:\MCP\projects\CAN\Source\CAN.c
000098   0b02     ANDLW     0x2                                                                                             
00009a   e106     BNZ       0xa8                                                                                            
00009c   50a4     MOVF      0xa4,0x0,0x0                                                                                    
00009e   0b02     ANDLW     0x2                                                                                             
0000a0   e103     BNZ       0xa8                                                                                            
0000a2   50a4     MOVF      0xa4,0x0,0x0                                                                                    
0000a4   0b01     ANDLW     0x1                                                                                             
0000a6   e03a     BZ        0x11c                                                                                           
                                            {                                                                               F:\MCP\projects\CAN\Source\CAN.c
                                                // Get which buffer that is ful.                                               F:\MCP\projects\CAN\Source\CAN.c
0000a8   ae60     BTFSS     0x60,0x7,0x0             if (RXB0CONbits.RXFUL) { ECANCON=(ECANCON&0b00000)|0b10000; canGetPacket(); } F:\MCP\projects\CAN\Source\CAN.c
0000aa   d004     BRA       0xb4                                                                                            
0000ac   0e00     MOVLW     0x0                                                                                             
0000ae   1477     ANDWF     0x77,0x0,0x0                                                                                    
0000b0   0910     IORLW     0x10                                                                                            
0000b2   d02b     BRA       0x10a               else if (RXB1CONbits.RXFUL) { ECANCON=(ECANCON&0b00000)|0b10001; canGetPacket(); } F:\MCP\projects\CAN\Source\CAN.c
0000b4   010f     MOVLB     0xf                                                                                             
0000b6   af50     BTFSS     0x50,0x7,0x1                                                                                    
0000b8   d004     BRA       0xc2                                                                                            
0000ba   0e00     MOVLW     0x0                                                                                             
0000bc   1477     ANDWF     0x77,0x0,0x0                                                                                    
0000be   0911     IORLW     0x11                                                                                            
0000c0   d024     BRA       0x10a               else if (B0CONbits.RXFUL)   { ECANCON=(ECANCON&0b00000)|0b10010; canGetPacket(); } F:\MCP\projects\CAN\Source\CAN.c
0000c2   010e     MOVLB     0xe                                                                                             
0000c4   af20     BTFSS     0x20,0x7,0x1                                                                                    
0000c6   d004     BRA       0xd0                                                                                            
0000c8   0e00     MOVLW     0x0                                                                                             
0000ca   1477     ANDWF     0x77,0x0,0x0                                                                                    
0000cc   0912     IORLW     0x12                                                                                            
0000ce   d01d     BRA       0x10a               else if (B1CONbits.RXFUL)   { ECANCON=(ECANCON&0b00000)|0b10011; canGetPacket(); } F:\MCP\projects\CAN\Source\CAN.c
0000d0   af30     BTFSS     0x30,0x7,0x1                                                                                    
0000d2   d004     BRA       0xdc                                                                                            
0000d4   0e00     MOVLW     0x0                                                                                             
0000d6   1477     ANDWF     0x77,0x0,0x0                                                                                    
0000d8   0913     IORLW     0x13                                                                                            
0000da   d017     BRA       0x10a               else if (B2CONbits.RXFUL)   { ECANCON=(ECANCON&0b00000)|0b10100; canGetPacket(); } F:\MCP\projects\CAN\Source\CAN.c
0000dc   af40     BTFSS     0x40,0x7,0x1                                                                                    
0000de   d004     BRA       0xe8                                                                                            
0000e0   0e00     MOVLW     0x0                                                                                             
0000e2   1477     ANDWF     0x77,0x0,0x0                                                                                    
0000e4   0914     IORLW     0x14                                                                                            
0000e6   d011     BRA       0x10a               else if (B3CONbits.RXFUL)   { ECANCON=(ECANCON&0b00000)|0b10101; canGetPacket(); } F:\MCP\projects\CAN\Source\CAN.c
0000e8   af50     BTFSS     0x50,0x7,0x1                                                                                    
0000ea   d004     BRA       0xf4                                                                                            
0000ec   0e00     MOVLW     0x0                                                                                             
0000ee   1477     ANDWF     0x77,0x0,0x0                                                                                    
0000f0   0915     IORLW     0x15                                                                                            
0000f2   d00b     BRA       0x10a               else if (B4CONbits.RXFUL)   { ECANCON=(ECANCON&0b00000)|0b10110; canGetPacket(); } F:\MCP\projects\CAN\Source\CAN.c
0000f4   af60     BTFSS     0x60,0x7,0x1                                                                                    
0000f6   d004     BRA       0x100                                                                                           
0000f8   0e00     MOVLW     0x0                                                                                             
0000fa   1477     ANDWF     0x77,0x0,0x0                                                                                    
0000fc   0916     IORLW     0x16                                                                                            
0000fe   d005     BRA       0x10a               else if (B5CONbits.RXFUL)   { ECANCON=(ECANCON&0b00000)|0b10111; canGetPacket(); } F:\MCP\projects\CAN\Source\CAN.c
000100   af70     BTFSS     0x70,0x7,0x1                                                                                    
000102   d005     BRA       0x10e                                                                                           
000104   0e00     MOVLW     0x0                                                                                             
000106   1477     ANDWF     0x77,0x0,0x0                                                                                    
000108   0917     IORLW     0x17                                                                                            
00010a   6e77     MOVWF     0x77,0x0                                                                                        
00010c   d808     RCALL     0x11e                                                                                           
                                                                                                                            F:\MCP\projects\CAN\Source\CAN.c
00010e   a2a4     BTFSS     0xa4,0x1,0x0        if (PIR3bits.RXBnIF) {PIR3bits.RXBnIF = 0;}                                    F:\MCP\projects\CAN\Source\CAN.c
000110   d003     BRA       0x118                                                                                           
000112   92a4     BCF       0xa4,0x1,0x0                                                                                    
000114   b2a4     BTFSC     0xa4,0x1,0x0        if (PIR3bits.RXB1IF) {PIR3bits.RXB1IF = 0;}                                    F:\MCP\projects\CAN\Source\CAN.c
000116   92a4     BCF       0xa4,0x1,0x0                                                                                    
000118   b0a4     BTFSC     0xa4,0x0,0x0        if (PIR3bits.RXB0IF) {PIR3bits.RXB0IF = 0;}                                    F:\MCP\projects\CAN\Source\CAN.c
00011a   90a4     BCF       0xa4,0x0,0x0                                                                                    
                                                                                                                            F:\MCP\projects\CAN\Source\CAN.c
                                            }                                                                               F:\MCP\projects\CAN\Source\CAN.c
00011c   0012     RETURN    0x0            }                                                                                F:\MCP\projects\CAN\Source\CAN.c
                                                                                                                            F:\MCP\projects\CAN\Source\CAN.c
                                                                                                                            F:\MCP\projects\CAN\Source\CAN.c
                                           /*                                                                               F:\MCP\projects\CAN\Source\CAN.c
                                           *    Function: canGetPacket                                                         F:\MCP\projects\CAN\Source\CAN.c
                                           *                                                                                F:\MCP\projects\CAN\Source\CAN.c
                                           *    Input:  none                                                                    F:\MCP\projects\CAN\Source\CAN.c
                                           *    Output: none                                                                   F:\MCP\projects\CAN\Source\CAN.c
                                           *    Pre-conditions: a call to canISR and an packet is available and banked to RXB0 F:\MCP\projects\CAN\Source\CAN.c
                                           *    Affects: Calls canParse() function in main for parsing received packet.        F:\MCP\projects\CAN\Source\CAN.c
                                           *    Depends: none.                                                                 F:\MCP\projects\CAN\Source\CAN.c
                                           */                                                                               F:\MCP\projects\CAN\Source\CAN.c
00011e   cfd9     MOVFF     0xfd9,0xfe6    void canGetPacket()                                                              F:\MCP\projects\CAN\Source\CAN.c
000120   ffe6                                                                                                               
000122   cfe1     MOVFF     0xfe1,0xfd9                                                                                     
000124   ffd9                                                                                                               
000126   0e0e     MOVLW     0xe                                                                                             
000128   26e1     ADDWF     0xe1,0x1,0x0                                                                                    
                                           {                                                                                F:\MCP\projects\CAN\Source\CAN.c
                                                CAN_MESSAGE cm;                                                                F:\MCP\projects\CAN\Source\CAN.c
                                                                                                                            F:\MCP\projects\CAN\Source\CAN.c
                                                // Set extended mode or not.                                                   F:\MCP\projects\CAN\Source\CAN.c
00012a   5062     MOVF      0x62,0x0,0x0        cm.extended=(RXB0SIDLbits.EXID==0?FALSE:TRUE);                                 F:\MCP\projects\CAN\Source\CAN.c
00012c   0b08     ANDLW     0x8                                                                                             
00012e   e102     BNZ       0x134                                                                                           
000130   0e00     MOVLW     0x0                                                                                             
000132   d001     BRA       0x136                                                                                           
000134   0e01     MOVLW     0x1                                                                                             
000136   6ee7     MOVWF     0xe7,0x0                                                                                        
000138   0e04     MOVLW     0x4                                                                                             
00013a   cfe7     MOVFF     0xfe7,0xfdb                                                                                     
00013c   ffdb                                                                                                               
                                                                                                                            F:\MCP\projects\CAN\Source\CAN.c
                                                // Clear                                                                       F:\MCP\projects\CAN\Source\CAN.c
00013e   6ade     CLRF      0xde,0x0            cm.ident=0;                                                                    F:\MCP\projects\CAN\Source\CAN.c
000140   6ade     CLRF      0xde,0x0                                                                                        
000142   6ade     CLRF      0xde,0x0                                                                                        
000144   6add     CLRF      0xdd,0x0                                                                                        
000146   52dd     MOVF      0xdd,0x1,0x0                                                                                    
000148   52dd     MOVF      0xdd,0x1,0x0                                                                                    
                                                                                                                            F:\MCP\projects\CAN\Source\CAN.c
                                                                                                                            F:\MCP\projects\CAN\Source\CAN.c
00014a   04db     DECF      0xdb,0x0,0x0        if (cm.extended==TRUE)                                                         F:\MCP\projects\CAN\Source\CAN.c
00014c   e163     BNZ       0x214                                                                                           
                                                {                                                                              F:\MCP\projects\CAN\Source\CAN.c
                                                    //Read extended ident.                                                        F:\MCP\projects\CAN\Source\CAN.c
                                                                                                                            F:\MCP\projects\CAN\Source\CAN.c
                                                    //xx xx xx 28 27 26 25 24   23 22 21 20 19 18 17 16   15 14 13 12 11 10 09 08   07 06 05 04 03 02 01 00 F:\MCP\projects\CAN\Source\CAN.c
                                                                                                                            F:\MCP\projects\CAN\Source\CAN.c
                                                    //RXB0SIDH 28 27 26 25 24 23 22 21                                      F:\MCP\projects\CAN\Source\CAN.c
                                                    //RXB0SIDL 20 19 18 xx xx xx 17 16                                      F:\MCP\projects\CAN\Source\CAN.c
                                                    //RXB0EIDH 15 14 13 12 11 10 09 08                                      F:\MCP\projects\CAN\Source\CAN.c
                                                    //RXB0EIDL 07 06 05 04 03 02 01 00                                      F:\MCP\projects\CAN\Source\CAN.c
                                                                                                                            F:\MCP\projects\CAN\Source\CAN.c
                                                                                                                            F:\MCP\projects\CAN\Source\CAN.c
00014e   5061     MOVF      0x61,0x0,0x0            cm.ident = (((DWORD)RXB0SIDH)<<21) + (((DWORD)(RXB0SIDL & 0xE0))<<13) + (((DWORD)(RXB0SIDL & 0x03))<<16) + (((DWORD)RXB0EIDH)<<8) + (BYTE)RXB0EIDL; F:\MCP\projects\CAN\Source\CAN.c
000150   6e00     MOVWF     0x0,0x0                                                                                         
000152   6a01     CLRF      0x1,0x0                                                                                         
000154   6a02     CLRF      0x2,0x0                                                                                         
000156   6a03     CLRF      0x3,0x0                                                                                         
000158   0e15     MOVLW     0x15                                                                                            
00015a   0b1f     ANDLW     0x1f                                                                                            
00015c   e007     BZ        0x16c                                                                                           
00015e   90d8     BCF       0xd8,0x0,0x0                                                                                    
000160   3600     RLCF      0x0,0x1,0x0                                                                                     
000162   3601     RLCF      0x1,0x1,0x0                                                                                     
000164   3602     RLCF      0x2,0x1,0x0                                                                                     
000166   3603     RLCF      0x3,0x1,0x0                                                                                     
000168   06e8     DECF      0xe8,0x1,0x0                                                                                    
00016a   e1f9     BNZ       0x15e                                                                                           
00016c   0ee0     MOVLW     0xe0                                                                                            
00016e   1462     ANDWF     0x62,0x0,0x0                                                                                    
000170   6e04     MOVWF     0x4,0x0                                                                                         
000172   6a05     CLRF      0x5,0x0                                                                                         
000174   6a06     CLRF      0x6,0x0                                                                                         
000176   6a07     CLRF      0x7,0x0                                                                                         
000178   0e0d     MOVLW     0xd                                                                                             
00017a   0b1f     ANDLW     0x1f                                                                                            
00017c   e007     BZ        0x18c                                                                                           
00017e   90d8     BCF       0xd8,0x0,0x0                                                                                    
000180   3604     RLCF      0x4,0x1,0x0                                                                                     
000182   3605     RLCF      0x5,0x1,0x0                                                                                     
000184   3606     RLCF      0x6,0x1,0x0                                                                                     
000186   3607     RLCF      0x7,0x1,0x0                                                                                     
000188   06e8     DECF      0xe8,0x1,0x0                                                                                    
00018a   e1f9     BNZ       0x17e                                                                                           
00018c   5004     MOVF      0x4,0x0,0x0                                                                                     
00018e   2600     ADDWF     0x0,0x1,0x0                                                                                     
000190   5005     MOVF      0x5,0x0,0x0                                                                                     
000192   2201     ADDWFC    0x1,0x1,0x0                                                                                     
000194   5006     MOVF      0x6,0x0,0x0                                                                                     
000196   2202     ADDWFC    0x2,0x1,0x0                                                                                     
000198   5007     MOVF      0x7,0x0,0x0                                                                                     
00019a   2203     ADDWFC    0x3,0x1,0x0                                                                                     
00019c   0e03     MOVLW     0x3                                                                                             
00019e   1462     ANDWF     0x62,0x0,0x0                                                                                    
0001a0   6e08     MOVWF     0x8,0x0                                                                                         
0001a2   6a09     CLRF      0x9,0x0                                                                                         
0001a4   6a0a     CLRF      0xa,0x0                                                                                         
0001a6   6a0b     CLRF      0xb,0x0                                                                                         
0001a8   0e10     MOVLW     0x10                                                                                            
0001aa   0b1f     ANDLW     0x1f                                                                                            
0001ac   e007     BZ        0x1bc                                                                                           
0001ae   90d8     BCF       0xd8,0x0,0x0                                                                                    
0001b0   3608     RLCF      0x8,0x1,0x0                                                                                     
0001b2   3609     RLCF      0x9,0x1,0x0                                                                                     
0001b4   360a     RLCF      0xa,0x1,0x0                                                                                     
0001b6   360b     RLCF      0xb,0x1,0x0                                                                                     
0001b8   06e8     DECF      0xe8,0x1,0x0                                                                                    
0001ba   e1f9     BNZ       0x1ae                                                                                           
0001bc   5008     MOVF      0x8,0x0,0x0                                                                                     
0001be   2600     ADDWF     0x0,0x1,0x0                                                                                     
0001c0   5009     MOVF      0x9,0x0,0x0                                                                                     
0001c2   2201     ADDWFC    0x1,0x1,0x0                                                                                     
0001c4   500a     MOVF      0xa,0x0,0x0                                                                                     
0001c6   2202     ADDWFC    0x2,0x1,0x0                                                                                     
0001c8   500b     MOVF      0xb,0x0,0x0                                                                                     
0001ca   2203     ADDWFC    0x3,0x1,0x0                                                                                     
0001cc   5063     MOVF      0x63,0x0,0x0                                                                                    
0001ce   6e0c     MOVWF     0xc,0x0                                                                                         
0001d0   6a0d     CLRF      0xd,0x0                                                                                         
0001d2   6a0e     CLRF      0xe,0x0                                                                                         
0001d4   6a0f     CLRF      0xf,0x0                                                                                         
0001d6   0e08     MOVLW     0x8                                                                                             
0001d8   0b1f     ANDLW     0x1f                                                                                            
0001da   e007     BZ        0x1ea                                                                                           
0001dc   90d8     BCF       0xd8,0x0,0x0                                                                                    
0001de   360c     RLCF      0xc,0x1,0x0                                                                                     
0001e0   360d     RLCF      0xd,0x1,0x0                                                                                     
0001e2   360e     RLCF      0xe,0x1,0x0                                                                                     
0001e4   360f     RLCF      0xf,0x1,0x0                                                                                     
0001e6   06e8     DECF      0xe8,0x1,0x0                                                                                    
0001e8   e1f9     BNZ       0x1dc                                                                                           
0001ea   500c     MOVF      0xc,0x0,0x0                                                                                     
0001ec   2600     ADDWF     0x0,0x1,0x0                                                                                     
0001ee   500d     MOVF      0xd,0x0,0x0                                                                                     
0001f0   2201     ADDWFC    0x1,0x1,0x0                                                                                     
0001f2   500e     MOVF      0xe,0x0,0x0                                                                                     
0001f4   2202     ADDWFC    0x2,0x1,0x0                                                                                     
0001f6   500f     MOVF      0xf,0x0,0x0                                                                                     
0001f8   2203     ADDWFC    0x3,0x1,0x0                                                                                     
0001fa   5064     MOVF      0x64,0x0,0x0                                                                                    
0001fc   6e10     MOVWF     0x10,0x0                                                                                        
0001fe   6a11     CLRF      0x11,0x0                                                                                        
000200   6a12     CLRF      0x12,0x0                                                                                        
000202   6a13     CLRF      0x13,0x0                                                                                        
000204   50e8     MOVF      0xe8,0x0,0x0                                                                                    
000206   2600     ADDWF     0x0,0x1,0x0                                                                                     
000208   5011     MOVF      0x11,0x0,0x0                                                                                    
00020a   2201     ADDWFC    0x1,0x1,0x0                                                                                     
00020c   5012     MOVF      0x12,0x0,0x0                                                                                    
00020e   2202     ADDWFC    0x2,0x1,0x0                                                                                     
000210   5013     MOVF      0x13,0x0,0x0                                                                                    
                                                                                                                            F:\MCP\projects\CAN\Source\CAN.c
                                                }                                                                              F:\MCP\projects\CAN\Source\CAN.c
000212   d023     BRA       0x25a               else                                                                           F:\MCP\projects\CAN\Source\CAN.c
                                                {                                                                              F:\MCP\projects\CAN\Source\CAN.c
                                                    //Read standard ident.                                                        F:\MCP\projects\CAN\Source\CAN.c
                                                                                                                            F:\MCP\projects\CAN\Source\CAN.c
                                                    //xx xx xx xx xx 10 09 08   07 06 05 04 03 02 01 00                           F:\MCP\projects\CAN\Source\CAN.c
                                                                                                                            F:\MCP\projects\CAN\Source\CAN.c
                                                    //RXB0SIDH 10 09 08 07 06 05 04 03                                      F:\MCP\projects\CAN\Source\CAN.c
                                                    //RXB0SIDL 02 01 00 xx xx xx xx xx                                      F:\MCP\projects\CAN\Source\CAN.c
                                                                                                                            F:\MCP\projects\CAN\Source\CAN.c
000214   5061     MOVF      0x61,0x0,0x0            cm.ident = (((DWORD)RXB0SIDH)<<3) + (((DWORD)RXB0SIDL)>>5);                   F:\MCP\projects\CAN\Source\CAN.c
000216   6e00     MOVWF     0x0,0x0                                                                                         
000218   6a01     CLRF      0x1,0x0                                                                                         
00021a   6a02     CLRF      0x2,0x0                                                                                         
00021c   6a03     CLRF      0x3,0x0                                                                                         
00021e   0e03     MOVLW     0x3                                                                                             
000220   0b1f     ANDLW     0x1f                                                                                            
000222   e007     BZ        0x232                                                                                           
000224   90d8     BCF       0xd8,0x0,0x0                                                                                    
000226   3600     RLCF      0x0,0x1,0x0                                                                                     
000228   3601     RLCF      0x1,0x1,0x0                                                                                     
00022a   3602     RLCF      0x2,0x1,0x0                                                                                     
00022c   3603     RLCF      0x3,0x1,0x0                                                                                     
00022e   06e8     DECF      0xe8,0x1,0x0                                                                                    
000230   e1f9     BNZ       0x224                                                                                           
000232   5062     MOVF      0x62,0x0,0x0                                                                                    
000234   6e04     MOVWF     0x4,0x0                                                                                         
000236   6a05     CLRF      0x5,0x0                                                                                         
000238   6a06     CLRF      0x6,0x0                                                                                         
00023a   6a07     CLRF      0x7,0x0                                                                                         
00023c   0e05     MOVLW     0x5                                                                                             
00023e   90d8     BCF       0xd8,0x0,0x0                                                                                    
000240   3207     RRCF      0x7,0x1,0x0                                                                                     
000242   3206     RRCF      0x6,0x1,0x0                                                                                     
000244   3205     RRCF      0x5,0x1,0x0                                                                                     
000246   3204     RRCF      0x4,0x1,0x0                                                                                     
000248   06e8     DECF      0xe8,0x1,0x0                                                                                    
00024a   e1f9     BNZ       0x23e                                                                                           
00024c   5004     MOVF      0x4,0x0,0x0                                                                                     
00024e   2600     ADDWF     0x0,0x1,0x0                                                                                     
000250   5005     MOVF      0x5,0x0,0x0                                                                                     
000252   2201     ADDWFC    0x1,0x1,0x0                                                                                     
000254   5006     MOVF      0x6,0x0,0x0                                                                                     
000256   2202     ADDWFC    0x2,0x1,0x0                                                                                     
000258   5007     MOVF      0x7,0x0,0x0                                                                                     
00025a   2203     ADDWFC    0x3,0x1,0x0                                                                                     
00025c   c000     MOVFF     0x0,0xfdf                                                                                       
00025e   ffdf                                                                                                               
000260   0e01     MOVLW     0x1                                                                                             
000262   c001     MOVFF     0x1,0xfdb                                                                                       
000264   ffdb                                                                                                               
000266   0e02     MOVLW     0x2                                                                                             
000268   c002     MOVFF     0x2,0xfdb                                                                                       
00026a   ffdb                                                                                                               
00026c   0e03     MOVLW     0x3                                                                                             
00026e   c003     MOVFF     0x3,0xfdb                                                                                       
000270   ffdb                                                                                                               
                                                }                                                                              F:\MCP\projects\CAN\Source\CAN.c
                                                                                                                            F:\MCP\projects\CAN\Source\CAN.c
                                                // Data length                                                                 F:\MCP\projects\CAN\Source\CAN.c
000272   0e05     MOVLW     0x5                 cm.data_length=RXB0DLC;                                                        F:\MCP\projects\CAN\Source\CAN.c
000274   cf65     MOVFF     0xf65,0xfdb                                                                                     
000276   ffdb                                                                                                               
                                                                                                                            F:\MCP\projects\CAN\Source\CAN.c
                                                // Data one bye one, for speed                                                 F:\MCP\projects\CAN\Source\CAN.c
000278   0e06     MOVLW     0x6                 cm.data[0]=RXB0D0;  cm.data[1]=RXB0D1;                                          F:\MCP\projects\CAN\Source\CAN.c
00027a   cf66     MOVFF     0xf66,0xfdb                                                                                     
00027c   ffdb                                                                                                               
00027e   0e07     MOVLW     0x7                                                                                             
000280   cf67     MOVFF     0xf67,0xfdb                                                                                     
000282   ffdb                                                                                                               
000284   0e08     MOVLW     0x8                 cm.data[2]=RXB0D2;  cm.data[3]=RXB0D3;                                         F:\MCP\projects\CAN\Source\CAN.c
000286   cf68     MOVFF     0xf68,0xfdb                                                                                     
000288   ffdb                                                                                                               
00028a   0e09     MOVLW     0x9                                                                                             
00028c   cf69     MOVFF     0xf69,0xfdb                                                                                     
00028e   ffdb                                                                                                               
000290   0e0a     MOVLW     0xa                 cm.data[4]=RXB0D4;  cm.data[5]=RXB0D5;                                         F:\MCP\projects\CAN\Source\CAN.c
000292   cf6a     MOVFF     0xf6a,0xfdb                                                                                     
000294   ffdb                                                                                                               
000296   0e0b     MOVLW     0xb                                                                                             
000298   cf6b     MOVFF     0xf6b,0xfdb                                                                                     
00029a   ffdb                                                                                                               
00029c   0e0c     MOVLW     0xc                 cm.data[6]=RXB0D6;  cm.data[7]=RXB0D7;                                         F:\MCP\projects\CAN\Source\CAN.c
00029e   cf6c     MOVFF     0xf6c,0xfdb                                                                                     
0002a0   ffdb                                                                                                               
0002a2   0e0d     MOVLW     0xd                                                                                             
0002a4   cf6d     MOVFF     0xf6d,0xfdb                                                                                     
0002a6   ffdb                                                                                                               
                                                                                                                            F:\MCP\projects\CAN\Source\CAN.c
                                                // Clear ful status                                                            F:\MCP\projects\CAN\Source\CAN.c
0002a8   9e60     BCF       0x60,0x7,0x0        RXB0CONbits.RXFUL=0;                                                           F:\MCP\projects\CAN\Source\CAN.c
                                                                                                                            F:\MCP\projects\CAN\Source\CAN.c
                                                //Call main parser                                                             F:\MCP\projects\CAN\Source\CAN.c
0002aa   cfd9     MOVFF     0xfd9,0xfe9         canParse(cm);                                                                  F:\MCP\projects\CAN\Source\CAN.c
0002ac   ffe9                                                                                                               
0002ae   cfda     MOVFF     0xfda,0xfea                                                                                     
0002b0   ffea                                                                                                               
0002b2   cfee     MOVFF     0xfee,0xfe6                                                                                     
0002b4   ffe6                                                                                                               
0002b6   cfee     MOVFF     0xfee,0xfe6                                                                                     
0002b8   ffe6                                                                                                               
0002ba   cfee     MOVFF     0xfee,0xfe6                                                                                     
0002bc   ffe6                                                                                                               
0002be   cfee     MOVFF     0xfee,0xfe6                                                                                     
0002c0   ffe6                                                                                                               
0002c2   cfee     MOVFF     0xfee,0xfe6                                                                                     
0002c4   ffe6                                                                                                               
0002c6   cfee     MOVFF     0xfee,0xfe6                                                                                     
0002c8   ffe6                                                                                                               
0002ca   cfee     MOVFF     0xfee,0xfe6                                                                                     
0002cc   ffe6                                                                                                               
0002ce   cfee     MOVFF     0xfee,0xfe6                                                                                     
0002d0   ffe6                                                                                                               
0002d2   cfee     MOVFF     0xfee,0xfe6                                                                                     
0002d4   ffe6                                                                                                               
0002d6   cfee     MOVFF     0xfee,0xfe6                                                                                     
0002d8   ffe6                                                                                                               
0002da   cfee     MOVFF     0xfee,0xfe6                                                                                     
0002dc   ffe6                                                                                                               
0002de   cfee     MOVFF     0xfee,0xfe6                                                                                     
0002e0   ffe6                                                                                                               
0002e2   cfee     MOVFF     0xfee,0xfe6                                                                                     
0002e4   ffe6                                                                                                               
0002e6   cfee     MOVFF     0xfee,0xfe6                                                                                     
0002e8   ffe6                                                                                                               
0002ea   ecca     CALL      0x794,0x0                                                                                       
0002ec   f003                                                                                                               
0002ee   6e00     MOVWF     0x0,0x0                                                                                         
0002f0   0e0e     MOVLW     0xe                                                                                             
0002f2   5ee1     SUBWF     0xe1,0x1,0x0                                                                                    
0002f4   5000     MOVF      0x0,0x0,0x0                                                                                     
0002f6   0e0e     MOVLW     0xe            }                                                                                F:\MCP\projects\CAN\Source\CAN.c
0002f8   5ce1     SUBWF     0xe1,0x0,0x0                                                                                    
0002fa   e202     BC        0x300                                                                                           
0002fc   6ae1     CLRF      0xe1,0x0                                                                                        
0002fe   52e5     MOVF      0xe5,0x1,0x0                                                                                    
000300   6ee1     MOVWF     0xe1,0x0                                                                                        
000302   52e5     MOVF      0xe5,0x1,0x0                                                                                    
000304   cfe7     MOVFF     0xfe7,0xfd9                                                                                     
000306   ffd9                                                                                                               
000308   0012     RETURN    0x0                                                                                             
                                                                                                                            F:\MCP\projects\CAN\Source\CAN.c
                                                                                                                            F:\MCP\projects\CAN\Source\CAN.c
                                           /*                                                                               F:\MCP\projects\CAN\Source\CAN.c
                                           *    Function: canSendMessage                                                       F:\MCP\projects\CAN\Source\CAN.c
                                           *                                                                                F:\MCP\projects\CAN\Source\CAN.c
                                           *    Input:  CAN_MESSAGE to send                                                     F:\MCP\projects\CAN\Source\CAN.c
                                           *    Output: True if packet scheduled sucess, false otherwise.                      F:\MCP\projects\CAN\Source\CAN.c
                                           *    Pre-conditions: canInit                                                        F:\MCP\projects\CAN\Source\CAN.c
                                           *    Affects: ..                                                                    F:\MCP\projects\CAN\Source\CAN.c
                                           *    Depends: ..                                                                    F:\MCP\projects\CAN\Source\CAN.c
                                           */                                                                               F:\MCP\projects\CAN\Source\CAN.c
00030a   cfd9     MOVFF     0xfd9,0xfe6    BOOL canSendMessage(CAN_MESSAGE cm)                                              F:\MCP\projects\CAN\Source\CAN.c
00030c   ffe6                                                                                                               
00030e   cfe1     MOVFF     0xfe1,0xfd9                                                                                     
000310   ffd9                                                                                                               
                                           {                                                                                F:\MCP\projects\CAN\Source\CAN.c
                                                                                                                            F:\MCP\projects\CAN\Source\CAN.c
000312   010f     MOVLB     0xf             if ( TXB0CONbits.TXREQ == 0 )  { ECANCON=(ECANCON&0b00000)|0b00011; }           F:\MCP\projects\CAN\Source\CAN.c
000314   b740     BTFSC     0x40,0x3,0x1                                                                                    
000316   d004     BRA       0x320                                                                                           
000318   0e00     MOVLW     0x0                                                                                             
00031a   1477     ANDWF     0x77,0x0,0x0                                                                                    
00031c   0903     IORLW     0x3                                                                                             
00031e   6e77     MOVWF     0x77,0x0                                                                                        
000320   010f     MOVLB     0xf             if ( TXB1CONbits.TXREQ == 0 )  { ECANCON=(ECANCON&0b00000)|0b00100; }           F:\MCP\projects\CAN\Source\CAN.c
000322   b730     BTFSC     0x30,0x3,0x1                                                                                    
000324   d004     BRA       0x32e                                                                                           
000326   0e00     MOVLW     0x0                                                                                             
000328   1477     ANDWF     0x77,0x0,0x0                                                                                    
00032a   0904     IORLW     0x4                                                                                             
00032c   6e77     MOVWF     0x77,0x0                                                                                        
00032e   010f     MOVLB     0xf             if ( TXB2CONbits.TXREQ == 0 )  { ECANCON=(ECANCON&0b00000)|0b00101; }           F:\MCP\projects\CAN\Source\CAN.c
000330   b720     BTFSC     0x20,0x3,0x1                                                                                    
000332   d005     BRA       0x33e                                                                                           
000334   0e00     MOVLW     0x0                                                                                             
000336   1477     ANDWF     0x77,0x0,0x0                                                                                    
000338   0905     IORLW     0x5                                                                                             
00033a   6e77     MOVWF     0x77,0x0                                                                                        
                                            // None of the transmit buffers were empty.                                     F:\MCP\projects\CAN\Source\CAN.c
00033c   d002     BRA       0x342           else { return FALSE;}                                                           F:\MCP\projects\CAN\Source\CAN.c
00033e   0e00     MOVLW     0x0                                                                                             
000340   d0c0     BRA       0x4c2                                                                                           
                                                                                                                            F:\MCP\projects\CAN\Source\CAN.c
                                                                                                                            F:\MCP\projects\CAN\Source\CAN.c
000342   0ef5     MOVLW     0xf5                if (cm.extended==TRUE)                                                         F:\MCP\projects\CAN\Source\CAN.c
000344   04db     DECF      0xdb,0x0,0x0                                                                                    
000346   e15f     BNZ       0x406                                                                                           
                                                {                                                                              F:\MCP\projects\CAN\Source\CAN.c
                                                    //Write extended ident.                                                       F:\MCP\projects\CAN\Source\CAN.c
                                                                                                                            F:\MCP\projects\CAN\Source\CAN.c
                                                    //xx xx xx 28 27 26 25 24   23 22 21 20 19 18 17 16   15 14 13 12 11 10 09 08   07 06 05 04 03 02 01 00 F:\MCP\projects\CAN\Source\CAN.c
                                                                                                                            F:\MCP\projects\CAN\Source\CAN.c
                                                    //RXB0SIDH 28 27 26 25 24 23 22 21                                      F:\MCP\projects\CAN\Source\CAN.c
                                                    //RXB0SIDL 20 19 18 xx xx xx 17 16                                      F:\MCP\projects\CAN\Source\CAN.c
                                                    //RXB0EIDH 15 14 13 12 11 10 09 08                                      F:\MCP\projects\CAN\Source\CAN.c
                                                    //RXB0EIDL 07 06 05 04 03 02 01 00                                      F:\MCP\projects\CAN\Source\CAN.c
                                                                                                                            F:\MCP\projects\CAN\Source\CAN.c
                                                                                                                            F:\MCP\projects\CAN\Source\CAN.c
000348   0ef1     MOVLW     0xf1                    RXB0SIDH =  (BYTE)((cm.ident>>21));                                     F:\MCP\projects\CAN\Source\CAN.c
00034a   cfdb     MOVFF     0xfdb,0x0                                                                                       
00034c   f000                                                                                                               
00034e   0ef2     MOVLW     0xf2                                                                                            
000350   cfdb     MOVFF     0xfdb,0x1                                                                                       
000352   f001                                                                                                               
000354   0ef3     MOVLW     0xf3                                                                                            
000356   cfdb     MOVFF     0xfdb,0x2                                                                                       
000358   f002                                                                                                               
00035a   0ef4     MOVLW     0xf4                                                                                            
00035c   cfdb     MOVFF     0xfdb,0x3                                                                                       
00035e   f003                                                                                                               
000360   0e15     MOVLW     0x15                                                                                            
000362   90d8     BCF       0xd8,0x0,0x0                                                                                    
000364   3203     RRCF      0x3,0x1,0x0                                                                                     
000366   3202     RRCF      0x2,0x1,0x0                                                                                     
000368   3201     RRCF      0x1,0x1,0x0                                                                                     
00036a   3200     RRCF      0x0,0x1,0x0                                                                                     
00036c   06e8     DECF      0xe8,0x1,0x0                                                                                    
00036e   e1f9     BNZ       0x362                                                                                           
000370   5000     MOVF      0x0,0x0,0x0                                                                                     
000372   6e61     MOVWF     0x61,0x0                                                                                        
000374   0ef1     MOVLW     0xf1                    RXB0SIDL = ((BYTE)(cm.ident>>16) & 0x03) + ((BYTE)(cm.ident>>13) & 0xE0); F:\MCP\projects\CAN\Source\CAN.c
000376   cfdb     MOVFF     0xfdb,0x5                                                                                       
000378   f005                                                                                                               
00037a   0ef2     MOVLW     0xf2                                                                                            
00037c   cfdb     MOVFF     0xfdb,0x6                                                                                       
00037e   f006                                                                                                               
000380   0ef3     MOVLW     0xf3                                                                                            
000382   cfdb     MOVFF     0xfdb,0x7                                                                                       
000384   f007                                                                                                               
000386   0ef4     MOVLW     0xf4                                                                                            
000388   cfdb     MOVFF     0xfdb,0x8                                                                                       
00038a   f008                                                                                                               
00038c   0e0d     MOVLW     0xd                                                                                             
00038e   90d8     BCF       0xd8,0x0,0x0                                                                                    
000390   3208     RRCF      0x8,0x1,0x0                                                                                     
000392   3207     RRCF      0x7,0x1,0x0                                                                                     
000394   3206     RRCF      0x6,0x1,0x0                                                                                     
000396   3205     RRCF      0x5,0x1,0x0                                                                                     
000398   06e8     DECF      0xe8,0x1,0x0                                                                                    
00039a   e1f9     BNZ       0x38e                                                                                           
00039c   0ee0     MOVLW     0xe0                                                                                            
00039e   1405     ANDWF     0x5,0x0,0x0                                                                                     
0003a0   6e04     MOVWF     0x4,0x0                                                                                         
0003a2   0ef1     MOVLW     0xf1                                                                                            
0003a4   cfdb     MOVFF     0xfdb,0x0                                                                                       
0003a6   f000                                                                                                               
0003a8   0ef2     MOVLW     0xf2                                                                                            
0003aa   cfdb     MOVFF     0xfdb,0x1                                                                                       
0003ac   f001                                                                                                               
0003ae   0ef3     MOVLW     0xf3                                                                                            
0003b0   cfdb     MOVFF     0xfdb,0x2                                                                                       
0003b2   f002                                                                                                               
0003b4   0ef4     MOVLW     0xf4                                                                                            
0003b6   cfdb     MOVFF     0xfdb,0x3                                                                                       
0003b8   f003                                                                                                               
0003ba   0e10     MOVLW     0x10                                                                                            
0003bc   90d8     BCF       0xd8,0x0,0x0                                                                                    
0003be   3203     RRCF      0x3,0x1,0x0                                                                                     
0003c0   3202     RRCF      0x2,0x1,0x0                                                                                     
0003c2   3201     RRCF      0x1,0x1,0x0                                                                                     
0003c4   3200     RRCF      0x0,0x1,0x0                                                                                     
0003c6   06e8     DECF      0xe8,0x1,0x0                                                                                    
0003c8   e1f9     BNZ       0x3bc                                                                                           
0003ca   0e03     MOVLW     0x3                                                                                             
0003cc   1400     ANDWF     0x0,0x0,0x0                                                                                     
0003ce   2404     ADDWF     0x4,0x0,0x0                                                                                     
0003d0   6e62     MOVWF     0x62,0x0                                                                                        
0003d2   0ef1     MOVLW     0xf1                    RXB0EIDH =  (BYTE)(cm.ident>>8);                                        F:\MCP\projects\CAN\Source\CAN.c
0003d4   cfdb     MOVFF     0xfdb,0x0                                                                                       
0003d6   f000                                                                                                               
0003d8   0ef2     MOVLW     0xf2                                                                                            
0003da   cfdb     MOVFF     0xfdb,0x1                                                                                       
0003dc   f001                                                                                                               
0003de   0ef3     MOVLW     0xf3                                                                                            
0003e0   cfdb     MOVFF     0xfdb,0x2                                                                                       
0003e2   f002                                                                                                               
0003e4   0ef4     MOVLW     0xf4                                                                                            
0003e6   cfdb     MOVFF     0xfdb,0x3                                                                                       
0003e8   f003                                                                                                               
0003ea   0e08     MOVLW     0x8                                                                                             
0003ec   90d8     BCF       0xd8,0x0,0x0                                                                                    
0003ee   3203     RRCF      0x3,0x1,0x0                                                                                     
0003f0   3202     RRCF      0x2,0x1,0x0                                                                                     
0003f2   3201     RRCF      0x1,0x1,0x0                                                                                     
0003f4   3200     RRCF      0x0,0x1,0x0                                                                                     
0003f6   06e8     DECF      0xe8,0x1,0x0                                                                                    
0003f8   e1f9     BNZ       0x3ec                                                                                           
0003fa   5000     MOVF      0x0,0x0,0x0                                                                                     
0003fc   6e63     MOVWF     0x63,0x0                                                                                        
0003fe   0ef1     MOVLW     0xf1                    RXB0EIDL =  (BYTE)cm.ident;                                             F:\MCP\projects\CAN\Source\CAN.c
000400   50db     MOVF      0xdb,0x0,0x0                                                                                    
000402   6e64     MOVWF     0x64,0x0                                                                                        
                                                                                                                            F:\MCP\projects\CAN\Source\CAN.c
                                                }                                                                              F:\MCP\projects\CAN\Source\CAN.c
000404   d02f     BRA       0x464               else                                                                           F:\MCP\projects\CAN\Source\CAN.c
                                                {                                                                              F:\MCP\projects\CAN\Source\CAN.c
                                                    //Write standard ident.                                                       F:\MCP\projects\CAN\Source\CAN.c
                                                                                                                               F:\MCP\projects\CAN\Source\CAN.c
                                                    //xx xx xx xx xx 10 09 08   07 06 05 04 03 02 01 00                           F:\MCP\projects\CAN\Source\CAN.c
                                                                                                                            F:\MCP\projects\CAN\Source\CAN.c
                                                    //RXB0SIDH 10 09 08 07 06 05 04 03                                      F:\MCP\projects\CAN\Source\CAN.c
                                                    //RXB0SIDL 02 01 00 xx xx xx xx xx                                      F:\MCP\projects\CAN\Source\CAN.c
                                                                                                                            F:\MCP\projects\CAN\Source\CAN.c
000406   0ef1     MOVLW     0xf1                        RXB0SIDH=  (BYTE)(cm.ident>>3);                                         F:\MCP\projects\CAN\Source\CAN.c
000408   cfdb     MOVFF     0xfdb,0x0                                                                                       
00040a   f000                                                                                                               
00040c   0ef2     MOVLW     0xf2                                                                                            
00040e   cfdb     MOVFF     0xfdb,0x1                                                                                       
000410   f001                                                                                                               
000412   0ef3     MOVLW     0xf3                                                                                            
000414   cfdb     MOVFF     0xfdb,0x2                                                                                       
000416   f002                                                                                                               
000418   0ef4     MOVLW     0xf4                                                                                            
00041a   cfdb     MOVFF     0xfdb,0x3                                                                                       
00041c   f003                                                                                                               
00041e   0e03     MOVLW     0x3                                                                                             
000420   90d8     BCF       0xd8,0x0,0x0                                                                                    
000422   3203     RRCF      0x3,0x1,0x0                                                                                     
000424   3202     RRCF      0x2,0x1,0x0                                                                                     
000426   3201     RRCF      0x1,0x1,0x0                                                                                     
000428   3200     RRCF      0x0,0x1,0x0                                                                                     
00042a   06e8     DECF      0xe8,0x1,0x0                                                                                    
00042c   e1f9     BNZ       0x420                                                                                           
00042e   5000     MOVF      0x0,0x0,0x0                                                                                     
000430   6e61     MOVWF     0x61,0x0                                                                                        
000432   0ef1     MOVLW     0xf1                    RXB0SIDL= ((BYTE)(cm.ident<<5) & 0xE0);                                 F:\MCP\projects\CAN\Source\CAN.c
000434   cfdb     MOVFF     0xfdb,0x0                                                                                       
000436   f000                                                                                                               
000438   0ef2     MOVLW     0xf2                                                                                            
00043a   cfdb     MOVFF     0xfdb,0x1                                                                                       
00043c   f001                                                                                                               
00043e   0ef3     MOVLW     0xf3                                                                                            
000440   cfdb     MOVFF     0xfdb,0x2                                                                                       
000442   f002                                                                                                               
000444   0ef4     MOVLW     0xf4                                                                                            
000446   cfdb     MOVFF     0xfdb,0x3                                                                                       
000448   f003                                                                                                               
00044a   0e05     MOVLW     0x5                                                                                             
00044c   0b1f     ANDLW     0x1f                                                                                            
00044e   e007     BZ        0x45e                                                                                           
000450   90d8     BCF       0xd8,0x0,0x0                                                                                    
000452   3600     RLCF      0x0,0x1,0x0                                                                                     
000454   3601     RLCF      0x1,0x1,0x0                                                                                     
000456   3602     RLCF      0x2,0x1,0x0                                                                                     
000458   3603     RLCF      0x3,0x1,0x0                                                                                     
00045a   06e8     DECF      0xe8,0x1,0x0                                                                                    
00045c   e1f9     BNZ       0x450                                                                                           
00045e   0ee0     MOVLW     0xe0                                                                                            
000460   1400     ANDWF     0x0,0x0,0x0                                                                                     
000462   6e62     MOVWF     0x62,0x0                                                                                        
                                                                                                                            F:\MCP\projects\CAN\Source\CAN.c
                                                }                                                                              F:\MCP\projects\CAN\Source\CAN.c
                                                                                                                            F:\MCP\projects\CAN\Source\CAN.c
                                                // Data length                                                                 F:\MCP\projects\CAN\Source\CAN.c
000464   0ef6     MOVLW     0xf6                if (cm.data_length>8) RXB0DLC=8; else RXB0DLC=cm.data_length;                  F:\MCP\projects\CAN\Source\CAN.c
000466   50db     MOVF      0xdb,0x0,0x0                                                                                    
000468   0808     SUBLW     0x8                                                                                             
00046a   e203     BC        0x472                                                                                           
00046c   0e08     MOVLW     0x8                                                                                             
00046e   6e65     MOVWF     0x65,0x0                                                                                        
000470   d003     BRA       0x478                                                                                           
000472   0ef6     MOVLW     0xf6                                                                                            
000474   50db     MOVF      0xdb,0x0,0x0                                                                                    
000476   6e65     MOVWF     0x65,0x0                                                                                        
                                                                                                                            F:\MCP\projects\CAN\Source\CAN.c
                                                // Data one bye one, for speed                                                 F:\MCP\projects\CAN\Source\CAN.c
000478   0ef7     MOVLW     0xf7                RXB0D0=cm.data[0];  RXB0D1=cm.data[1];                                          F:\MCP\projects\CAN\Source\CAN.c
00047a   50db     MOVF      0xdb,0x0,0x0                                                                                    
00047c   6e66     MOVWF     0x66,0x0                                                                                        
00047e   0ef8     MOVLW     0xf8                                                                                            
000480   50db     MOVF      0xdb,0x0,0x0                                                                                    
000482   6e67     MOVWF     0x67,0x0                                                                                        
000484   0ef9     MOVLW     0xf9                RXB0D2=cm.data[2];  RXB0D3=cm.data[3];                                         F:\MCP\projects\CAN\Source\CAN.c
000486   50db     MOVF      0xdb,0x0,0x0                                                                                    
000488   6e68     MOVWF     0x68,0x0                                                                                        
00048a   0efa     MOVLW     0xfa                                                                                            
00048c   50db     MOVF      0xdb,0x0,0x0                                                                                    
00048e   6e69     MOVWF     0x69,0x0                                                                                        
000490   0efb     MOVLW     0xfb                RXB0D4=cm.data[4];  RXB0D5=cm.data[5];                                         F:\MCP\projects\CAN\Source\CAN.c
000492   50db     MOVF      0xdb,0x0,0x0                                                                                    
000494   6e6a     MOVWF     0x6a,0x0                                                                                        
000496   0efc     MOVLW     0xfc                                                                                            
000498   50db     MOVF      0xdb,0x0,0x0                                                                                    
00049a   6e6b     MOVWF     0x6b,0x0                                                                                        
00049c   0efd     MOVLW     0xfd                RXB0D6=cm.data[6];  RXB0D7=cm.data[7];                                         F:\MCP\projects\CAN\Source\CAN.c
00049e   50db     MOVF      0xdb,0x0,0x0                                                                                    
0004a0   6e6c     MOVWF     0x6c,0x0                                                                                        
0004a2   0efe     MOVLW     0xfe                                                                                            
0004a4   50db     MOVF      0xdb,0x0,0x0                                                                                    
0004a6   6e6d     MOVWF     0x6d,0x0                                                                                        
                                                                                                                            F:\MCP\projects\CAN\Source\CAN.c
                                                // set extended or not                                                         F:\MCP\projects\CAN\Source\CAN.c
0004a8   0ef5     MOVLW     0xf5                RXB0SIDLbits.EXID=(cm.extended==TRUE?1:0);                                     F:\MCP\projects\CAN\Source\CAN.c
0004aa   04db     DECF      0xdb,0x0,0x0                                                                                    
0004ac   e102     BNZ       0x4b2                                                                                           
0004ae   0e01     MOVLW     0x1                                                                                             
0004b0   d001     BRA       0x4b4                                                                                           
0004b2   0e00     MOVLW     0x0                                                                                             
0004b4   b0e8     BTFSC     0xe8,0x0,0x0                                                                                    
0004b6   8662     BSF       0x62,0x3,0x0                                                                                    
0004b8   a0e8     BTFSS     0xe8,0x0,0x0                                                                                    
0004ba   9662     BCF       0x62,0x3,0x0                                                                                    
                                                                                                                            F:\MCP\projects\CAN\Source\CAN.c
                                                                                                                            F:\MCP\projects\CAN\Source\CAN.c
                                                // mark as redy to transmit                                                    F:\MCP\projects\CAN\Source\CAN.c
                                                _asm                                                                           F:\MCP\projects\CAN\Source\CAN.c
0004bc   8660     BSF       0x60,0x3,0x0            bsf RXB0CON, 3, 0                                                             F:\MCP\projects\CAN\Source\CAN.c
                                                _endasm                                                                        F:\MCP\projects\CAN\Source\CAN.c
                                                                                                                            F:\MCP\projects\CAN\Source\CAN.c
0004be   0e01     MOVLW     0x1                 return TRUE;                                                                   F:\MCP\projects\CAN\Source\CAN.c
0004c0   d000     BRA       0x4c2                                                                                           
                                                                                                                            F:\MCP\projects\CAN\Source\CAN.c
0004c2   52e5     MOVF      0xe5,0x1,0x0   }                                                                                F:\MCP\projects\CAN\Source\CAN.c
0004c4   cfe7     MOVFF     0xfe7,0xfd9                                                                                     
0004c6   ffd9                                                                                                               
0004c8   0012     RETURN    0x0                                                                                             
                                                                                                                            F:\MCP\projects\CAN\Source\CAN.c
                                                                                                                            F:\MCP\projects\CAN\Source\CAN.c
                                                                                                                            F:\MCP\projects\CAN\Source\CAN.c
                                           #endif //USE_CAN                                                                 F:\MCP\projects\CAN\Source\CAN.c
                                           /*********************************************************************           F:\MCP\projects\CAN\Source\Tick.c
                                            *                                                                               F:\MCP\projects\CAN\Source\Tick.c
                                            *                  Ticker service                                               F:\MCP\projects\CAN\Source\Tick.c
                                            *                                                                               F:\MCP\projects\CAN\Source\Tick.c
                                            *********************************************************************           F:\MCP\projects\CAN\Source\Tick.c
                                            * FileName:        Tick.c                                                       F:\MCP\projects\CAN\Source\Tick.c
                                            *                                                                               F:\MCP\projects\CAN\Source\Tick.c
                                            * Author               Date    Comment                                          F:\MCP\projects\CAN\Source\Tick.c
                                            *~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~           F:\MCP\projects\CAN\Source\Tick.c
                                            * Johan Böhlin     21-10-06    Original        (Rev 1.0)                          F:\MCP\projects\CAN\Source\Tick.c
                                            ********************************************************************/           F:\MCP\projects\CAN\Source\Tick.c
                                                                                                                            F:\MCP\projects\CAN\Source\Tick.c
                                           #define TICK_INCLUDE                                                             F:\MCP\projects\CAN\Source\Tick.c
                                                                                                                            F:\MCP\projects\CAN\Source\Tick.c
                                           #include <Tick.h>                                                                F:\MCP\projects\CAN\Source\Tick.c
                                           #include <Compiler.h>                                                            F:\MCP\projects\CAN\Source\Tick.c
                                                                                                                            F:\MCP\projects\CAN\Source\Tick.c
                                           #define TICK_TEMP_VALUE_1 ((INSTR_FREQ) / (TICKS_PER_SECOND * TICK_PRESCALE_VALUE)) F:\MCP\projects\CAN\Source\Tick.c
                                                                                                                            F:\MCP\projects\CAN\Source\Tick.c
                                           #if TICK_TEMP_VALUE_1 > 60000                                                    F:\MCP\projects\CAN\Source\Tick.c
                                           #error TICK_PER_SECOND value cannot be programmed with current CLOCK_FREQ        F:\MCP\projects\CAN\Source\Tick.c
                                           #error Either lower TICK_PER_SECOND or manually configure the Timer              F:\MCP\projects\CAN\Source\Tick.c
                                           #endif                                                                           F:\MCP\projects\CAN\Source\Tick.c
                                                                                                                            F:\MCP\projects\CAN\Source\Tick.c
                                           #define TICK_TEMP_VALUE         (65535 - TICK_TEMP_VALUE_1)                      F:\MCP\projects\CAN\Source\Tick.c
                                                                                                                            F:\MCP\projects\CAN\Source\Tick.c
                                           #define TICK_COUNTER_HIGH       ((TICK_TEMP_VALUE >> 8) & 0xff)                  F:\MCP\projects\CAN\Source\Tick.c
                                           #define TICK_COUNTER_LOW        (TICK_TEMP_VALUE & 0xff)                         F:\MCP\projects\CAN\Source\Tick.c
                                                                                                                            F:\MCP\projects\CAN\Source\Tick.c
                                           #if (TICK_PRESCALE_VALUE == 2)                                                   F:\MCP\projects\CAN\Source\Tick.c
                                               #define TIMER_PRESCALE  (0)                                                  F:\MCP\projects\CAN\Source\Tick.c
                                           #elif ( TICK_PRESCALE_VALUE == 4 )                                               F:\MCP\projects\CAN\Source\Tick.c
                                               #define TIMER_PRESCALE  (1)                                                  F:\MCP\projects\CAN\Source\Tick.c
                                           #elif ( TICK_PRESCALE_VALUE == 8 )                                               F:\MCP\projects\CAN\Source\Tick.c
                                               #define TIMER_PRESCALE  (2)                                                  F:\MCP\projects\CAN\Source\Tick.c
                                           #elif ( TICK_PRESCALE_VALUE == 16 )                                              F:\MCP\projects\CAN\Source\Tick.c
                                               #define TIMER_PRESCALE  (3)                                                  F:\MCP\projects\CAN\Source\Tick.c
                                           #elif ( TICK_PRESCALE_VALUE == 32 )                                              F:\MCP\projects\CAN\Source\Tick.c
                                               #define TIMER_PRESCALE  (4)                                                  F:\MCP\projects\CAN\Source\Tick.c
                                           #elif ( TICK_PRESCALE_VALUE == 64 )                                              F:\MCP\projects\CAN\Source\Tick.c
                                               #define TIMER_PRESCALE  (5)                                                  F:\MCP\projects\CAN\Source\Tick.c
                                           #elif ( TICK_PRESCALE_VALUE == 128 )                                             F:\MCP\projects\CAN\Source\Tick.c
                                               #define TIMER_PRESCALE  (6)                                                  F:\MCP\projects\CAN\Source\Tick.c
                                           #elif ( TICK_PRESCALE_VALUE == 256 )                                             F:\MCP\projects\CAN\Source\Tick.c
                                               #define TIMER_PRESCALE  (7)                                                  F:\MCP\projects\CAN\Source\Tick.c
                                           #else                                                                            F:\MCP\projects\CAN\Source\Tick.c
                                               #error Invalid TICK_PRESCALE_VALUE specified.                                F:\MCP\projects\CAN\Source\Tick.c
                                           #endif                                                                           F:\MCP\projects\CAN\Source\Tick.c
                                                                                                                            F:\MCP\projects\CAN\Source\Tick.c
                                                                                                                            F:\MCP\projects\CAN\Source\Tick.c
                                           TICK TickCount = 0;  // 10ms/unit                                                 F:\MCP\projects\CAN\Source\Tick.c
                                                                                                                            F:\MCP\projects\CAN\Source\Tick.c
                                                                                                                            F:\MCP\projects\CAN\Source\Tick.c
                                                                                                                            F:\MCP\projects\CAN\Source\Tick.c
                                           /*                                                                               F:\MCP\projects\CAN\Source\Tick.c
                                           *    Function: TickInit                                                             F:\MCP\projects\CAN\Source\Tick.c
                                           *                                                                                F:\MCP\projects\CAN\Source\Tick.c
                                           *    Input:  none                                                                    F:\MCP\projects\CAN\Source\Tick.c
                                           *    Output: Tick manager is initialized.                                           F:\MCP\projects\CAN\Source\Tick.c
                                           *    Pre-conditions: TickInit                                                       F:\MCP\projects\CAN\Source\Tick.c
                                           *    Affects: none                                                                  F:\MCP\projects\CAN\Source\Tick.c
                                           *    Depends: none                                                                  F:\MCP\projects\CAN\Source\Tick.c
                                           */                                                                               F:\MCP\projects\CAN\Source\Tick.c
                                           #define PERIOD (INSTR_FREQ/256/1000)*TICK_PERIOD_MS                              F:\MCP\projects\CAN\Source\Tick.c
                                           void tickInit(void)                                                              F:\MCP\projects\CAN\Source\Tick.c
                                           {                                                                                F:\MCP\projects\CAN\Source\Tick.c
                                               // Start the timer.                                                          F:\MCP\projects\CAN\Source\Tick.c
00090c   0e79     MOVLW     0x79               TMR0L = TICK_COUNTER_LOW;                                                    F:\MCP\projects\CAN\Source\Tick.c
00090e   6ed6     MOVWF     0xd6,0x0                                                                                        
000910   0efe     MOVLW     0xfe               TMR0H = TICK_COUNTER_HIGH;                                                   F:\MCP\projects\CAN\Source\Tick.c
000912   6ed7     MOVWF     0xd7,0x0                                                                                        
                                                                                                                            F:\MCP\projects\CAN\Source\Tick.c
                                               // 16-BIT, internal timer, PSA set to 1:256                                  F:\MCP\projects\CAN\Source\Tick.c
000914   0e07     MOVLW     0x7                T0CON = 0b00000000 | TIMER_PRESCALE;                                         F:\MCP\projects\CAN\Source\Tick.c
000916   6ed5     MOVWF     0xd5,0x0                                                                                        
                                                                                                                            F:\MCP\projects\CAN\Source\Tick.c
                                               // Start the timer.                                                          F:\MCP\projects\CAN\Source\Tick.c
000918   8ed5     BSF       0xd5,0x7,0x0       T0CONbits.TMR0ON = 1;                                                        F:\MCP\projects\CAN\Source\Tick.c
                                                                                                                            F:\MCP\projects\CAN\Source\Tick.c
00091a   84f2     BSF       0xf2,0x2,0x0       INTCONbits.TMR0IF = 1;                                                       F:\MCP\projects\CAN\Source\Tick.c
00091c   8af2     BSF       0xf2,0x5,0x0       INTCONbits.TMR0IE = 1;                                                       F:\MCP\projects\CAN\Source\Tick.c
00091e   0012     RETURN    0x0            }                                                                                F:\MCP\projects\CAN\Source\Tick.c
                                                                                                                            F:\MCP\projects\CAN\Source\Tick.c
                                           /*                                                                               F:\MCP\projects\CAN\Source\Tick.c
                                           *    Function: TickGet                                                              F:\MCP\projects\CAN\Source\Tick.c
                                           *                                                                                F:\MCP\projects\CAN\Source\Tick.c
                                           *    Input:  none                                                                    F:\MCP\projects\CAN\Source\Tick.c
                                           *    Output: Current tick value is given, 1 tick represents approximately 10ms      F:\MCP\projects\CAN\Source\Tick.c
                                           *    Pre-conditions: TickInit                                                       F:\MCP\projects\CAN\Source\Tick.c
                                           *    Affects: none                                                                  F:\MCP\projects\CAN\Source\Tick.c
                                           *    Depends: none                                                                  F:\MCP\projects\CAN\Source\Tick.c
                                           */                                                                               F:\MCP\projects\CAN\Source\Tick.c
                                           TICK tickGet(void)                                                               F:\MCP\projects\CAN\Source\Tick.c
                                           {                                                                                F:\MCP\projects\CAN\Source\Tick.c
000920   c072     MOVFF     0x72,0x18          return TickCount;                                                            F:\MCP\projects\CAN\Source\Tick.c
000922   f018                                                                                                               
000924   c073     MOVFF     0x73,0x19                                                                                       
000926   f019                                                                                                               
000928   c074     MOVFF     0x74,0x1a                                                                                       
00092a   f01a                                                                                                               
00092c   c075     MOVFF     0x75,0x1b                                                                                       
00092e   f01b                                                                                                               
000930   0012     RETURN    0x0            }                                                                                F:\MCP\projects\CAN\Source\Tick.c
                                                                                                                            F:\MCP\projects\CAN\Source\Tick.c
                                                                                                                            F:\MCP\projects\CAN\Source\Tick.c
                                           /*                                                                               F:\MCP\projects\CAN\Source\Tick.c
                                           *    Function: tickUpdate                                                           F:\MCP\projects\CAN\Source\Tick.c
                                           *                                                                                F:\MCP\projects\CAN\Source\Tick.c
                                           *    Input:  none                                                                    F:\MCP\projects\CAN\Source\Tick.c
                                           *    Output: none                                                                   F:\MCP\projects\CAN\Source\Tick.c
                                           *    Pre-conditions: TickInit                                                       F:\MCP\projects\CAN\Source\Tick.c
                                           *    Affects: none                                                                  F:\MCP\projects\CAN\Source\Tick.c
                                           *    Depends: none                                                                  F:\MCP\projects\CAN\Source\Tick.c
                                           */                                                                               F:\MCP\projects\CAN\Source\Tick.c
                                           void tickUpdate(void)                                                            F:\MCP\projects\CAN\Source\Tick.c
                                           {                                                                                F:\MCP\projects\CAN\Source\Tick.c
000932   a4f2     BTFSS     0xf2,0x2,0x0       if(INTCONbits.TMR0IF)                                                        F:\MCP\projects\CAN\Source\Tick.c
000934   d00b     BRA       0x94c                                                                                           
                                               {                                                                            F:\MCP\projects\CAN\Source\Tick.c
000936   0efe     MOVLW     0xfe                   TMR0H = TICK_COUNTER_HIGH;                                               F:\MCP\projects\CAN\Source\Tick.c
000938   6ed7     MOVWF     0xd7,0x0                                                                                        
00093a   0e79     MOVLW     0x79                   TMR0L = TICK_COUNTER_LOW;                                                F:\MCP\projects\CAN\Source\Tick.c
00093c   6ed6     MOVWF     0xd6,0x0                                                                                        
                                                                                                                            F:\MCP\projects\CAN\Source\Tick.c
00093e   0100     MOVLB     0x0                    TickCount++;                                                             F:\MCP\projects\CAN\Source\Tick.c
000940   2b72     INCF      0x72,0x1,0x1                                                                                    
000942   0e00     MOVLW     0x0                                                                                             
000944   2373     ADDWFC    0x73,0x1,0x1                                                                                    
000946   2374     ADDWFC    0x74,0x1,0x1                                                                                    
000948   2375     ADDWFC    0x75,0x1,0x1                                                                                    
                                                                                                                            F:\MCP\projects\CAN\Source\Tick.c
00094a   94f2     BCF       0xf2,0x2,0x0           INTCONbits.TMR0IF = 0;                                                   F:\MCP\projects\CAN\Source\Tick.c
                                               }                                                                            F:\MCP\projects\CAN\Source\Tick.c
00094c   0012     RETURN    0x0            }                                                                                F:\MCP\projects\CAN\Source\Tick.c