Subversion Repositories HomeAutomation

Rev

Rev 51 | 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 22:58:01 2006


Address  Value    Disassembly              Source                                                                           File
-------  -------  -----------------------  -------------------------------------------------------------------------------  -----
                                           /*********************************************************************           F:\MCP\projects\CAN\canToSerial\Source\Main.c
                                            *                                                                               F:\MCP\projects\CAN\canToSerial\Source\Main.c
                                            *                  Main application                                             F:\MCP\projects\CAN\canToSerial\Source\Main.c
                                            *                                                                               F:\MCP\projects\CAN\canToSerial\Source\Main.c
                                            *********************************************************************           F:\MCP\projects\CAN\canToSerial\Source\Main.c
                                            * FileName:        Main.c                                                       F:\MCP\projects\CAN\canToSerial\Source\Main.c
                                            *                                                                               F:\MCP\projects\CAN\canToSerial\Source\Main.c
                                            * Author               Date    Comment                                          F:\MCP\projects\CAN\canToSerial\Source\Main.c
                                            *~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~           F:\MCP\projects\CAN\canToSerial\Source\Main.c
                                            * Johan Böhlin     21-10-06    Original        (Rev 1.0)                          F:\MCP\projects\CAN\canToSerial\Source\Main.c
                                            ********************************************************************/           F:\MCP\projects\CAN\canToSerial\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canToSerial\Source\Main.c
                                           #include <compiler.h>                                                            F:\MCP\projects\CAN\canToSerial\Source\Main.c
                                           #include <stackTasks.h>                                                          F:\MCP\projects\CAN\canToSerial\Source\Main.c
                                           #include <Tick.h>                                                                F:\MCP\projects\CAN\canToSerial\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canToSerial\Source\Main.c
                                           #ifdef USE_CAN                                                                   F:\MCP\projects\CAN\canToSerial\Source\Main.c
                                            #include <CAN.h>                                                                F:\MCP\projects\CAN\canToSerial\Source\Main.c
                                           #endif                                                                           F:\MCP\projects\CAN\canToSerial\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canToSerial\Source\Main.c
                                           #ifdef USE_UART                                                                  F:\MCP\projects\CAN\canToSerial\Source\Main.c
                                            #include <uart.h>                                                               F:\MCP\projects\CAN\canToSerial\Source\Main.c
                                           #endif                                                                           F:\MCP\projects\CAN\canToSerial\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canToSerial\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canToSerial\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canToSerial\Source\Main.c
                                           static void mainInit(void);                                                      F:\MCP\projects\CAN\canToSerial\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canToSerial\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canToSerial\Source\Main.c
                                           void main()                                                                      F:\MCP\projects\CAN\canToSerial\Source\Main.c
                                           {                                                                                F:\MCP\projects\CAN\canToSerial\Source\Main.c
                                            static TICK t = 0;                                                              F:\MCP\projects\CAN\canToSerial\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canToSerial\Source\Main.c
                                            // Inits                                                                        F:\MCP\projects\CAN\canToSerial\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canToSerial\Source\Main.c
000500   d874     RCALL     0x5ea           mainInit();                                                                     F:\MCP\projects\CAN\canToSerial\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canToSerial\Source\Main.c
                                            #ifdef USE_CAN                                                                  F:\MCP\projects\CAN\canToSerial\Source\Main.c
000502   ec22     CALL      0x44,0x0            canInit();                                                                     F:\MCP\projects\CAN\canToSerial\Source\Main.c
000504   f000                                                                                                               
                                            #endif                                                                          F:\MCP\projects\CAN\canToSerial\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canToSerial\Source\Main.c
                                            #ifdef USE_UART                                                                 F:\MCP\projects\CAN\canToSerial\Source\Main.c
000506   ec83     CALL      0x906,0x0           uartInit();                                                                    F:\MCP\projects\CAN\canToSerial\Source\Main.c
000508   f004                                                                                                               
                                            #endif                                                                          F:\MCP\projects\CAN\canToSerial\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canToSerial\Source\Main.c
00050a   ec56     CALL      0xaac,0x0       tickInit();                                                                     F:\MCP\projects\CAN\canToSerial\Source\Main.c
00050c   f005                                                                                                               
                                                                                                                            F:\MCP\projects\CAN\canToSerial\Source\Main.c
00050e   d7ff     BRA       0x50e           while(1)                                                                        F:\MCP\projects\CAN\canToSerial\Source\Main.c
                                            {                                                                               F:\MCP\projects\CAN\canToSerial\Source\Main.c
                                            }                                                                               F:\MCP\projects\CAN\canToSerial\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canToSerial\Source\Main.c
000510   0012     RETURN    0x0            }                                                                                F:\MCP\projects\CAN\canToSerial\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canToSerial\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canToSerial\Source\Main.c
                                           #pragma interruptlow HighISR                                                     F:\MCP\projects\CAN\canToSerial\Source\Main.c
000512   cfd8     MOVFF     0xfd8,0xfe4    void HighISR(void)                                                               F:\MCP\projects\CAN\canToSerial\Source\Main.c
000514   ffe4                                                                                                               
000516   cfe0     MOVFF     0xfe0,0xfe4                                                                                     
000518   ffe4                                                                                                               
00051a   6ee4     MOVWF     0xe4,0x0                                                                                        
00051c   cfda     MOVFF     0xfda,0xfe4                                                                                     
00051e   ffe4                                                                                                               
000520   cfe2     MOVFF     0xfe2,0xfda                                                                                     
000522   ffda                                                                                                               
000524   cfe9     MOVFF     0xfe9,0xfe4                                                                                     
000526   ffe4                                                                                                               
000528   cfea     MOVFF     0xfea,0xfe4                                                                                     
00052a   ffe4                                                                                                               
00052c   cff6     MOVFF     0xff6,0xfe4                                                                                     
00052e   ffe4                                                                                                               
000530   cff7     MOVFF     0xff7,0xfe4                                                                                     
000532   ffe4                                                                                                               
000534   cff5     MOVFF     0xff5,0xfe4                                                                                     
000536   ffe4                                                                                                               
000538   cff3     MOVFF     0xff3,0xfe4                                                                                     
00053a   ffe4                                                                                                               
00053c   cff4     MOVFF     0xff4,0xfe4                                                                                     
00053e   ffe4                                                                                                               
000540   cffa     MOVFF     0xffa,0xfe4                                                                                     
000542   ffe4                                                                                                               
000544   ee00     LFSR      0x0,0x14                                                                                        
000546   f014                                                                                                               
000548   0e0b     MOVLW     0xb                                                                                             
00054a   04e8     DECF      0xe8,0x0,0x0                                                                                    
00054c   e303     BNC       0x554                                                                                           
00054e   cfee     MOVFF     0xfee,0xfe4                                                                                     
000550   ffe4                                                                                                               
000552   d7fb     BRA       0x54a                                                                                           
000554   ee00     LFSR      0x0,0x0                                                                                         
000556   f000                                                                                                               
000558   0e14     MOVLW     0x14                                                                                            
00055a   04e8     DECF      0xe8,0x0,0x0                                                                                    
00055c   e303     BNC       0x564                                                                                           
00055e   cfee     MOVFF     0xfee,0xfe4                                                                                     
000560   ffe4                                                                                                               
000562   d7fb     BRA       0x55a                                                                                           
000564   52e6     MOVF      0xe6,0x1,0x0                                                                                    
                                           {                                                                                F:\MCP\projects\CAN\canToSerial\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canToSerial\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canToSerial\Source\Main.c
                                            #ifdef USE_UART                                                                 F:\MCP\projects\CAN\canToSerial\Source\Main.c
000566   ecec     CALL      0x9d8,0x0           uartISR();                                                                     F:\MCP\projects\CAN\canToSerial\Source\Main.c
000568   f004                                                                                                               
                                            #endif                                                                          F:\MCP\projects\CAN\canToSerial\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canToSerial\Source\Main.c
                                            #ifdef USE_CAN                                                                  F:\MCP\projects\CAN\canToSerial\Source\Main.c
00056a   ec4d     CALL      0x9a,0x0            canISR();                                                                      F:\MCP\projects\CAN\canToSerial\Source\Main.c
00056c   f000                                                                                                               
                                            #endif                                                                          F:\MCP\projects\CAN\canToSerial\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canToSerial\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canToSerial\Source\Main.c
00056e   ec6a     CALL      0xad4,0x0       tickUpdate();                                                                   F:\MCP\projects\CAN\canToSerial\Source\Main.c
000570   f005                                                                                                               
000572   52e5     MOVF      0xe5,0x1,0x0   }                                                                                F:\MCP\projects\CAN\canToSerial\Source\Main.c
000574   ee00     LFSR      0x0,0x13                                                                                        
000576   f013                                                                                                               
000578   0e14     MOVLW     0x14                                                                                            
00057a   04e8     DECF      0xe8,0x0,0x0                                                                                    
00057c   e303     BNC       0x584                                                                                           
00057e   cfe5     MOVFF     0xfe5,0xfed                                                                                     
000580   ffed                                                                                                               
000582   d7fb     BRA       0x57a                                                                                           
000584   ee00     LFSR      0x0,0x1e                                                                                        
000586   f01e                                                                                                               
000588   0e0b     MOVLW     0xb                                                                                             
00058a   04e8     DECF      0xe8,0x0,0x0                                                                                    
00058c   e303     BNC       0x594                                                                                           
00058e   cfe5     MOVFF     0xfe5,0xfed                                                                                     
000590   ffed                                                                                                               
000592   d7fb     BRA       0x58a                                                                                           
000594   cfe5     MOVFF     0xfe5,0xffa                                                                                     
000596   fffa                                                                                                               
000598   cfe5     MOVFF     0xfe5,0xff4                                                                                     
00059a   fff4                                                                                                               
00059c   cfe5     MOVFF     0xfe5,0xff3                                                                                     
00059e   fff3                                                                                                               
0005a0   cfe5     MOVFF     0xfe5,0xff5                                                                                     
0005a2   fff5                                                                                                               
0005a4   cfe5     MOVFF     0xfe5,0xff7                                                                                     
0005a6   fff7                                                                                                               
0005a8   cfe5     MOVFF     0xfe5,0xff6                                                                                     
0005aa   fff6                                                                                                               
0005ac   cfe5     MOVFF     0xfe5,0xfea                                                                                     
0005ae   ffea                                                                                                               
0005b0   cfe5     MOVFF     0xfe5,0xfe9                                                                                     
0005b2   ffe9                                                                                                               
0005b4   cfe5     MOVFF     0xfe5,0xfda                                                                                     
0005b6   ffda                                                                                                               
0005b8   50e5     MOVF      0xe5,0x0,0x0                                                                                    
0005ba   cfe5     MOVFF     0xfe5,0xfe0                                                                                     
0005bc   ffe0                                                                                                               
0005be   cfe5     MOVFF     0xfe5,0xfd8                                                                                     
0005c0   ffd8                                                                                                               
0005c2   0010     RETFIE    0x0                                                                                             
                                           #pragma code highVector=0x08                                                     F:\MCP\projects\CAN\canToSerial\Source\Main.c
                                           void HighVector (void)                                                           F:\MCP\projects\CAN\canToSerial\Source\Main.c
                                           {                                                                                F:\MCP\projects\CAN\canToSerial\Source\Main.c
000008   ef89     GOTO      0x512              _asm goto HighISR _endasm                                                    F:\MCP\projects\CAN\canToSerial\Source\Main.c
00000a   f002                                                                                                               
00000c   0012     RETURN    0x0            }                                                                                F:\MCP\projects\CAN\canToSerial\Source\Main.c
                                           #pragma code // Return to default code section                                   F:\MCP\projects\CAN\canToSerial\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canToSerial\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canToSerial\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canToSerial\Source\Main.c
                                           #pragma interruptlow LowISR                                                      F:\MCP\projects\CAN\canToSerial\Source\Main.c
0005c4   cfd8     MOVFF     0xfd8,0xfe4    void LowISR(void)                                                                F:\MCP\projects\CAN\canToSerial\Source\Main.c
0005c6   ffe4                                                                                                               
0005c8   cfe0     MOVFF     0xfe0,0xfe4                                                                                     
0005ca   ffe4                                                                                                               
0005cc   6ee4     MOVWF     0xe4,0x0                                                                                        
0005ce   cfda     MOVFF     0xfda,0xfe4                                                                                     
0005d0   ffe4                                                                                                               
0005d2   cfe2     MOVFF     0xfe2,0xfda                                                                                     
0005d4   ffda                                                                                                               
0005d6   52e6     MOVF      0xe6,0x1,0x0                                                                                    
                                           {                                                                                F:\MCP\projects\CAN\canToSerial\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canToSerial\Source\Main.c
0005d8   52e5     MOVF      0xe5,0x1,0x0   }                                                                                F:\MCP\projects\CAN\canToSerial\Source\Main.c
0005da   cfe5     MOVFF     0xfe5,0xfda                                                                                     
0005dc   ffda                                                                                                               
0005de   50e5     MOVF      0xe5,0x0,0x0                                                                                    
0005e0   cfe5     MOVFF     0xfe5,0xfe0                                                                                     
0005e2   ffe0                                                                                                               
0005e4   cfe5     MOVFF     0xfe5,0xfd8                                                                                     
0005e6   ffd8                                                                                                               
0005e8   0010     RETFIE    0x0                                                                                             
                                           #pragma code lowVector=0x18                                                      F:\MCP\projects\CAN\canToSerial\Source\Main.c
                                           void LowVector (void)                                                            F:\MCP\projects\CAN\canToSerial\Source\Main.c
                                           {                                                                                F:\MCP\projects\CAN\canToSerial\Source\Main.c
000018   efe2     GOTO      0x5c4              _asm goto LowISR _endasm                                                     F:\MCP\projects\CAN\canToSerial\Source\Main.c
00001a   f002                                                                                                               
00001c   0012     RETURN    0x0            }                                                                                F:\MCP\projects\CAN\canToSerial\Source\Main.c
                                           #pragma code // Return to default code section                                   F:\MCP\projects\CAN\canToSerial\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canToSerial\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canToSerial\Source\Main.c
                                           /*                                                                               F:\MCP\projects\CAN\canToSerial\Source\Main.c
                                           *    Function: mainInit                                                             F:\MCP\projects\CAN\canToSerial\Source\Main.c
                                           *                                                                                F:\MCP\projects\CAN\canToSerial\Source\Main.c
                                           *    Input:  none                                                                    F:\MCP\projects\CAN\canToSerial\Source\Main.c
                                           *    Output: none                                                                   F:\MCP\projects\CAN\canToSerial\Source\Main.c
                                           *    Pre-conditions: none                                                           F:\MCP\projects\CAN\canToSerial\Source\Main.c
                                           *    Affects: Se code                                                               F:\MCP\projects\CAN\canToSerial\Source\Main.c
                                           *    Depends: none.                                                                 F:\MCP\projects\CAN\canToSerial\Source\Main.c
                                           */                                                                               F:\MCP\projects\CAN\canToSerial\Source\Main.c
                                           void mainInit()                                                                  F:\MCP\projects\CAN\canToSerial\Source\Main.c
                                           {                                                                                F:\MCP\projects\CAN\canToSerial\Source\Main.c
0005ea   9294     BCF       0x94,0x1,0x0    LED0_TRIS=0;                                                                       F:\MCP\projects\CAN\canToSerial\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canToSerial\Source\Main.c
                                               // Enable internal PORTB pull-ups                                            F:\MCP\projects\CAN\canToSerial\Source\Main.c
0005ec   9ef1     BCF       0xf1,0x7,0x0       INTCON2bits.RBPU = 0;                                                        F:\MCP\projects\CAN\canToSerial\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canToSerial\Source\Main.c
                                            // Enable Interrupts                                                            F:\MCP\projects\CAN\canToSerial\Source\Main.c
0005ee   8ef2     BSF       0xf2,0x7,0x0       INTCONbits.GIEH = 1;                                                         F:\MCP\projects\CAN\canToSerial\Source\Main.c
0005f0   8cf2     BSF       0xf2,0x6,0x0       INTCONbits.GIEL = 1;                                                         F:\MCP\projects\CAN\canToSerial\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canToSerial\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canToSerial\Source\Main.c
                                            // Enable interrupt prirority                                                   F:\MCP\projects\CAN\canToSerial\Source\Main.c
0005f2   8ed0     BSF       0xd0,0x7,0x0    RCONbits.IPEN=1;                                                                F:\MCP\projects\CAN\canToSerial\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canToSerial\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canToSerial\Source\Main.c
0005f4   0012     RETURN    0x0            }                                                                                F:\MCP\projects\CAN\canToSerial\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canToSerial\Source\Main.c
                                           /*                                                                               F:\MCP\projects\CAN\canToSerial\Source\Main.c
                                           *    Function: canParse                                                             F:\MCP\projects\CAN\canToSerial\Source\Main.c
                                           *                                                                                F:\MCP\projects\CAN\canToSerial\Source\Main.c
                                           *    Input:  Received can message                                                    F:\MCP\projects\CAN\canToSerial\Source\Main.c
                                           *    Output: none                                                                   F:\MCP\projects\CAN\canToSerial\Source\Main.c
                                           *    Pre-conditions: canInit and received packet.                                   F:\MCP\projects\CAN\canToSerial\Source\Main.c
                                           *    Affects: Sensors/actuators/etc. See code.                                      F:\MCP\projects\CAN\canToSerial\Source\Main.c
                                           *    Depends: none.                                                                 F:\MCP\projects\CAN\canToSerial\Source\Main.c
                                           */                                                                               F:\MCP\projects\CAN\canToSerial\Source\Main.c
                                           #ifdef USE_CAN                                                                   F:\MCP\projects\CAN\canToSerial\Source\Main.c
0005f6   cfd9     MOVFF     0xfd9,0xfe6    void canParse(CAN_MESSAGE cm)                                                    F:\MCP\projects\CAN\canToSerial\Source\Main.c
0005f8   ffe6                                                                                                               
0005fa   cfe1     MOVFF     0xfe1,0xfd9                                                                                     
0005fc   ffd9                                                                                                               
0005fe   0e02     MOVLW     0x2                                                                                             
000600   26e1     ADDWF     0xe1,0x1,0x0                                                                                    
                                           {                                                                                F:\MCP\projects\CAN\canToSerial\Source\Main.c
000602   6ade     CLRF      0xde,0x0        int i=0;                                                                        F:\MCP\projects\CAN\canToSerial\Source\Main.c
000604   6add     CLRF      0xdd,0x0                                                                                        
                                                                                                                            F:\MCP\projects\CAN\canToSerial\Source\Main.c
000606   0efd     MOVLW     0xfd            uartPutc(UART_START_BYTE);                                                      F:\MCP\projects\CAN\canToSerial\Source\Main.c
000608   6ee6     MOVWF     0xe6,0x0                                                                                        
00060a   ec8f     CALL      0x91e,0x0                                                                                       
00060c   f004                                                                                                               
00060e   52e5     MOVF      0xe5,0x1,0x0                                                                                    
000610   0ef1     MOVLW     0xf1            uartPutc((BYTE)(cm.ident));                                                     F:\MCP\projects\CAN\canToSerial\Source\Main.c
000612   cfdb     MOVFF     0xfdb,0xfe6                                                                                     
000614   ffe6                                                                                                               
000616   ec8f     CALL      0x91e,0x0                                                                                       
000618   f004                                                                                                               
00061a   52e5     MOVF      0xe5,0x1,0x0                                                                                    
00061c   0ef1     MOVLW     0xf1            uartPutc((BYTE)(cm.ident>>8));                                                  F:\MCP\projects\CAN\canToSerial\Source\Main.c
00061e   cfdb     MOVFF     0xfdb,0x0                                                                                       
000620   f000                                                                                                               
000622   0ef2     MOVLW     0xf2                                                                                            
000624   cfdb     MOVFF     0xfdb,0x1                                                                                       
000626   f001                                                                                                               
000628   0ef3     MOVLW     0xf3                                                                                            
00062a   cfdb     MOVFF     0xfdb,0x2                                                                                       
00062c   f002                                                                                                               
00062e   0ef4     MOVLW     0xf4                                                                                            
000630   cfdb     MOVFF     0xfdb,0x3                                                                                       
000632   f003                                                                                                               
000634   0e08     MOVLW     0x8                                                                                             
000636   90d8     BCF       0xd8,0x0,0x0                                                                                    
000638   3203     RRCF      0x3,0x1,0x0                                                                                     
00063a   3202     RRCF      0x2,0x1,0x0                                                                                     
00063c   3201     RRCF      0x1,0x1,0x0                                                                                     
00063e   3200     RRCF      0x0,0x1,0x0                                                                                     
000640   06e8     DECF      0xe8,0x1,0x0                                                                                    
000642   e1f9     BNZ       0x636                                                                                           
000644   5000     MOVF      0x0,0x0,0x0                                                                                     
000646   6ee6     MOVWF     0xe6,0x0                                                                                        
000648   ec8f     CALL      0x91e,0x0                                                                                       
00064a   f004                                                                                                               
00064c   52e5     MOVF      0xe5,0x1,0x0                                                                                    
00064e   0ef1     MOVLW     0xf1            uartPutc((BYTE)(cm.ident>>16));                                                 F:\MCP\projects\CAN\canToSerial\Source\Main.c
000650   cfdb     MOVFF     0xfdb,0x0                                                                                       
000652   f000                                                                                                               
000654   0ef2     MOVLW     0xf2                                                                                            
000656   cfdb     MOVFF     0xfdb,0x1                                                                                       
000658   f001                                                                                                               
00065a   0ef3     MOVLW     0xf3                                                                                            
00065c   cfdb     MOVFF     0xfdb,0x2                                                                                       
00065e   f002                                                                                                               
000660   0ef4     MOVLW     0xf4                                                                                            
000662   cfdb     MOVFF     0xfdb,0x3                                                                                       
000664   f003                                                                                                               
000666   0e10     MOVLW     0x10                                                                                            
000668   90d8     BCF       0xd8,0x0,0x0                                                                                    
00066a   3203     RRCF      0x3,0x1,0x0                                                                                     
00066c   3202     RRCF      0x2,0x1,0x0                                                                                     
00066e   3201     RRCF      0x1,0x1,0x0                                                                                     
000670   3200     RRCF      0x0,0x1,0x0                                                                                     
000672   06e8     DECF      0xe8,0x1,0x0                                                                                    
000674   e1f9     BNZ       0x668                                                                                           
000676   5000     MOVF      0x0,0x0,0x0                                                                                     
000678   6ee6     MOVWF     0xe6,0x0                                                                                        
00067a   ec8f     CALL      0x91e,0x0                                                                                       
00067c   f004                                                                                                               
00067e   52e5     MOVF      0xe5,0x1,0x0                                                                                    
000680   0ef1     MOVLW     0xf1            uartPutc((BYTE)(cm.ident>>24));                                                 F:\MCP\projects\CAN\canToSerial\Source\Main.c
000682   cfdb     MOVFF     0xfdb,0x0                                                                                       
000684   f000                                                                                                               
000686   0ef2     MOVLW     0xf2                                                                                            
000688   cfdb     MOVFF     0xfdb,0x1                                                                                       
00068a   f001                                                                                                               
00068c   0ef3     MOVLW     0xf3                                                                                            
00068e   cfdb     MOVFF     0xfdb,0x2                                                                                       
000690   f002                                                                                                               
000692   0ef4     MOVLW     0xf4                                                                                            
000694   cfdb     MOVFF     0xfdb,0x3                                                                                       
000696   f003                                                                                                               
000698   0e18     MOVLW     0x18                                                                                            
00069a   90d8     BCF       0xd8,0x0,0x0                                                                                    
00069c   3203     RRCF      0x3,0x1,0x0                                                                                     
00069e   3202     RRCF      0x2,0x1,0x0                                                                                     
0006a0   3201     RRCF      0x1,0x1,0x0                                                                                     
0006a2   3200     RRCF      0x0,0x1,0x0                                                                                     
0006a4   06e8     DECF      0xe8,0x1,0x0                                                                                    
0006a6   e1f9     BNZ       0x69a                                                                                           
0006a8   5000     MOVF      0x0,0x0,0x0                                                                                     
0006aa   6ee6     MOVWF     0xe6,0x0                                                                                        
0006ac   ec8f     CALL      0x91e,0x0                                                                                       
0006ae   f004                                                                                                               
0006b0   52e5     MOVF      0xe5,0x1,0x0                                                                                    
0006b2   0ef5     MOVLW     0xf5            uartPutc(cm.extended);                                                          F:\MCP\projects\CAN\canToSerial\Source\Main.c
0006b4   cfdb     MOVFF     0xfdb,0xfe6                                                                                     
0006b6   ffe6                                                                                                               
0006b8   ec8f     CALL      0x91e,0x0                                                                                       
0006ba   f004                                                                                                               
0006bc   52e5     MOVF      0xe5,0x1,0x0                                                                                    
0006be   0ef6     MOVLW     0xf6            uartPutc(cm.data_length);                                                       F:\MCP\projects\CAN\canToSerial\Source\Main.c
0006c0   cfdb     MOVFF     0xfdb,0xfe6                                                                                     
0006c2   ffe6                                                                                                               
0006c4   ec8f     CALL      0x91e,0x0                                                                                       
0006c6   f004                                                                                                               
0006c8   52e5     MOVF      0xe5,0x1,0x0                                                                                    
0006ca   6ade     CLRF      0xde,0x0        for(i=0;i<8;i++) uartPutc(cm.data[i]);                                          F:\MCP\projects\CAN\canToSerial\Source\Main.c
0006cc   6add     CLRF      0xdd,0x0                                                                                        
0006ce   cfde     MOVFF     0xfde,0x0                                                                                       
0006d0   f000                                                                                                               
0006d2   cfdd     MOVFF     0xfdd,0x1                                                                                       
0006d4   f001                                                                                                               
0006d6   90d8     BCF       0xd8,0x0,0x0                                                                                    
0006d8   5001     MOVF      0x1,0x0,0x0                                                                                     
0006da   e604     BN        0x6e4                                                                                           
0006dc   0e08     MOVLW     0x8                                                                                             
0006de   5c00     SUBWF     0x0,0x0,0x0                                                                                     
0006e0   0e00     MOVLW     0x0                                                                                             
0006e2   5801     SUBWFB    0x1,0x0,0x0                                                                                     
0006e4   e216     BC        0x712                                                                                           
0006e6   50d9     MOVF      0xd9,0x0,0x0                                                                                    
0006e8   0ff7     ADDLW     0xf7                                                                                            
0006ea   6e00     MOVWF     0x0,0x0                                                                                         
0006ec   0eff     MOVLW     0xff                                                                                            
0006ee   20da     ADDWFC    0xda,0x0,0x0                                                                                    
0006f0   6e01     MOVWF     0x1,0x0                                                                                         
0006f2   50de     MOVF      0xde,0x0,0x0                                                                                    
0006f4   2400     ADDWF     0x0,0x0,0x0                                                                                     
0006f6   6ee9     MOVWF     0xe9,0x0                                                                                        
0006f8   50dd     MOVF      0xdd,0x0,0x0                                                                                    
0006fa   2001     ADDWFC    0x1,0x0,0x0                                                                                     
0006fc   6eea     MOVWF     0xea,0x0                                                                                        
0006fe   50ef     MOVF      0xef,0x0,0x0                                                                                    
000700   6ee6     MOVWF     0xe6,0x0                                                                                        
000702   ec8f     CALL      0x91e,0x0                                                                                       
000704   f004                                                                                                               
000706   52e5     MOVF      0xe5,0x1,0x0                                                                                    
000708   2adf     INCF      0xdf,0x1,0x0                                                                                    
00070a   0e01     MOVLW     0x1                                                                                             
00070c   e301     BNC       0x710                                                                                           
00070e   2adb     INCF      0xdb,0x1,0x0                                                                                    
000710   d7de     BRA       0x6ce                                                                                           
000712   0efa     MOVLW     0xfa            uartPutc(UART_END_BYTE);                                                        F:\MCP\projects\CAN\canToSerial\Source\Main.c
000714   6ee6     MOVWF     0xe6,0x0                                                                                        
000716   ec8f     CALL      0x91e,0x0                                                                                       
000718   f004                                                                                                               
00071a   52e5     MOVF      0xe5,0x1,0x0                                                                                    
                                                                                                                            F:\MCP\projects\CAN\canToSerial\Source\Main.c
00071c   0e02     MOVLW     0x2            }                                                                                F:\MCP\projects\CAN\canToSerial\Source\Main.c
00071e   5ce1     SUBWF     0xe1,0x0,0x0                                                                                    
000720   e202     BC        0x726                                                                                           
000722   6ae1     CLRF      0xe1,0x0                                                                                        
000724   52e5     MOVF      0xe5,0x1,0x0                                                                                    
000726   6ee1     MOVWF     0xe1,0x0                                                                                        
000728   52e5     MOVF      0xe5,0x1,0x0                                                                                    
00072a   cfe7     MOVFF     0xfe7,0xfd9                                                                                     
00072c   ffd9                                                                                                               
00072e   0012     RETURN    0x0                                                                                             
                                           #endif                                                                           F:\MCP\projects\CAN\canToSerial\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canToSerial\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canToSerial\Source\Main.c
                                           /*                                                                               F:\MCP\projects\CAN\canToSerial\Source\Main.c
                                           *    Function: uartParse                                                            F:\MCP\projects\CAN\canToSerial\Source\Main.c
                                           *                                                                                F:\MCP\projects\CAN\canToSerial\Source\Main.c
                                           *    Input:  Received uart message                                                   F:\MCP\projects\CAN\canToSerial\Source\Main.c
                                           *    Output: none                                                                   F:\MCP\projects\CAN\canToSerial\Source\Main.c
                                           *    Pre-conditions: uartInit and received byte.                                    F:\MCP\projects\CAN\canToSerial\Source\Main.c
                                           *    Affects: Sensors/actuators/etc. See code.                                      F:\MCP\projects\CAN\canToSerial\Source\Main.c
                                           *    Depends: none.                                                                 F:\MCP\projects\CAN\canToSerial\Source\Main.c
                                           */                                                                               F:\MCP\projects\CAN\canToSerial\Source\Main.c
                                           #ifdef USE_UART                                                                  F:\MCP\projects\CAN\canToSerial\Source\Main.c
000730   cfd9     MOVFF     0xfd9,0xfe6    void uartParse(BYTE c)                                                           F:\MCP\projects\CAN\canToSerial\Source\Main.c
000732   ffe6                                                                                                               
000734   cfe1     MOVFF     0xfe1,0xfd9                                                                                     
000736   ffd9                                                                                                               
000738   0e11     MOVLW     0x11                                                                                            
00073a   26e1     ADDWF     0xe1,0x1,0x0                                                                                    
                                           {                                                                                F:\MCP\projects\CAN\canToSerial\Source\Main.c
                                            BYTE i;                                                                         F:\MCP\projects\CAN\canToSerial\Source\Main.c
00073c   0e01     MOVLW     0x1             unsigned int wait = 0;                                                          F:\MCP\projects\CAN\canToSerial\Source\Main.c
00073e   6adb     CLRF      0xdb,0x0                                                                                        
000740   0e02     MOVLW     0x2                                                                                             
000742   6adb     CLRF      0xdb,0x0                                                                                        
                                            CAN_MESSAGE cm;                                                                 F:\MCP\projects\CAN\canToSerial\Source\Main.c
                                            static BOOL waitingMessage = FALSE;                                             F:\MCP\projects\CAN\canToSerial\Source\Main.c
                                            static TICK timeout=0;                                                          F:\MCP\projects\CAN\canToSerial\Source\Main.c
                                            static BYTE count=0;                                                            F:\MCP\projects\CAN\canToSerial\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canToSerial\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canToSerial\Source\Main.c
000744   0100     MOVLB     0x0             if (waitingMessage==TRUE && (tickGet()-timeout)>TICK_SECOND/20)                 F:\MCP\projects\CAN\canToSerial\Source\Main.c
000746   056e     DECF      0x6e,0x0,0x1                                                                                    
000748   e11a     BNZ       0x77e                                                                                           
00074a   ec60     CALL      0xac0,0x0                                                                                       
00074c   f005                                                                                                               
00074e   0100     MOVLB     0x0                                                                                             
000750   516f     MOVF      0x6f,0x0,0x1                                                                                    
000752   5c18     SUBWF     0x18,0x0,0x0                                                                                    
000754   6e00     MOVWF     0x0,0x0                                                                                         
000756   5170     MOVF      0x70,0x0,0x1                                                                                    
000758   5819     SUBWFB    0x19,0x0,0x0                                                                                    
00075a   6e01     MOVWF     0x1,0x0                                                                                         
00075c   5171     MOVF      0x71,0x0,0x1                                                                                    
00075e   581a     SUBWFB    0x1a,0x0,0x0                                                                                    
000760   6e02     MOVWF     0x2,0x0                                                                                         
000762   5172     MOVF      0x72,0x0,0x1                                                                                    
000764   581b     SUBWFB    0x1b,0x0,0x0                                                                                    
000766   6e03     MOVWF     0x3,0x0                                                                                         
000768   80d8     BSF       0xd8,0x0,0x0                                                                                    
00076a   0e05     MOVLW     0x5                                                                                             
00076c   5400     SUBFWB    0x0,0x0,0x0                                                                                     
00076e   0e00     MOVLW     0x0                                                                                             
000770   5401     SUBFWB    0x1,0x0,0x0                                                                                     
000772   0e00     MOVLW     0x0                                                                                             
000774   5402     SUBFWB    0x2,0x0,0x0                                                                                     
000776   0e00     MOVLW     0x0                                                                                             
000778   5403     SUBFWB    0x3,0x0,0x0                                                                                     
00077a   e201     BC        0x77e                                                                                           
                                            {                                                                               F:\MCP\projects\CAN\canToSerial\Source\Main.c
00077c   6b6e     CLRF      0x6e,0x1            waitingMessage=FALSE;                                                          F:\MCP\projects\CAN\canToSerial\Source\Main.c
                                            }                                                                               F:\MCP\projects\CAN\canToSerial\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canToSerial\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canToSerial\Source\Main.c
00077e   056e     DECF      0x6e,0x0,0x1    if (waitingMessage==TRUE)                                                       F:\MCP\projects\CAN\canToSerial\Source\Main.c
000780   e001     BZ        0x784                                                                                           
000782   d095     BRA       0x8ae                                                                                           
                                            {                                                                               F:\MCP\projects\CAN\canToSerial\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canToSerial\Source\Main.c
000784   ec60     CALL      0xac0,0x0           timeout=tickGet();                                                             F:\MCP\projects\CAN\canToSerial\Source\Main.c
000786   f005                                                                                                               
000788   c018     MOVFF     0x18,0x6f                                                                                       
00078a   f06f                                                                                                               
00078c   c019     MOVFF     0x19,0x70                                                                                       
00078e   f070                                                                                                               
000790   c01a     MOVFF     0x1a,0x71                                                                                       
000792   f071                                                                                                               
000794   c01b     MOVFF     0x1b,0x72                                                                                       
000796   f072                                                                                                               
                                                                                                                            F:\MCP\projects\CAN\canToSerial\Source\Main.c
                                                // UART END                                                                    F:\MCP\projects\CAN\canToSerial\Source\Main.c
000798   0e0e     MOVLW     0xe                 if(count>=14)                                                                  F:\MCP\projects\CAN\canToSerial\Source\Main.c
00079a   0100     MOVLB     0x0                                                                                             
00079c   5d73     SUBWF     0x73,0x0,0x1                                                                                    
00079e   e336     BNC       0x80c                                                                                           
                                                {                                                                              F:\MCP\projects\CAN\canToSerial\Source\Main.c
0007a0   0efe     MOVLW     0xfe                    if (c==UART_END_BYTE)                                                         F:\MCP\projects\CAN\canToSerial\Source\Main.c
0007a2   50db     MOVF      0xdb,0x0,0x0                                                                                    
0007a4   6e00     MOVWF     0x0,0x0                                                                                         
0007a6   6a01     CLRF      0x1,0x0                                                                                         
0007a8   0efa     MOVLW     0xfa                                                                                            
0007aa   1800     XORWF     0x0,0x0,0x0                                                                                     
0007ac   e101     BNZ       0x7b0                                                                                           
0007ae   5001     MOVF      0x1,0x0,0x0                                                                                     
0007b0   e12a     BNZ       0x806                                                                                           
                                                    {                                                                             F:\MCP\projects\CAN\canToSerial\Source\Main.c
0007b2   50d9     MOVF      0xd9,0x0,0x0                while(!canSendMessage(cm));                                                  F:\MCP\projects\CAN\canToSerial\Source\Main.c
0007b4   0f03     ADDLW     0x3                                                                                             
0007b6   6ee9     MOVWF     0xe9,0x0                                                                                        
0007b8   cfda     MOVFF     0xfda,0xfea                                                                                     
0007ba   ffea                                                                                                               
0007bc   cfee     MOVFF     0xfee,0xfe6                                                                                     
0007be   ffe6                                                                                                               
0007c0   cfee     MOVFF     0xfee,0xfe6                                                                                     
0007c2   ffe6                                                                                                               
0007c4   cfee     MOVFF     0xfee,0xfe6                                                                                     
0007c6   ffe6                                                                                                               
0007c8   cfee     MOVFF     0xfee,0xfe6                                                                                     
0007ca   ffe6                                                                                                               
0007cc   cfee     MOVFF     0xfee,0xfe6                                                                                     
0007ce   ffe6                                                                                                               
0007d0   cfee     MOVFF     0xfee,0xfe6                                                                                     
0007d2   ffe6                                                                                                               
0007d4   cfee     MOVFF     0xfee,0xfe6                                                                                     
0007d6   ffe6                                                                                                               
0007d8   cfee     MOVFF     0xfee,0xfe6                                                                                     
0007da   ffe6                                                                                                               
0007dc   cfee     MOVFF     0xfee,0xfe6                                                                                     
0007de   ffe6                                                                                                               
0007e0   cfee     MOVFF     0xfee,0xfe6                                                                                     
0007e2   ffe6                                                                                                               
0007e4   cfee     MOVFF     0xfee,0xfe6                                                                                     
0007e6   ffe6                                                                                                               
0007e8   cfee     MOVFF     0xfee,0xfe6                                                                                     
0007ea   ffe6                                                                                                               
0007ec   cfee     MOVFF     0xfee,0xfe6                                                                                     
0007ee   ffe6                                                                                                               
0007f0   cfee     MOVFF     0xfee,0xfe6                                                                                     
0007f2   ffe6                                                                                                               
0007f4   eca0     CALL      0x340,0x0                                                                                       
0007f6   f001                                                                                                               
0007f8   6e00     MOVWF     0x0,0x0                                                                                         
0007fa   0e0e     MOVLW     0xe                                                                                             
0007fc   5ee1     SUBWF     0xe1,0x1,0x0                                                                                    
0007fe   5000     MOVF      0x0,0x0,0x0                                                                                     
000800   0900     IORLW     0x0                                                                                             
000802   e101     BNZ       0x806                                                                                           
000804   d7d6     BRA       0x7b2                                                                                           
                                                    }                                                                             F:\MCP\projects\CAN\canToSerial\Source\Main.c
000806   0100     MOVLB     0x0                     waitingMessage=FALSE;                                                         F:\MCP\projects\CAN\canToSerial\Source\Main.c
000808   6b6e     CLRF      0x6e,0x1                                                                                        
00080a   d073     BRA       0x8f2                   return;                                                                       F:\MCP\projects\CAN\canToSerial\Source\Main.c
                                                }                                                                              F:\MCP\projects\CAN\canToSerial\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canToSerial\Source\Main.c
                                                // data                                                                        F:\MCP\projects\CAN\canToSerial\Source\Main.c
00080c   0e06     MOVLW     0x6                 if(count>=6)                                                                   F:\MCP\projects\CAN\canToSerial\Source\Main.c
00080e   5d73     SUBWF     0x73,0x0,0x1                                                                                    
000810   e313     BNC       0x838                                                                                           
                                                {                                                                              F:\MCP\projects\CAN\canToSerial\Source\Main.c
000812   50d9     MOVF      0xd9,0x0,0x0            cm.data[count-6]=c;                                                           F:\MCP\projects\CAN\canToSerial\Source\Main.c
000814   0f09     ADDLW     0x9                                                                                             
000816   6e00     MOVWF     0x0,0x0                                                                                         
000818   cfda     MOVFF     0xfda,0x1                                                                                       
00081a   f001                                                                                                               
00081c   0e06     MOVLW     0x6                                                                                             
00081e   5d73     SUBWF     0x73,0x0,0x1                                                                                    
000820   010f     MOVLB     0xf                                                                                             
000822   2400     ADDWF     0x0,0x0,0x0                                                                                     
000824   6ee9     MOVWF     0xe9,0x0                                                                                        
000826   0e00     MOVLW     0x0                                                                                             
000828   2001     ADDWFC    0x1,0x0,0x0                                                                                     
00082a   6eea     MOVWF     0xea,0x0                                                                                        
00082c   0efe     MOVLW     0xfe                                                                                            
00082e   cfdb     MOVFF     0xfdb,0xfef                                                                                     
000830   ffef                                                                                                               
000832   0100     MOVLB     0x0                     count++;                                                                      F:\MCP\projects\CAN\canToSerial\Source\Main.c
000834   2b73     INCF      0x73,0x1,0x1                                                                                    
000836   d05d     BRA       0x8f2                   return;                                                                       F:\MCP\projects\CAN\canToSerial\Source\Main.c
                                                }                                                                              F:\MCP\projects\CAN\canToSerial\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canToSerial\Source\Main.c
                                                // data length                                                                 F:\MCP\projects\CAN\canToSerial\Source\Main.c
000838   0e05     MOVLW     0x5                 if(count>=5)                                                                   F:\MCP\projects\CAN\canToSerial\Source\Main.c
00083a   5d73     SUBWF     0x73,0x0,0x1                                                                                    
00083c   e308     BNC       0x84e                                                                                           
                                                {                                                                              F:\MCP\projects\CAN\canToSerial\Source\Main.c
00083e   0efe     MOVLW     0xfe                    cm.data_length=c;                                                             F:\MCP\projects\CAN\canToSerial\Source\Main.c
000840   50db     MOVF      0xdb,0x0,0x0                                                                                    
000842   6ee7     MOVWF     0xe7,0x0                                                                                        
000844   0e08     MOVLW     0x8                                                                                             
000846   cfe7     MOVFF     0xfe7,0xfdb                                                                                     
000848   ffdb                                                                                                               
00084a   2b73     INCF      0x73,0x1,0x1            count++;                                                                      F:\MCP\projects\CAN\canToSerial\Source\Main.c
00084c   d052     BRA       0x8f2                   return;                                                                       F:\MCP\projects\CAN\canToSerial\Source\Main.c
                                                }                                                                              F:\MCP\projects\CAN\canToSerial\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canToSerial\Source\Main.c
                                                // extended                                                                    F:\MCP\projects\CAN\canToSerial\Source\Main.c
00084e   0e04     MOVLW     0x4                 if(count>=4)                                                                   F:\MCP\projects\CAN\canToSerial\Source\Main.c
000850   5d73     SUBWF     0x73,0x0,0x1                                                                                    
000852   e308     BNC       0x864                                                                                           
                                                {                                                                              F:\MCP\projects\CAN\canToSerial\Source\Main.c
000854   0efe     MOVLW     0xfe                    cm.extended=c;                                                                F:\MCP\projects\CAN\canToSerial\Source\Main.c
000856   50db     MOVF      0xdb,0x0,0x0                                                                                    
000858   6ee7     MOVWF     0xe7,0x0                                                                                        
00085a   0e07     MOVLW     0x7                                                                                             
00085c   cfe7     MOVFF     0xfe7,0xfdb                                                                                     
00085e   ffdb                                                                                                               
000860   2b73     INCF      0x73,0x1,0x1            count++;                                                                      F:\MCP\projects\CAN\canToSerial\Source\Main.c
000862   d047     BRA       0x8f2                   return;                                                                       F:\MCP\projects\CAN\canToSerial\Source\Main.c
                                                }                                                                              F:\MCP\projects\CAN\canToSerial\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canToSerial\Source\Main.c
                                                // ident                                                                       F:\MCP\projects\CAN\canToSerial\Source\Main.c
000864   0e00     MOVLW     0x0                 if(count>=0)                                                                   F:\MCP\projects\CAN\canToSerial\Source\Main.c
000866   5d73     SUBWF     0x73,0x0,0x1                                                                                    
000868   e322     BNC       0x8ae                                                                                           
                                                {                                                                              F:\MCP\projects\CAN\canToSerial\Source\Main.c
00086a   0efe     MOVLW     0xfe                    cm.ident+=((DWORD)c<<(count*8));                                              F:\MCP\projects\CAN\canToSerial\Source\Main.c
00086c   cfdb     MOVFF     0xfdb,0x0                                                                                       
00086e   f000                                                                                                               
000870   6a01     CLRF      0x1,0x0                                                                                         
000872   6a02     CLRF      0x2,0x0                                                                                         
000874   6a03     CLRF      0x3,0x0                                                                                         
000876   0e08     MOVLW     0x8                                                                                             
000878   0373     MULWF     0x73,0x1                                                                                        
00087a   50f3     MOVF      0xf3,0x0,0x0                                                                                    
00087c   0b1f     ANDLW     0x1f                                                                                            
00087e   e007     BZ        0x88e                                                                                           
000880   90d8     BCF       0xd8,0x0,0x0                                                                                    
000882   3600     RLCF      0x0,0x1,0x0                                                                                     
000884   3601     RLCF      0x1,0x1,0x0                                                                                     
000886   3602     RLCF      0x2,0x1,0x0                                                                                     
000888   3603     RLCF      0x3,0x1,0x0                                                                                     
00088a   06e8     DECF      0xe8,0x1,0x0                                                                                    
00088c   e1f9     BNZ       0x880                                                                                           
00088e   50d9     MOVF      0xd9,0x0,0x0                                                                                    
000890   0f03     ADDLW     0x3                                                                                             
000892   6ee9     MOVWF     0xe9,0x0                                                                                        
000894   cfda     MOVFF     0xfda,0xfea                                                                                     
000896   ffea                                                                                                               
000898   5000     MOVF      0x0,0x0,0x0                                                                                     
00089a   26ee     ADDWF     0xee,0x1,0x0                                                                                    
00089c   5001     MOVF      0x1,0x0,0x0                                                                                     
00089e   22ee     ADDWFC    0xee,0x1,0x0                                                                                    
0008a0   5002     MOVF      0x2,0x0,0x0                                                                                     
0008a2   22ee     ADDWFC    0xee,0x1,0x0                                                                                    
0008a4   5003     MOVF      0x3,0x0,0x0                                                                                     
0008a6   22ee     ADDWFC    0xee,0x1,0x0                                                                                    
0008a8   0100     MOVLB     0x0                     count++;                                                                      F:\MCP\projects\CAN\canToSerial\Source\Main.c
0008aa   2b73     INCF      0x73,0x1,0x1                                                                                    
0008ac   d022     BRA       0x8f2                   return;                                                                       F:\MCP\projects\CAN\canToSerial\Source\Main.c
                                                }                                                                              F:\MCP\projects\CAN\canToSerial\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canToSerial\Source\Main.c
                                            }                                                                               F:\MCP\projects\CAN\canToSerial\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canToSerial\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canToSerial\Source\Main.c
0008ae   0efe     MOVLW     0xfe            if (c==UART_START_BYTE && waitingMessage==FALSE)                                F:\MCP\projects\CAN\canToSerial\Source\Main.c
0008b0   50db     MOVF      0xdb,0x0,0x0                                                                                    
0008b2   6e00     MOVWF     0x0,0x0                                                                                         
0008b4   6a01     CLRF      0x1,0x0                                                                                         
0008b6   0efd     MOVLW     0xfd                                                                                            
0008b8   1800     XORWF     0x0,0x0,0x0                                                                                     
0008ba   e101     BNZ       0x8be                                                                                           
0008bc   5001     MOVF      0x1,0x0,0x0                                                                                     
0008be   e119     BNZ       0x8f2                                                                                           
0008c0   516e     MOVF      0x6e,0x0,0x1                                                                                    
0008c2   e117     BNZ       0x8f2                                                                                           
                                            {                                                                               F:\MCP\projects\CAN\canToSerial\Source\Main.c
0008c4   0e01     MOVLW     0x1                     waitingMessage=TRUE;                                                          F:\MCP\projects\CAN\canToSerial\Source\Main.c
0008c6   6f6e     MOVWF     0x6e,0x1                                                                                        
0008c8   ec60     CALL      0xac0,0x0               timeout=tickGet();                                                            F:\MCP\projects\CAN\canToSerial\Source\Main.c
0008ca   f005                                                                                                               
0008cc   c018     MOVFF     0x18,0x6f                                                                                       
0008ce   f06f                                                                                                               
0008d0   c019     MOVFF     0x19,0x70                                                                                       
0008d2   f070                                                                                                               
0008d4   c01a     MOVFF     0x1a,0x71                                                                                       
0008d6   f071                                                                                                               
0008d8   c01b     MOVFF     0x1b,0x72                                                                                       
0008da   f072                                                                                                               
0008dc   0100     MOVLB     0x0                     count=0;                                                                      F:\MCP\projects\CAN\canToSerial\Source\Main.c
0008de   6b73     CLRF      0x73,0x1                                                                                        
0008e0   0e03     MOVLW     0x3                     cm.ident=0;                                                                   F:\MCP\projects\CAN\canToSerial\Source\Main.c
0008e2   6adb     CLRF      0xdb,0x0                                                                                        
0008e4   0e04     MOVLW     0x4                                                                                             
0008e6   6adb     CLRF      0xdb,0x0                                                                                        
0008e8   0e05     MOVLW     0x5                                                                                             
0008ea   6adb     CLRF      0xdb,0x0                                                                                        
0008ec   0e06     MOVLW     0x6                                                                                             
0008ee   6adb     CLRF      0xdb,0x0                                                                                        
0008f0   d000     BRA       0x8f2                   return;                                                                       F:\MCP\projects\CAN\canToSerial\Source\Main.c
                                            }                                                                               F:\MCP\projects\CAN\canToSerial\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canToSerial\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canToSerial\Source\Main.c
0008f2   0e11     MOVLW     0x11           }                                                                                F:\MCP\projects\CAN\canToSerial\Source\Main.c
0008f4   5ce1     SUBWF     0xe1,0x0,0x0                                                                                    
0008f6   e202     BC        0x8fc                                                                                           
0008f8   6ae1     CLRF      0xe1,0x0                                                                                        
0008fa   52e5     MOVF      0xe5,0x1,0x0                                                                                    
0008fc   6ee1     MOVWF     0xe1,0x0                                                                                        
0008fe   52e5     MOVF      0xe5,0x1,0x0                                                                                    
000900   cfe7     MOVFF     0xfe7,0xfd9                                                                                     
000902   ffd9                                                                                                               
000904   0012     RETURN    0x0                                                                                             
                                           #endif                                                                           F:\MCP\projects\CAN\canToSerial\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   e001     BZ        0x52                                                                                            
000050   d7fb     BRA       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
000052   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
000054   9e70     BCF       0x70,0x7,0x0    BRGCON1bits.SJW1=0;                                                             F:\MCP\projects\CAN\Source\CAN.c
000056   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
000058   0e09     MOVLW     0x9             BRGCON1=BRGCON1|CAN_BRP;                                                        F:\MCP\projects\CAN\Source\CAN.c
00005a   1070     IORWF     0x70,0x0,0x0                                                                                    
00005c   6e70     MOVWF     0x70,0x0                                                                                        
                                                                                                                            F:\MCP\projects\CAN\Source\CAN.c
                                            // Maximum PHEG1                                                                F:\MCP\projects\CAN\Source\CAN.c
00005e   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
000060   9a71     BCF       0x71,0x5,0x0    BRGCON2bits.SEG1PH2 = 0;                                                        F:\MCP\projects\CAN\Source\CAN.c
000062   9871     BCF       0x71,0x4,0x0    BRGCON2bits.SEG1PH1 = 0;                                                        F:\MCP\projects\CAN\Source\CAN.c
000064   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
000066   9471     BCF       0x71,0x2,0x0    BRGCON2bits.PRSEG2 = 0;                                                         F:\MCP\projects\CAN\Source\CAN.c
000068   9271     BCF       0x71,0x1,0x0    BRGCON2bits.PRSEG1 = 0;                                                         F:\MCP\projects\CAN\Source\CAN.c
00006a   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
00006c   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
00006e   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
000070   9472     BCF       0x72,0x2,0x0    BRGCON3bits.SEG2PH2 = 0;                                                        F:\MCP\projects\CAN\Source\CAN.c
000072   9272     BCF       0x72,0x1,0x0    BRGCON3bits.SEG2PH1 = 0;                                                        F:\MCP\projects\CAN\Source\CAN.c
000074   8072     BSF       0x72,0x0,0x0    BRGCON3bits.SEG2PH0 = 1;                                                        F:\MCP\projects\CAN\Source\CAN.c
                                                                                                                            F:\MCP\projects\CAN\Source\CAN.c
000076   6a77     CLRF      0x77,0x0        ECANCON=0;                                                                      F:\MCP\projects\CAN\Source\CAN.c
000078   9e77     BCF       0x77,0x7,0x0    ECANCONbits.MDSEL1 = 0;                                                         F:\MCP\projects\CAN\Source\CAN.c
00007a   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
00007c   8c60     BSF       0x60,0x6,0x0    RXB0CONbits.RXM1=1;                                                             F:\MCP\projects\CAN\Source\CAN.c
00007e   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
000080   010d     MOVLB     0xd             TXBIE = 0;                                                                      F:\MCP\projects\CAN\Source\CAN.c
000082   6bfc     CLRF      0xfc,0x1                                                                                        
                                                                                                                            F:\MCP\projects\CAN\Source\CAN.c
                                            //rx any interrupt                                                              F:\MCP\projects\CAN\Source\CAN.c
000084   6aa4     CLRF      0xa4,0x0        PIR3 = 0;                                                                       F:\MCP\projects\CAN\Source\CAN.c
000086   0e03     MOVLW     0x3             PIE3 = 0b00000011;                                                              F:\MCP\projects\CAN\Source\CAN.c
000088   6ea3     MOVWF     0xa3,0x0                                                                                        
                                                                                                                            F:\MCP\projects\CAN\Source\CAN.c
                                            // High interrupt                                                               F:\MCP\projects\CAN\Source\CAN.c
00008a   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
00008c   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
00008e   6a6f     CLRF      0x6f,0x0            CANCON = 0x00;//request normal mode                                            F:\MCP\projects\CAN\Source\CAN.c
000090   0ee0     MOVLW     0xe0                while ((CANSTAT & 0xE0) != 0x00 );//wait for normal mode                       F:\MCP\projects\CAN\Source\CAN.c
000092   146e     ANDWF     0x6e,0x0,0x0                                                                                    
000094   e001     BZ        0x98                                                                                            
000096   d7fc     BRA       0x90                                                                                            
                                            #endif                                                                          F:\MCP\projects\CAN\Source\CAN.c
                                                                                                                            F:\MCP\projects\CAN\Source\CAN.c
000098   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
00009a   50a4     MOVF      0xa4,0x0,0x0    if (PIR3bits.RXBnIF || PIR3bits.RXB1IF || PIR3bits.RXB0IF)                      F:\MCP\projects\CAN\Source\CAN.c
00009c   0b02     ANDLW     0x2                                                                                             
00009e   e106     BNZ       0xac                                                                                            
0000a0   50a4     MOVF      0xa4,0x0,0x0                                                                                    
0000a2   0b02     ANDLW     0x2                                                                                             
0000a4   e103     BNZ       0xac                                                                                            
0000a6   50a4     MOVF      0xa4,0x0,0x0                                                                                    
0000a8   0b01     ANDLW     0x1                                                                                             
0000aa   e047     BZ        0x13a                                                                                           
                                            {                                                                               F:\MCP\projects\CAN\Source\CAN.c
                                                // Get which buffer that is ful.                                               F:\MCP\projects\CAN\Source\CAN.c
0000ac   ae60     BTFSS     0x60,0x7,0x0             if (RXB0CONbits.RXFUL) { ECANCON=(ECANCON&0b00000)|0b10000; canGetPacket(); } F:\MCP\projects\CAN\Source\CAN.c
0000ae   d006     BRA       0xbc                                                                                            
0000b0   0e00     MOVLW     0x0                                                                                             
0000b2   1477     ANDWF     0x77,0x0,0x0                                                                                    
0000b4   0910     IORLW     0x10                                                                                            
0000b6   6e77     MOVWF     0x77,0x0                                                                                        
0000b8   d841     RCALL     0x13c                                                                                           
0000ba   d039     BRA       0x12e               else if (RXB1CONbits.RXFUL) { ECANCON=(ECANCON&0b00000)|0b10001; canGetPacket(); } F:\MCP\projects\CAN\Source\CAN.c
0000bc   010f     MOVLB     0xf                                                                                             
0000be   af50     BTFSS     0x50,0x7,0x1                                                                                    
0000c0   d006     BRA       0xce                                                                                            
0000c2   0e00     MOVLW     0x0                                                                                             
0000c4   1477     ANDWF     0x77,0x0,0x0                                                                                    
0000c6   0911     IORLW     0x11                                                                                            
0000c8   6e77     MOVWF     0x77,0x0                                                                                        
0000ca   d838     RCALL     0x13c                                                                                           
0000cc   d030     BRA       0x12e               else if (B0CONbits.RXFUL)   { ECANCON=(ECANCON&0b00000)|0b10010; canGetPacket(); } F:\MCP\projects\CAN\Source\CAN.c
0000ce   010e     MOVLB     0xe                                                                                             
0000d0   af20     BTFSS     0x20,0x7,0x1                                                                                    
0000d2   d006     BRA       0xe0                                                                                            
0000d4   0e00     MOVLW     0x0                                                                                             
0000d6   1477     ANDWF     0x77,0x0,0x0                                                                                    
0000d8   0912     IORLW     0x12                                                                                            
0000da   6e77     MOVWF     0x77,0x0                                                                                        
0000dc   d82f     RCALL     0x13c                                                                                           
0000de   d027     BRA       0x12e               else if (B1CONbits.RXFUL)   { ECANCON=(ECANCON&0b00000)|0b10011; canGetPacket(); } F:\MCP\projects\CAN\Source\CAN.c
0000e0   af30     BTFSS     0x30,0x7,0x1                                                                                    
0000e2   d006     BRA       0xf0                                                                                            
0000e4   0e00     MOVLW     0x0                                                                                             
0000e6   1477     ANDWF     0x77,0x0,0x0                                                                                    
0000e8   0913     IORLW     0x13                                                                                            
0000ea   6e77     MOVWF     0x77,0x0                                                                                        
0000ec   d827     RCALL     0x13c                                                                                           
0000ee   d01f     BRA       0x12e               else if (B2CONbits.RXFUL)   { ECANCON=(ECANCON&0b00000)|0b10100; canGetPacket(); } F:\MCP\projects\CAN\Source\CAN.c
0000f0   af40     BTFSS     0x40,0x7,0x1                                                                                    
0000f2   d006     BRA       0x100                                                                                           
0000f4   0e00     MOVLW     0x0                                                                                             
0000f6   1477     ANDWF     0x77,0x0,0x0                                                                                    
0000f8   0914     IORLW     0x14                                                                                            
0000fa   6e77     MOVWF     0x77,0x0                                                                                        
0000fc   d81f     RCALL     0x13c                                                                                           
0000fe   d017     BRA       0x12e               else if (B3CONbits.RXFUL)   { ECANCON=(ECANCON&0b00000)|0b10101; canGetPacket(); } F:\MCP\projects\CAN\Source\CAN.c
000100   af50     BTFSS     0x50,0x7,0x1                                                                                    
000102   d006     BRA       0x110                                                                                           
000104   0e00     MOVLW     0x0                                                                                             
000106   1477     ANDWF     0x77,0x0,0x0                                                                                    
000108   0915     IORLW     0x15                                                                                            
00010a   6e77     MOVWF     0x77,0x0                                                                                        
00010c   d817     RCALL     0x13c                                                                                           
00010e   d00f     BRA       0x12e               else if (B4CONbits.RXFUL)   { ECANCON=(ECANCON&0b00000)|0b10110; canGetPacket(); } F:\MCP\projects\CAN\Source\CAN.c
000110   af60     BTFSS     0x60,0x7,0x1                                                                                    
000112   d006     BRA       0x120                                                                                           
000114   0e00     MOVLW     0x0                                                                                             
000116   1477     ANDWF     0x77,0x0,0x0                                                                                    
000118   0916     IORLW     0x16                                                                                            
00011a   6e77     MOVWF     0x77,0x0                                                                                        
00011c   d80f     RCALL     0x13c                                                                                           
00011e   d007     BRA       0x12e               else if (B5CONbits.RXFUL)   { ECANCON=(ECANCON&0b00000)|0b10111; canGetPacket(); } F:\MCP\projects\CAN\Source\CAN.c
000120   af70     BTFSS     0x70,0x7,0x1                                                                                    
000122   d005     BRA       0x12e                                                                                           
000124   0e00     MOVLW     0x0                                                                                             
000126   1477     ANDWF     0x77,0x0,0x0                                                                                    
000128   0917     IORLW     0x17                                                                                            
00012a   6e77     MOVWF     0x77,0x0                                                                                        
00012c   d807     RCALL     0x13c                                                                                           
                                                                                                                            F:\MCP\projects\CAN\Source\CAN.c
00012e   b2a4     BTFSC     0xa4,0x1,0x0        if (PIR3bits.RXBnIF) {PIR3bits.RXBnIF = 0;}                                    F:\MCP\projects\CAN\Source\CAN.c
000130   92a4     BCF       0xa4,0x1,0x0                                                                                    
000132   b2a4     BTFSC     0xa4,0x1,0x0        if (PIR3bits.RXB1IF) {PIR3bits.RXB1IF = 0;}                                    F:\MCP\projects\CAN\Source\CAN.c
000134   92a4     BCF       0xa4,0x1,0x0                                                                                    
000136   b0a4     BTFSC     0xa4,0x0,0x0        if (PIR3bits.RXB0IF) {PIR3bits.RXB0IF = 0;}                                    F:\MCP\projects\CAN\Source\CAN.c
000138   90a4     BCF       0xa4,0x0,0x0                                                                                    
                                                                                                                            F:\MCP\projects\CAN\Source\CAN.c
                                            }                                                                               F:\MCP\projects\CAN\Source\CAN.c
00013a   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
00013c   cfd9     MOVFF     0xfd9,0xfe6    void canGetPacket()                                                              F:\MCP\projects\CAN\Source\CAN.c
00013e   ffe6                                                                                                               
000140   cfe1     MOVFF     0xfe1,0xfd9                                                                                     
000142   ffd9                                                                                                               
000144   0e0e     MOVLW     0xe                                                                                             
000146   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
000148   5062     MOVF      0x62,0x0,0x0        cm.extended=(RXB0SIDLbits.EXID==0?FALSE:TRUE);                                 F:\MCP\projects\CAN\Source\CAN.c
00014a   0b08     ANDLW     0x8                                                                                             
00014c   e102     BNZ       0x152                                                                                           
00014e   0e00     MOVLW     0x0                                                                                             
000150   d001     BRA       0x154                                                                                           
000152   0e01     MOVLW     0x1                                                                                             
000154   6ee7     MOVWF     0xe7,0x0                                                                                        
000156   0e04     MOVLW     0x4                                                                                             
000158   cfe7     MOVFF     0xfe7,0xfdb                                                                                     
00015a   ffdb                                                                                                               
                                                                                                                            F:\MCP\projects\CAN\Source\CAN.c
                                                // Clear                                                                       F:\MCP\projects\CAN\Source\CAN.c
00015c   6ade     CLRF      0xde,0x0            cm.ident=0;                                                                    F:\MCP\projects\CAN\Source\CAN.c
00015e   6ade     CLRF      0xde,0x0                                                                                        
000160   6ade     CLRF      0xde,0x0                                                                                        
000162   6add     CLRF      0xdd,0x0                                                                                        
000164   52dd     MOVF      0xdd,0x1,0x0                                                                                    
000166   52dd     MOVF      0xdd,0x1,0x0                                                                                    
                                                                                                                            F:\MCP\projects\CAN\Source\CAN.c
                                                                                                                            F:\MCP\projects\CAN\Source\CAN.c
000168   04db     DECF      0xdb,0x0,0x0        if (cm.extended==TRUE)                                                         F:\MCP\projects\CAN\Source\CAN.c
00016a   e16f     BNZ       0x24a                                                                                           
                                                {                                                                              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
00016c   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
00016e   6e00     MOVWF     0x0,0x0                                                                                         
000170   6a01     CLRF      0x1,0x0                                                                                         
000172   6a02     CLRF      0x2,0x0                                                                                         
000174   6a03     CLRF      0x3,0x0                                                                                         
000176   0e15     MOVLW     0x15                                                                                            
000178   0b1f     ANDLW     0x1f                                                                                            
00017a   e007     BZ        0x18a                                                                                           
00017c   90d8     BCF       0xd8,0x0,0x0                                                                                    
00017e   3600     RLCF      0x0,0x1,0x0                                                                                     
000180   3601     RLCF      0x1,0x1,0x0                                                                                     
000182   3602     RLCF      0x2,0x1,0x0                                                                                     
000184   3603     RLCF      0x3,0x1,0x0                                                                                     
000186   06e8     DECF      0xe8,0x1,0x0                                                                                    
000188   e1f9     BNZ       0x17c                                                                                           
00018a   0ee0     MOVLW     0xe0                                                                                            
00018c   1462     ANDWF     0x62,0x0,0x0                                                                                    
00018e   6e04     MOVWF     0x4,0x0                                                                                         
000190   6a05     CLRF      0x5,0x0                                                                                         
000192   6a06     CLRF      0x6,0x0                                                                                         
000194   6a07     CLRF      0x7,0x0                                                                                         
000196   0e0d     MOVLW     0xd                                                                                             
000198   0b1f     ANDLW     0x1f                                                                                            
00019a   e007     BZ        0x1aa                                                                                           
00019c   90d8     BCF       0xd8,0x0,0x0                                                                                    
00019e   3604     RLCF      0x4,0x1,0x0                                                                                     
0001a0   3605     RLCF      0x5,0x1,0x0                                                                                     
0001a2   3606     RLCF      0x6,0x1,0x0                                                                                     
0001a4   3607     RLCF      0x7,0x1,0x0                                                                                     
0001a6   06e8     DECF      0xe8,0x1,0x0                                                                                    
0001a8   e1f9     BNZ       0x19c                                                                                           
0001aa   5004     MOVF      0x4,0x0,0x0                                                                                     
0001ac   2600     ADDWF     0x0,0x1,0x0                                                                                     
0001ae   5005     MOVF      0x5,0x0,0x0                                                                                     
0001b0   2201     ADDWFC    0x1,0x1,0x0                                                                                     
0001b2   5006     MOVF      0x6,0x0,0x0                                                                                     
0001b4   2202     ADDWFC    0x2,0x1,0x0                                                                                     
0001b6   5007     MOVF      0x7,0x0,0x0                                                                                     
0001b8   2203     ADDWFC    0x3,0x1,0x0                                                                                     
0001ba   0e03     MOVLW     0x3                                                                                             
0001bc   1462     ANDWF     0x62,0x0,0x0                                                                                    
0001be   6e08     MOVWF     0x8,0x0                                                                                         
0001c0   6a09     CLRF      0x9,0x0                                                                                         
0001c2   6a0a     CLRF      0xa,0x0                                                                                         
0001c4   6a0b     CLRF      0xb,0x0                                                                                         
0001c6   0e10     MOVLW     0x10                                                                                            
0001c8   0b1f     ANDLW     0x1f                                                                                            
0001ca   e007     BZ        0x1da                                                                                           
0001cc   90d8     BCF       0xd8,0x0,0x0                                                                                    
0001ce   3608     RLCF      0x8,0x1,0x0                                                                                     
0001d0   3609     RLCF      0x9,0x1,0x0                                                                                     
0001d2   360a     RLCF      0xa,0x1,0x0                                                                                     
0001d4   360b     RLCF      0xb,0x1,0x0                                                                                     
0001d6   06e8     DECF      0xe8,0x1,0x0                                                                                    
0001d8   e1f9     BNZ       0x1cc                                                                                           
0001da   5008     MOVF      0x8,0x0,0x0                                                                                     
0001dc   2600     ADDWF     0x0,0x1,0x0                                                                                     
0001de   5009     MOVF      0x9,0x0,0x0                                                                                     
0001e0   2201     ADDWFC    0x1,0x1,0x0                                                                                     
0001e2   500a     MOVF      0xa,0x0,0x0                                                                                     
0001e4   2202     ADDWFC    0x2,0x1,0x0                                                                                     
0001e6   500b     MOVF      0xb,0x0,0x0                                                                                     
0001e8   2203     ADDWFC    0x3,0x1,0x0                                                                                     
0001ea   5063     MOVF      0x63,0x0,0x0                                                                                    
0001ec   6e0c     MOVWF     0xc,0x0                                                                                         
0001ee   6a0d     CLRF      0xd,0x0                                                                                         
0001f0   6a0e     CLRF      0xe,0x0                                                                                         
0001f2   6a0f     CLRF      0xf,0x0                                                                                         
0001f4   0e08     MOVLW     0x8                                                                                             
0001f6   0b1f     ANDLW     0x1f                                                                                            
0001f8   e007     BZ        0x208                                                                                           
0001fa   90d8     BCF       0xd8,0x0,0x0                                                                                    
0001fc   360c     RLCF      0xc,0x1,0x0                                                                                     
0001fe   360d     RLCF      0xd,0x1,0x0                                                                                     
000200   360e     RLCF      0xe,0x1,0x0                                                                                     
000202   360f     RLCF      0xf,0x1,0x0                                                                                     
000204   06e8     DECF      0xe8,0x1,0x0                                                                                    
000206   e1f9     BNZ       0x1fa                                                                                           
000208   500c     MOVF      0xc,0x0,0x0                                                                                     
00020a   2600     ADDWF     0x0,0x1,0x0                                                                                     
00020c   500d     MOVF      0xd,0x0,0x0                                                                                     
00020e   2201     ADDWFC    0x1,0x1,0x0                                                                                     
000210   500e     MOVF      0xe,0x0,0x0                                                                                     
000212   2202     ADDWFC    0x2,0x1,0x0                                                                                     
000214   500f     MOVF      0xf,0x0,0x0                                                                                     
000216   2203     ADDWFC    0x3,0x1,0x0                                                                                     
000218   5064     MOVF      0x64,0x0,0x0                                                                                    
00021a   6e10     MOVWF     0x10,0x0                                                                                        
00021c   6a11     CLRF      0x11,0x0                                                                                        
00021e   6a12     CLRF      0x12,0x0                                                                                        
000220   6a13     CLRF      0x13,0x0                                                                                        
000222   5010     MOVF      0x10,0x0,0x0                                                                                    
000224   2600     ADDWF     0x0,0x1,0x0                                                                                     
000226   5011     MOVF      0x11,0x0,0x0                                                                                    
000228   2201     ADDWFC    0x1,0x1,0x0                                                                                     
00022a   5012     MOVF      0x12,0x0,0x0                                                                                    
00022c   2202     ADDWFC    0x2,0x1,0x0                                                                                     
00022e   5013     MOVF      0x13,0x0,0x0                                                                                    
000230   2203     ADDWFC    0x3,0x1,0x0                                                                                     
000232   c000     MOVFF     0x0,0xfdf                                                                                       
000234   ffdf                                                                                                               
000236   0e01     MOVLW     0x1                                                                                             
000238   c001     MOVFF     0x1,0xfdb                                                                                       
00023a   ffdb                                                                                                               
00023c   0e02     MOVLW     0x2                                                                                             
00023e   c002     MOVFF     0x2,0xfdb                                                                                       
000240   ffdb                                                                                                               
000242   0e03     MOVLW     0x3                                                                                             
000244   c003     MOVFF     0x3,0xfdb                                                                                       
000246   ffdb                                                                                                               
                                                                                                                            F:\MCP\projects\CAN\Source\CAN.c
                                                }                                                                              F:\MCP\projects\CAN\Source\CAN.c
000248   d02f     BRA       0x2a8               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
00024a   5061     MOVF      0x61,0x0,0x0            cm.ident = (((DWORD)RXB0SIDH)<<3) + (((DWORD)RXB0SIDL)>>5);                   F:\MCP\projects\CAN\Source\CAN.c
00024c   6e00     MOVWF     0x0,0x0                                                                                         
00024e   6a01     CLRF      0x1,0x0                                                                                         
000250   6a02     CLRF      0x2,0x0                                                                                         
000252   6a03     CLRF      0x3,0x0                                                                                         
000254   0e03     MOVLW     0x3                                                                                             
000256   0b1f     ANDLW     0x1f                                                                                            
000258   e007     BZ        0x268                                                                                           
00025a   90d8     BCF       0xd8,0x0,0x0                                                                                    
00025c   3600     RLCF      0x0,0x1,0x0                                                                                     
00025e   3601     RLCF      0x1,0x1,0x0                                                                                     
000260   3602     RLCF      0x2,0x1,0x0                                                                                     
000262   3603     RLCF      0x3,0x1,0x0                                                                                     
000264   06e8     DECF      0xe8,0x1,0x0                                                                                    
000266   e1f9     BNZ       0x25a                                                                                           
000268   5062     MOVF      0x62,0x0,0x0                                                                                    
00026a   6e04     MOVWF     0x4,0x0                                                                                         
00026c   6a05     CLRF      0x5,0x0                                                                                         
00026e   6a06     CLRF      0x6,0x0                                                                                         
000270   6a07     CLRF      0x7,0x0                                                                                         
000272   0e05     MOVLW     0x5                                                                                             
000274   90d8     BCF       0xd8,0x0,0x0                                                                                    
000276   3207     RRCF      0x7,0x1,0x0                                                                                     
000278   3206     RRCF      0x6,0x1,0x0                                                                                     
00027a   3205     RRCF      0x5,0x1,0x0                                                                                     
00027c   3204     RRCF      0x4,0x1,0x0                                                                                     
00027e   06e8     DECF      0xe8,0x1,0x0                                                                                    
000280   e1f9     BNZ       0x274                                                                                           
000282   5004     MOVF      0x4,0x0,0x0                                                                                     
000284   2600     ADDWF     0x0,0x1,0x0                                                                                     
000286   5005     MOVF      0x5,0x0,0x0                                                                                     
000288   2201     ADDWFC    0x1,0x1,0x0                                                                                     
00028a   5006     MOVF      0x6,0x0,0x0                                                                                     
00028c   2202     ADDWFC    0x2,0x1,0x0                                                                                     
00028e   5007     MOVF      0x7,0x0,0x0                                                                                     
000290   2203     ADDWFC    0x3,0x1,0x0                                                                                     
000292   c000     MOVFF     0x0,0xfdf                                                                                       
000294   ffdf                                                                                                               
000296   0e01     MOVLW     0x1                                                                                             
000298   c001     MOVFF     0x1,0xfdb                                                                                       
00029a   ffdb                                                                                                               
00029c   0e02     MOVLW     0x2                                                                                             
00029e   c002     MOVFF     0x2,0xfdb                                                                                       
0002a0   ffdb                                                                                                               
0002a2   0e03     MOVLW     0x3                                                                                             
0002a4   c003     MOVFF     0x3,0xfdb                                                                                       
0002a6   ffdb                                                                                                               
                                                }                                                                              F:\MCP\projects\CAN\Source\CAN.c
                                                                                                                            F:\MCP\projects\CAN\Source\CAN.c
                                                // Data length                                                                 F:\MCP\projects\CAN\Source\CAN.c
0002a8   0e05     MOVLW     0x5                 cm.data_length=RXB0DLC;                                                        F:\MCP\projects\CAN\Source\CAN.c
0002aa   cf65     MOVFF     0xf65,0xfdb                                                                                     
0002ac   ffdb                                                                                                               
                                                                                                                            F:\MCP\projects\CAN\Source\CAN.c
                                                // Data one bye one, for speed                                                 F:\MCP\projects\CAN\Source\CAN.c
0002ae   0e06     MOVLW     0x6                 cm.data[0]=RXB0D0;  cm.data[1]=RXB0D1;                                          F:\MCP\projects\CAN\Source\CAN.c
0002b0   cf66     MOVFF     0xf66,0xfdb                                                                                     
0002b2   ffdb                                                                                                               
0002b4   0e07     MOVLW     0x7                                                                                             
0002b6   cf67     MOVFF     0xf67,0xfdb                                                                                     
0002b8   ffdb                                                                                                               
0002ba   0e08     MOVLW     0x8                 cm.data[2]=RXB0D2;  cm.data[3]=RXB0D3;                                         F:\MCP\projects\CAN\Source\CAN.c
0002bc   cf68     MOVFF     0xf68,0xfdb                                                                                     
0002be   ffdb                                                                                                               
0002c0   0e09     MOVLW     0x9                                                                                             
0002c2   cf69     MOVFF     0xf69,0xfdb                                                                                     
0002c4   ffdb                                                                                                               
0002c6   0e0a     MOVLW     0xa                 cm.data[4]=RXB0D4;  cm.data[5]=RXB0D5;                                         F:\MCP\projects\CAN\Source\CAN.c
0002c8   cf6a     MOVFF     0xf6a,0xfdb                                                                                     
0002ca   ffdb                                                                                                               
0002cc   0e0b     MOVLW     0xb                                                                                             
0002ce   cf6b     MOVFF     0xf6b,0xfdb                                                                                     
0002d0   ffdb                                                                                                               
0002d2   0e0c     MOVLW     0xc                 cm.data[6]=RXB0D6;  cm.data[7]=RXB0D7;                                         F:\MCP\projects\CAN\Source\CAN.c
0002d4   cf6c     MOVFF     0xf6c,0xfdb                                                                                     
0002d6   ffdb                                                                                                               
0002d8   0e0d     MOVLW     0xd                                                                                             
0002da   cf6d     MOVFF     0xf6d,0xfdb                                                                                     
0002dc   ffdb                                                                                                               
                                                                                                                            F:\MCP\projects\CAN\Source\CAN.c
                                                // Clear ful status                                                            F:\MCP\projects\CAN\Source\CAN.c
0002de   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
0002e0   cfd9     MOVFF     0xfd9,0xfe9         canParse(cm);                                                                  F:\MCP\projects\CAN\Source\CAN.c
0002e2   ffe9                                                                                                               
0002e4   cfda     MOVFF     0xfda,0xfea                                                                                     
0002e6   ffea                                                                                                               
0002e8   cfee     MOVFF     0xfee,0xfe6                                                                                     
0002ea   ffe6                                                                                                               
0002ec   cfee     MOVFF     0xfee,0xfe6                                                                                     
0002ee   ffe6                                                                                                               
0002f0   cfee     MOVFF     0xfee,0xfe6                                                                                     
0002f2   ffe6                                                                                                               
0002f4   cfee     MOVFF     0xfee,0xfe6                                                                                     
0002f6   ffe6                                                                                                               
0002f8   cfee     MOVFF     0xfee,0xfe6                                                                                     
0002fa   ffe6                                                                                                               
0002fc   cfee     MOVFF     0xfee,0xfe6                                                                                     
0002fe   ffe6                                                                                                               
000300   cfee     MOVFF     0xfee,0xfe6                                                                                     
000302   ffe6                                                                                                               
000304   cfee     MOVFF     0xfee,0xfe6                                                                                     
000306   ffe6                                                                                                               
000308   cfee     MOVFF     0xfee,0xfe6                                                                                     
00030a   ffe6                                                                                                               
00030c   cfee     MOVFF     0xfee,0xfe6                                                                                     
00030e   ffe6                                                                                                               
000310   cfee     MOVFF     0xfee,0xfe6                                                                                     
000312   ffe6                                                                                                               
000314   cfee     MOVFF     0xfee,0xfe6                                                                                     
000316   ffe6                                                                                                               
000318   cfee     MOVFF     0xfee,0xfe6                                                                                     
00031a   ffe6                                                                                                               
00031c   cfee     MOVFF     0xfee,0xfe6                                                                                     
00031e   ffe6                                                                                                               
000320   ecfb     CALL      0x5f6,0x0                                                                                       
000322   f002                                                                                                               
000324   6e00     MOVWF     0x0,0x0                                                                                         
000326   0e0e     MOVLW     0xe                                                                                             
000328   5ee1     SUBWF     0xe1,0x1,0x0                                                                                    
00032a   5000     MOVF      0x0,0x0,0x0                                                                                     
00032c   0e0e     MOVLW     0xe            }                                                                                F:\MCP\projects\CAN\Source\CAN.c
00032e   5ce1     SUBWF     0xe1,0x0,0x0                                                                                    
000330   e202     BC        0x336                                                                                           
000332   6ae1     CLRF      0xe1,0x0                                                                                        
000334   52e5     MOVF      0xe5,0x1,0x0                                                                                    
000336   6ee1     MOVWF     0xe1,0x0                                                                                        
000338   52e5     MOVF      0xe5,0x1,0x0                                                                                    
00033a   cfe7     MOVFF     0xfe7,0xfd9                                                                                     
00033c   ffd9                                                                                                               
00033e   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
000340   cfd9     MOVFF     0xfd9,0xfe6    BOOL canSendMessage(CAN_MESSAGE cm)                                              F:\MCP\projects\CAN\Source\CAN.c
000342   ffe6                                                                                                               
000344   cfe1     MOVFF     0xfe1,0xfd9                                                                                     
000346   ffd9                                                                                                               
                                           {                                                                                F:\MCP\projects\CAN\Source\CAN.c
                                                                                                                            F:\MCP\projects\CAN\Source\CAN.c
000348   010f     MOVLB     0xf             if ( TXB0CONbits.TXREQ == 0 )  { ECANCON=(ECANCON&0b00000)|0b00011; }           F:\MCP\projects\CAN\Source\CAN.c
00034a   b740     BTFSC     0x40,0x3,0x1                                                                                    
00034c   d004     BRA       0x356                                                                                           
00034e   0e00     MOVLW     0x0                                                                                             
000350   1477     ANDWF     0x77,0x0,0x0                                                                                    
000352   0903     IORLW     0x3                                                                                             
000354   6e77     MOVWF     0x77,0x0                                                                                        
000356   010f     MOVLB     0xf             if ( TXB1CONbits.TXREQ == 0 )  { ECANCON=(ECANCON&0b00000)|0b00100; }           F:\MCP\projects\CAN\Source\CAN.c
000358   b730     BTFSC     0x30,0x3,0x1                                                                                    
00035a   d004     BRA       0x364                                                                                           
00035c   0e00     MOVLW     0x0                                                                                             
00035e   1477     ANDWF     0x77,0x0,0x0                                                                                    
000360   0904     IORLW     0x4                                                                                             
000362   6e77     MOVWF     0x77,0x0                                                                                        
000364   010f     MOVLB     0xf             if ( TXB2CONbits.TXREQ == 0 )  { ECANCON=(ECANCON&0b00000)|0b00101; }           F:\MCP\projects\CAN\Source\CAN.c
000366   b720     BTFSC     0x20,0x3,0x1                                                                                    
000368   d005     BRA       0x374                                                                                           
00036a   0e00     MOVLW     0x0                                                                                             
00036c   1477     ANDWF     0x77,0x0,0x0                                                                                    
00036e   0905     IORLW     0x5                                                                                             
000370   6e77     MOVWF     0x77,0x0                                                                                        
                                            // None of the transmit buffers were empty.                                     F:\MCP\projects\CAN\Source\CAN.c
000372   d002     BRA       0x378           else { return FALSE;}                                                           F:\MCP\projects\CAN\Source\CAN.c
000374   0e00     MOVLW     0x0                                                                                             
000376   d0c0     BRA       0x4f8                                                                                           
                                                                                                                            F:\MCP\projects\CAN\Source\CAN.c
                                                                                                                            F:\MCP\projects\CAN\Source\CAN.c
000378   0ef5     MOVLW     0xf5                if (cm.extended==TRUE)                                                         F:\MCP\projects\CAN\Source\CAN.c
00037a   04db     DECF      0xdb,0x0,0x0                                                                                    
00037c   e15f     BNZ       0x43c                                                                                           
                                                {                                                                              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
00037e   0ef1     MOVLW     0xf1                    RXB0SIDH =  (BYTE)((cm.ident>>21));                                     F:\MCP\projects\CAN\Source\CAN.c
000380   cfdb     MOVFF     0xfdb,0x0                                                                                       
000382   f000                                                                                                               
000384   0ef2     MOVLW     0xf2                                                                                            
000386   cfdb     MOVFF     0xfdb,0x1                                                                                       
000388   f001                                                                                                               
00038a   0ef3     MOVLW     0xf3                                                                                            
00038c   cfdb     MOVFF     0xfdb,0x2                                                                                       
00038e   f002                                                                                                               
000390   0ef4     MOVLW     0xf4                                                                                            
000392   cfdb     MOVFF     0xfdb,0x3                                                                                       
000394   f003                                                                                                               
000396   0e15     MOVLW     0x15                                                                                            
000398   90d8     BCF       0xd8,0x0,0x0                                                                                    
00039a   3203     RRCF      0x3,0x1,0x0                                                                                     
00039c   3202     RRCF      0x2,0x1,0x0                                                                                     
00039e   3201     RRCF      0x1,0x1,0x0                                                                                     
0003a0   3200     RRCF      0x0,0x1,0x0                                                                                     
0003a2   06e8     DECF      0xe8,0x1,0x0                                                                                    
0003a4   e1f9     BNZ       0x398                                                                                           
0003a6   5000     MOVF      0x0,0x0,0x0                                                                                     
0003a8   6e61     MOVWF     0x61,0x0                                                                                        
0003aa   0ef1     MOVLW     0xf1                    RXB0SIDL = ((BYTE)(cm.ident>>16) & 0x03) + ((BYTE)(cm.ident>>13) & 0xE0); F:\MCP\projects\CAN\Source\CAN.c
0003ac   cfdb     MOVFF     0xfdb,0x5                                                                                       
0003ae   f005                                                                                                               
0003b0   0ef2     MOVLW     0xf2                                                                                            
0003b2   cfdb     MOVFF     0xfdb,0x6                                                                                       
0003b4   f006                                                                                                               
0003b6   0ef3     MOVLW     0xf3                                                                                            
0003b8   cfdb     MOVFF     0xfdb,0x7                                                                                       
0003ba   f007                                                                                                               
0003bc   0ef4     MOVLW     0xf4                                                                                            
0003be   cfdb     MOVFF     0xfdb,0x8                                                                                       
0003c0   f008                                                                                                               
0003c2   0e0d     MOVLW     0xd                                                                                             
0003c4   90d8     BCF       0xd8,0x0,0x0                                                                                    
0003c6   3208     RRCF      0x8,0x1,0x0                                                                                     
0003c8   3207     RRCF      0x7,0x1,0x0                                                                                     
0003ca   3206     RRCF      0x6,0x1,0x0                                                                                     
0003cc   3205     RRCF      0x5,0x1,0x0                                                                                     
0003ce   06e8     DECF      0xe8,0x1,0x0                                                                                    
0003d0   e1f9     BNZ       0x3c4                                                                                           
0003d2   0ee0     MOVLW     0xe0                                                                                            
0003d4   1405     ANDWF     0x5,0x0,0x0                                                                                     
0003d6   6e04     MOVWF     0x4,0x0                                                                                         
0003d8   0ef1     MOVLW     0xf1                                                                                            
0003da   cfdb     MOVFF     0xfdb,0x0                                                                                       
0003dc   f000                                                                                                               
0003de   0ef2     MOVLW     0xf2                                                                                            
0003e0   cfdb     MOVFF     0xfdb,0x1                                                                                       
0003e2   f001                                                                                                               
0003e4   0ef3     MOVLW     0xf3                                                                                            
0003e6   cfdb     MOVFF     0xfdb,0x2                                                                                       
0003e8   f002                                                                                                               
0003ea   0ef4     MOVLW     0xf4                                                                                            
0003ec   cfdb     MOVFF     0xfdb,0x3                                                                                       
0003ee   f003                                                                                                               
0003f0   0e10     MOVLW     0x10                                                                                            
0003f2   90d8     BCF       0xd8,0x0,0x0                                                                                    
0003f4   3203     RRCF      0x3,0x1,0x0                                                                                     
0003f6   3202     RRCF      0x2,0x1,0x0                                                                                     
0003f8   3201     RRCF      0x1,0x1,0x0                                                                                     
0003fa   3200     RRCF      0x0,0x1,0x0                                                                                     
0003fc   06e8     DECF      0xe8,0x1,0x0                                                                                    
0003fe   e1f9     BNZ       0x3f2                                                                                           
000400   0e03     MOVLW     0x3                                                                                             
000402   1400     ANDWF     0x0,0x0,0x0                                                                                     
000404   2404     ADDWF     0x4,0x0,0x0                                                                                     
000406   6e62     MOVWF     0x62,0x0                                                                                        
000408   0ef1     MOVLW     0xf1                    RXB0EIDH =  (BYTE)(cm.ident>>8);                                        F:\MCP\projects\CAN\Source\CAN.c
00040a   cfdb     MOVFF     0xfdb,0x0                                                                                       
00040c   f000                                                                                                               
00040e   0ef2     MOVLW     0xf2                                                                                            
000410   cfdb     MOVFF     0xfdb,0x1                                                                                       
000412   f001                                                                                                               
000414   0ef3     MOVLW     0xf3                                                                                            
000416   cfdb     MOVFF     0xfdb,0x2                                                                                       
000418   f002                                                                                                               
00041a   0ef4     MOVLW     0xf4                                                                                            
00041c   cfdb     MOVFF     0xfdb,0x3                                                                                       
00041e   f003                                                                                                               
000420   0e08     MOVLW     0x8                                                                                             
000422   90d8     BCF       0xd8,0x0,0x0                                                                                    
000424   3203     RRCF      0x3,0x1,0x0                                                                                     
000426   3202     RRCF      0x2,0x1,0x0                                                                                     
000428   3201     RRCF      0x1,0x1,0x0                                                                                     
00042a   3200     RRCF      0x0,0x1,0x0                                                                                     
00042c   06e8     DECF      0xe8,0x1,0x0                                                                                    
00042e   e1f9     BNZ       0x422                                                                                           
000430   5000     MOVF      0x0,0x0,0x0                                                                                     
000432   6e63     MOVWF     0x63,0x0                                                                                        
000434   0ef1     MOVLW     0xf1                    RXB0EIDL =  (BYTE)cm.ident;                                             F:\MCP\projects\CAN\Source\CAN.c
000436   50db     MOVF      0xdb,0x0,0x0                                                                                    
000438   6e64     MOVWF     0x64,0x0                                                                                        
                                                                                                                            F:\MCP\projects\CAN\Source\CAN.c
                                                }                                                                              F:\MCP\projects\CAN\Source\CAN.c
00043a   d02f     BRA       0x49a               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
00043c   0ef1     MOVLW     0xf1                        RXB0SIDH=  (BYTE)(cm.ident>>3);                                         F:\MCP\projects\CAN\Source\CAN.c
00043e   cfdb     MOVFF     0xfdb,0x0                                                                                       
000440   f000                                                                                                               
000442   0ef2     MOVLW     0xf2                                                                                            
000444   cfdb     MOVFF     0xfdb,0x1                                                                                       
000446   f001                                                                                                               
000448   0ef3     MOVLW     0xf3                                                                                            
00044a   cfdb     MOVFF     0xfdb,0x2                                                                                       
00044c   f002                                                                                                               
00044e   0ef4     MOVLW     0xf4                                                                                            
000450   cfdb     MOVFF     0xfdb,0x3                                                                                       
000452   f003                                                                                                               
000454   0e03     MOVLW     0x3                                                                                             
000456   90d8     BCF       0xd8,0x0,0x0                                                                                    
000458   3203     RRCF      0x3,0x1,0x0                                                                                     
00045a   3202     RRCF      0x2,0x1,0x0                                                                                     
00045c   3201     RRCF      0x1,0x1,0x0                                                                                     
00045e   3200     RRCF      0x0,0x1,0x0                                                                                     
000460   06e8     DECF      0xe8,0x1,0x0                                                                                    
000462   e1f9     BNZ       0x456                                                                                           
000464   5000     MOVF      0x0,0x0,0x0                                                                                     
000466   6e61     MOVWF     0x61,0x0                                                                                        
000468   0ef1     MOVLW     0xf1                    RXB0SIDL= ((BYTE)(cm.ident<<5) & 0xE0);                                 F:\MCP\projects\CAN\Source\CAN.c
00046a   cfdb     MOVFF     0xfdb,0x0                                                                                       
00046c   f000                                                                                                               
00046e   0ef2     MOVLW     0xf2                                                                                            
000470   cfdb     MOVFF     0xfdb,0x1                                                                                       
000472   f001                                                                                                               
000474   0ef3     MOVLW     0xf3                                                                                            
000476   cfdb     MOVFF     0xfdb,0x2                                                                                       
000478   f002                                                                                                               
00047a   0ef4     MOVLW     0xf4                                                                                            
00047c   cfdb     MOVFF     0xfdb,0x3                                                                                       
00047e   f003                                                                                                               
000480   0e05     MOVLW     0x5                                                                                             
000482   0b1f     ANDLW     0x1f                                                                                            
000484   e007     BZ        0x494                                                                                           
000486   90d8     BCF       0xd8,0x0,0x0                                                                                    
000488   3600     RLCF      0x0,0x1,0x0                                                                                     
00048a   3601     RLCF      0x1,0x1,0x0                                                                                     
00048c   3602     RLCF      0x2,0x1,0x0                                                                                     
00048e   3603     RLCF      0x3,0x1,0x0                                                                                     
000490   06e8     DECF      0xe8,0x1,0x0                                                                                    
000492   e1f9     BNZ       0x486                                                                                           
000494   0ee0     MOVLW     0xe0                                                                                            
000496   1400     ANDWF     0x0,0x0,0x0                                                                                     
000498   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
00049a   0ef6     MOVLW     0xf6                if (cm.data_length>8) RXB0DLC=8; else RXB0DLC=cm.data_length;                  F:\MCP\projects\CAN\Source\CAN.c
00049c   50db     MOVF      0xdb,0x0,0x0                                                                                    
00049e   0808     SUBLW     0x8                                                                                             
0004a0   e203     BC        0x4a8                                                                                           
0004a2   0e08     MOVLW     0x8                                                                                             
0004a4   6e65     MOVWF     0x65,0x0                                                                                        
0004a6   d003     BRA       0x4ae                                                                                           
0004a8   0ef6     MOVLW     0xf6                                                                                            
0004aa   50db     MOVF      0xdb,0x0,0x0                                                                                    
0004ac   6e65     MOVWF     0x65,0x0                                                                                        
                                                                                                                            F:\MCP\projects\CAN\Source\CAN.c
                                                // Data one bye one, for speed                                                 F:\MCP\projects\CAN\Source\CAN.c
0004ae   0ef7     MOVLW     0xf7                RXB0D0=cm.data[0];  RXB0D1=cm.data[1];                                          F:\MCP\projects\CAN\Source\CAN.c
0004b0   50db     MOVF      0xdb,0x0,0x0                                                                                    
0004b2   6e66     MOVWF     0x66,0x0                                                                                        
0004b4   0ef8     MOVLW     0xf8                                                                                            
0004b6   50db     MOVF      0xdb,0x0,0x0                                                                                    
0004b8   6e67     MOVWF     0x67,0x0                                                                                        
0004ba   0ef9     MOVLW     0xf9                RXB0D2=cm.data[2];  RXB0D3=cm.data[3];                                         F:\MCP\projects\CAN\Source\CAN.c
0004bc   50db     MOVF      0xdb,0x0,0x0                                                                                    
0004be   6e68     MOVWF     0x68,0x0                                                                                        
0004c0   0efa     MOVLW     0xfa                                                                                            
0004c2   50db     MOVF      0xdb,0x0,0x0                                                                                    
0004c4   6e69     MOVWF     0x69,0x0                                                                                        
0004c6   0efb     MOVLW     0xfb                RXB0D4=cm.data[4];  RXB0D5=cm.data[5];                                         F:\MCP\projects\CAN\Source\CAN.c
0004c8   50db     MOVF      0xdb,0x0,0x0                                                                                    
0004ca   6e6a     MOVWF     0x6a,0x0                                                                                        
0004cc   0efc     MOVLW     0xfc                                                                                            
0004ce   50db     MOVF      0xdb,0x0,0x0                                                                                    
0004d0   6e6b     MOVWF     0x6b,0x0                                                                                        
0004d2   0efd     MOVLW     0xfd                RXB0D6=cm.data[6];  RXB0D7=cm.data[7];                                         F:\MCP\projects\CAN\Source\CAN.c
0004d4   50db     MOVF      0xdb,0x0,0x0                                                                                    
0004d6   6e6c     MOVWF     0x6c,0x0                                                                                        
0004d8   0efe     MOVLW     0xfe                                                                                            
0004da   50db     MOVF      0xdb,0x0,0x0                                                                                    
0004dc   6e6d     MOVWF     0x6d,0x0                                                                                        
                                                                                                                            F:\MCP\projects\CAN\Source\CAN.c
                                                // set extended or not                                                         F:\MCP\projects\CAN\Source\CAN.c
0004de   0ef5     MOVLW     0xf5                RXB0SIDLbits.EXID=(cm.extended==TRUE?1:0);                                     F:\MCP\projects\CAN\Source\CAN.c
0004e0   04db     DECF      0xdb,0x0,0x0                                                                                    
0004e2   e102     BNZ       0x4e8                                                                                           
0004e4   0e01     MOVLW     0x1                                                                                             
0004e6   d001     BRA       0x4ea                                                                                           
0004e8   0e00     MOVLW     0x0                                                                                             
0004ea   b0e8     BTFSC     0xe8,0x0,0x0                                                                                    
0004ec   8662     BSF       0x62,0x3,0x0                                                                                    
0004ee   a0e8     BTFSS     0xe8,0x0,0x0                                                                                    
0004f0   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
0004f2   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
0004f4   0e01     MOVLW     0x1                 return TRUE;                                                                   F:\MCP\projects\CAN\Source\CAN.c
0004f6   d000     BRA       0x4f8                                                                                           
                                                                                                                            F:\MCP\projects\CAN\Source\CAN.c
0004f8   52e5     MOVF      0xe5,0x1,0x0   }                                                                                F:\MCP\projects\CAN\Source\CAN.c
0004fa   cfe7     MOVFF     0xfe7,0xfd9                                                                                     
0004fc   ffd9                                                                                                               
0004fe   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
000aac   0e79     MOVLW     0x79               TMR0L = TICK_COUNTER_LOW;                                                    F:\MCP\projects\CAN\Source\Tick.c
000aae   6ed6     MOVWF     0xd6,0x0                                                                                        
000ab0   0efe     MOVLW     0xfe               TMR0H = TICK_COUNTER_HIGH;                                                   F:\MCP\projects\CAN\Source\Tick.c
000ab2   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
000ab4   0e07     MOVLW     0x7                T0CON = 0b00000000 | TIMER_PRESCALE;                                         F:\MCP\projects\CAN\Source\Tick.c
000ab6   6ed5     MOVWF     0xd5,0x0                                                                                        
                                                                                                                            F:\MCP\projects\CAN\Source\Tick.c
                                               // Start the timer.                                                          F:\MCP\projects\CAN\Source\Tick.c
000ab8   8ed5     BSF       0xd5,0x7,0x0       T0CONbits.TMR0ON = 1;                                                        F:\MCP\projects\CAN\Source\Tick.c
                                                                                                                            F:\MCP\projects\CAN\Source\Tick.c
000aba   84f2     BSF       0xf2,0x2,0x0       INTCONbits.TMR0IF = 1;                                                       F:\MCP\projects\CAN\Source\Tick.c
000abc   8af2     BSF       0xf2,0x5,0x0       INTCONbits.TMR0IE = 1;                                                       F:\MCP\projects\CAN\Source\Tick.c
000abe   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
000ac0   c074     MOVFF     0x74,0x18          return TickCount;                                                            F:\MCP\projects\CAN\Source\Tick.c
000ac2   f018                                                                                                               
000ac4   c075     MOVFF     0x75,0x19                                                                                       
000ac6   f019                                                                                                               
000ac8   c076     MOVFF     0x76,0x1a                                                                                       
000aca   f01a                                                                                                               
000acc   c077     MOVFF     0x77,0x1b                                                                                       
000ace   f01b                                                                                                               
000ad0   d000     BRA       0xad2                                                                                           
000ad2   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
000ad4   a4f2     BTFSS     0xf2,0x2,0x0       if(INTCONbits.TMR0IF)                                                        F:\MCP\projects\CAN\Source\Tick.c
000ad6   d00b     BRA       0xaee                                                                                           
                                               {                                                                            F:\MCP\projects\CAN\Source\Tick.c
000ad8   0efe     MOVLW     0xfe                   TMR0H = TICK_COUNTER_HIGH;                                               F:\MCP\projects\CAN\Source\Tick.c
000ada   6ed7     MOVWF     0xd7,0x0                                                                                        
000adc   0e79     MOVLW     0x79                   TMR0L = TICK_COUNTER_LOW;                                                F:\MCP\projects\CAN\Source\Tick.c
000ade   6ed6     MOVWF     0xd6,0x0                                                                                        
                                                                                                                            F:\MCP\projects\CAN\Source\Tick.c
000ae0   0100     MOVLB     0x0                    TickCount++;                                                             F:\MCP\projects\CAN\Source\Tick.c
000ae2   2b74     INCF      0x74,0x1,0x1                                                                                    
000ae4   0e00     MOVLW     0x0                                                                                             
000ae6   2375     ADDWFC    0x75,0x1,0x1                                                                                    
000ae8   2376     ADDWFC    0x76,0x1,0x1                                                                                    
000aea   2377     ADDWFC    0x77,0x1,0x1                                                                                    
                                                                                                                            F:\MCP\projects\CAN\Source\Tick.c
000aec   94f2     BCF       0xf2,0x2,0x0           INTCONbits.TMR0IF = 0;                                                   F:\MCP\projects\CAN\Source\Tick.c
                                               }                                                                            F:\MCP\projects\CAN\Source\Tick.c
000aee   0012     RETURN    0x0            }                                                                                F:\MCP\projects\CAN\Source\Tick.c
                                           /*********************************************************************           F:\MCP\projects\CAN\Source\uart.c
                                            *                                                                               F:\MCP\projects\CAN\Source\uart.c
                                            *                  UART                                                         F:\MCP\projects\CAN\Source\uart.c
                                            *                                                                               F:\MCP\projects\CAN\Source\uart.c
                                            *********************************************************************           F:\MCP\projects\CAN\Source\uart.c
                                            * FileName:        uart.c                                                       F:\MCP\projects\CAN\Source\uart.c
                                            *                                                                               F:\MCP\projects\CAN\Source\uart.c
                                            * Author               Date    Comment                                          F:\MCP\projects\CAN\Source\uart.c
                                            *~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~           F:\MCP\projects\CAN\Source\uart.c
                                            * Johan Böhlin     21-10-06    Original        (Rev 1.0)                          F:\MCP\projects\CAN\Source\uart.c
                                            ********************************************************************/           F:\MCP\projects\CAN\Source\uart.c
                                                                                                                            F:\MCP\projects\CAN\Source\uart.c
                                           #include <uart.h>                                                                F:\MCP\projects\CAN\Source\uart.c
                                           #include <stackTasks.h>                                                          F:\MCP\projects\CAN\Source\uart.c
                                                                                                                            F:\MCP\projects\CAN\Source\uart.c
                                           #ifdef USE_UART                                                                  F:\MCP\projects\CAN\Source\uart.c
                                                                                                                            F:\MCP\projects\CAN\Source\uart.c
                                           static char uartBusy(void);                                                      F:\MCP\projects\CAN\Source\uart.c
                                                                                                                            F:\MCP\projects\CAN\Source\uart.c
                                                                                                                            F:\MCP\projects\CAN\Source\uart.c
                                           /*                                                                               F:\MCP\projects\CAN\Source\uart.c
                                           *    Function: uartInit                                                             F:\MCP\projects\CAN\Source\uart.c
                                           *                                                                                F:\MCP\projects\CAN\Source\uart.c
                                           *    Input:  none                                                                    F:\MCP\projects\CAN\Source\uart.c
                                           *    Output: none                                                                   F:\MCP\projects\CAN\Source\uart.c
                                           *    Pre-conditions: none                                                           F:\MCP\projects\CAN\Source\uart.c
                                           *    Affects: none                                                                  F:\MCP\projects\CAN\Source\uart.c
                                           *    Depends: none                                                                  F:\MCP\projects\CAN\Source\uart.c
                                           */                                                                               F:\MCP\projects\CAN\Source\uart.c
                                           void uartInit()                                                                  F:\MCP\projects\CAN\Source\uart.c
                                           {                                                                                F:\MCP\projects\CAN\Source\uart.c
                                                // Configure USART                                                             F:\MCP\projects\CAN\Source\uart.c
000906   8e94     BSF       0x94,0x7,0x0        TRISCbits.TRISC7=1;                                                            F:\MCP\projects\CAN\Source\uart.c
000908   9c94     BCF       0x94,0x6,0x0        TRISCbits.TRISC6=0;                                                            F:\MCP\projects\CAN\Source\uart.c
00090a   0e20     MOVLW     0x20                TXSTA=0b00100000; // Low BRG speed                                             F:\MCP\projects\CAN\Source\uart.c
00090c   6eac     MOVWF     0xac,0x0                                                                                        
00090e   0e90     MOVLW     0x90                RCSTA=0b10010000;                                                              F:\MCP\projects\CAN\Source\uart.c
000910   6eab     MOVWF     0xab,0x0                                                                                        
000912   0e1f     MOVLW     0x1f                SPBRG = SPBRG_VAL;                                                             F:\MCP\projects\CAN\Source\uart.c
000914   6eaf     MOVWF     0xaf,0x0                                                                                        
                                                // USART RX interrupt                                                          F:\MCP\projects\CAN\Source\uart.c
000916   9a9e     BCF       0x9e,0x5,0x0        PIR1bits.RCIF=0;                                                               F:\MCP\projects\CAN\Source\uart.c
000918   8a9d     BSF       0x9d,0x5,0x0        PIE1bits.RCIE=1;                                                               F:\MCP\projects\CAN\Source\uart.c
                                                // High interrupt                                                              F:\MCP\projects\CAN\Source\uart.c
00091a   8a9f     BSF       0x9f,0x5,0x0        IPR1bits.RCIP=1;                                                               F:\MCP\projects\CAN\Source\uart.c
00091c   0012     RETURN    0x0            }                                                                                F:\MCP\projects\CAN\Source\uart.c
                                                                                                                            F:\MCP\projects\CAN\Source\uart.c
                                                                                                                            F:\MCP\projects\CAN\Source\uart.c
                                           /*                                                                               F:\MCP\projects\CAN\Source\uart.c
                                           *    Function: uartPutc                                                             F:\MCP\projects\CAN\Source\uart.c
                                           *                                                                                F:\MCP\projects\CAN\Source\uart.c
                                           *    Input:  BYTE c to send on uart                                                  F:\MCP\projects\CAN\Source\uart.c
                                           *    Output: none                                                                   F:\MCP\projects\CAN\Source\uart.c
                                           *    Pre-conditions: call to uartInit()                                             F:\MCP\projects\CAN\Source\uart.c
                                           *    Affects: none                                                                  F:\MCP\projects\CAN\Source\uart.c
                                           *    Depends: none                                                                  F:\MCP\projects\CAN\Source\uart.c
                                           */                                                                               F:\MCP\projects\CAN\Source\uart.c
00091e   cfd9     MOVFF     0xfd9,0xfe6    void uartPutc(BYTE c)                                                            F:\MCP\projects\CAN\Source\uart.c
000920   ffe6                                                                                                               
000922   cfe1     MOVFF     0xfe1,0xfd9                                                                                     
000924   ffd9                                                                                                               
                                           {                                                                                F:\MCP\projects\CAN\Source\uart.c
                                            // Write the data byte to the USART                                             F:\MCP\projects\CAN\Source\uart.c
000926   0efe     MOVLW     0xfe            TXREG = c;                                                                      F:\MCP\projects\CAN\Source\uart.c
000928   50db     MOVF      0xdb,0x0,0x0                                                                                    
00092a   6ead     MOVWF     0xad,0x0                                                                                        
00092c   d84b     RCALL     0x9c4           while(uartBusy());                                                              F:\MCP\projects\CAN\Source\uart.c
00092e   0900     IORLW     0x0                                                                                             
000930   e001     BZ        0x934                                                                                           
000932   d7fc     BRA       0x92c                                                                                           
000934   52e5     MOVF      0xe5,0x1,0x0   }                                                                                F:\MCP\projects\CAN\Source\uart.c
000936   cfe7     MOVFF     0xfe7,0xfd9                                                                                     
000938   ffd9                                                                                                               
00093a   0012     RETURN    0x0                                                                                             
                                                                                                                            F:\MCP\projects\CAN\Source\uart.c
                                                                                                                            F:\MCP\projects\CAN\Source\uart.c
                                           /*                                                                               F:\MCP\projects\CAN\Source\uart.c
                                           *    Function: uartPuts                                                             F:\MCP\projects\CAN\Source\uart.c
                                           *                                                                                F:\MCP\projects\CAN\Source\uart.c
                                           *    Input:  Byte array to send on uart                                              F:\MCP\projects\CAN\Source\uart.c
                                           *    Output: none                                                                   F:\MCP\projects\CAN\Source\uart.c
                                           *    Pre-conditions: call to uartInit()                                             F:\MCP\projects\CAN\Source\uart.c
                                           *    Affects: none                                                                  F:\MCP\projects\CAN\Source\uart.c
                                           *    Depends: none                                                                  F:\MCP\projects\CAN\Source\uart.c
                                           */                                                                               F:\MCP\projects\CAN\Source\uart.c
00093c   cfd9     MOVFF     0xfd9,0xfe6    void uartPuts(BYTE c[])                                                          F:\MCP\projects\CAN\Source\uart.c
00093e   ffe6                                                                                                               
000940   cfe1     MOVFF     0xfe1,0xfd9                                                                                     
000942   ffd9                                                                                                               
                                           {                                                                                F:\MCP\projects\CAN\Source\uart.c
                                            do                                                                              F:\MCP\projects\CAN\Source\uart.c
                                                {  // Transmit a byte                                                         F:\MCP\projects\CAN\Source\uart.c
000944   d83f     RCALL     0x9c4               while(uartBusy());                                                          F:\MCP\projects\CAN\Source\uart.c
000946   0900     IORLW     0x0                                                                                             
000948   e001     BZ        0x94c                                                                                           
00094a   d7fc     BRA       0x944                                                                                           
00094c   0efd     MOVLW     0xfd                uartPutc(*c);                                                               F:\MCP\projects\CAN\Source\uart.c
00094e   cfdb     MOVFF     0xfdb,0xfe9                                                                                     
000950   ffe9                                                                                                               
000952   0efe     MOVLW     0xfe                                                                                            
000954   cfdb     MOVFF     0xfdb,0xfea                                                                                     
000956   ffea                                                                                                               
000958   50ef     MOVF      0xef,0x0,0x0                                                                                    
00095a   6ee6     MOVWF     0xe6,0x0                                                                                        
00095c   dfe0     RCALL     0x91e                                                                                           
00095e   52e5     MOVF      0xe5,0x1,0x0                                                                                    
000960   0efd     MOVLW     0xfd                } while( *c++ );                                                              F:\MCP\projects\CAN\Source\uart.c
000962   cfdb     MOVFF     0xfdb,0xfe9                                                                                     
000964   ffe9                                                                                                               
000966   2adb     INCF      0xdb,0x1,0x0                                                                                    
000968   0efe     MOVLW     0xfe                                                                                            
00096a   cfdb     MOVFF     0xfdb,0xfea                                                                                     
00096c   ffea                                                                                                               
00096e   e301     BNC       0x972                                                                                           
000970   2adb     INCF      0xdb,0x1,0x0                                                                                    
000972   50ef     MOVF      0xef,0x0,0x0                                                                                    
000974   e1e7     BNZ       0x944                                                                                           
000976   52e5     MOVF      0xe5,0x1,0x0   }                                                                                F:\MCP\projects\CAN\Source\uart.c
000978   cfe7     MOVFF     0xfe7,0xfd9                                                                                     
00097a   ffd9                                                                                                               
00097c   0012     RETURN    0x0                                                                                             
                                                                                                                            F:\MCP\projects\CAN\Source\uart.c
                                           /*                                                                               F:\MCP\projects\CAN\Source\uart.c
                                           *    Function: uartPutrs                                                            F:\MCP\projects\CAN\Source\uart.c
                                           *                                                                                F:\MCP\projects\CAN\Source\uart.c
                                           *    Input:  Byte array to send on uart (static)                                     F:\MCP\projects\CAN\Source\uart.c
                                           *    Output: none                                                                   F:\MCP\projects\CAN\Source\uart.c
                                           *    Pre-conditions: call to uartInit()                                             F:\MCP\projects\CAN\Source\uart.c
                                           *    Affects: none                                                                  F:\MCP\projects\CAN\Source\uart.c
                                           *    Depends: none                                                                  F:\MCP\projects\CAN\Source\uart.c
                                           */                                                                               F:\MCP\projects\CAN\Source\uart.c
00097e   cfd9     MOVFF     0xfd9,0xfe6    void uartPutrs(const rom char *c)                                                F:\MCP\projects\CAN\Source\uart.c
000980   ffe6                                                                                                               
000982   cfe1     MOVFF     0xfe1,0xfd9                                                                                     
000984   ffd9                                                                                                               
                                           {                                                                                F:\MCP\projects\CAN\Source\uart.c
                                            do                                                                              F:\MCP\projects\CAN\Source\uart.c
                                                {  // Transmit a byte                                                         F:\MCP\projects\CAN\Source\uart.c
000986   d81e     RCALL     0x9c4               while(uartBusy());                                                          F:\MCP\projects\CAN\Source\uart.c
000988   0900     IORLW     0x0                                                                                             
00098a   e001     BZ        0x98e                                                                                           
00098c   d7fc     BRA       0x986                                                                                           
00098e   0efd     MOVLW     0xfd                uartPutc(*c);                                                               F:\MCP\projects\CAN\Source\uart.c
000990   cfdb     MOVFF     0xfdb,0xff6                                                                                     
000992   fff6                                                                                                               
000994   0efe     MOVLW     0xfe                                                                                            
000996   cfdb     MOVFF     0xfdb,0xff7                                                                                     
000998   fff7                                                                                                               
00099a   0008     TBLRD                                                                                                     
00099c   50f5     MOVF      0xf5,0x0,0x0                                                                                    
00099e   6ee6     MOVWF     0xe6,0x0                                                                                        
0009a0   dfbe     RCALL     0x91e                                                                                           
0009a2   52e5     MOVF      0xe5,0x1,0x0                                                                                    
0009a4   0efd     MOVLW     0xfd                } while( *c++ );                                                              F:\MCP\projects\CAN\Source\uart.c
0009a6   cfdb     MOVFF     0xfdb,0xff6                                                                                     
0009a8   fff6                                                                                                               
0009aa   2adb     INCF      0xdb,0x1,0x0                                                                                    
0009ac   0efe     MOVLW     0xfe                                                                                            
0009ae   cfdb     MOVFF     0xfdb,0xff7                                                                                     
0009b0   fff7                                                                                                               
0009b2   e301     BNC       0x9b6                                                                                           
0009b4   2adb     INCF      0xdb,0x1,0x0                                                                                    
0009b6   0008     TBLRD                                                                                                     
0009b8   50f5     MOVF      0xf5,0x0,0x0                                                                                    
0009ba   e1e5     BNZ       0x986                                                                                           
0009bc   52e5     MOVF      0xe5,0x1,0x0   }                                                                                F:\MCP\projects\CAN\Source\uart.c
0009be   cfe7     MOVFF     0xfe7,0xfd9                                                                                     
0009c0   ffd9                                                                                                               
0009c2   0012     RETURN    0x0                                                                                             
                                                                                                                            F:\MCP\projects\CAN\Source\uart.c
                                                                                                                            F:\MCP\projects\CAN\Source\uart.c
                                                                                                                            F:\MCP\projects\CAN\Source\uart.c
                                                                                                                            F:\MCP\projects\CAN\Source\uart.c
                                           /*                                                                               F:\MCP\projects\CAN\Source\uart.c
                                           *    Function: uartBusy                                                             F:\MCP\projects\CAN\Source\uart.c
                                           *                                                                                F:\MCP\projects\CAN\Source\uart.c
                                           *    Input:  none.                                                                   F:\MCP\projects\CAN\Source\uart.c
                                           *    Output: If usart busy or not.                                                  F:\MCP\projects\CAN\Source\uart.c
                                           *    Pre-conditions: call to uartInit()                                             F:\MCP\projects\CAN\Source\uart.c
                                           *    Affects: none                                                                  F:\MCP\projects\CAN\Source\uart.c
                                           *    Depends: none                                                                  F:\MCP\projects\CAN\Source\uart.c
                                           */                                                                               F:\MCP\projects\CAN\Source\uart.c
                                           char uartBusy(void)                                                              F:\MCP\projects\CAN\Source\uart.c
                                           {                                                                                F:\MCP\projects\CAN\Source\uart.c
0009c4   50ac     MOVF      0xac,0x0,0x0    return !TXSTAbits.TRMT;                                                         F:\MCP\projects\CAN\Source\uart.c
0009c6   0b02     ANDLW     0x2                                                                                             
0009c8   0a02     XORLW     0x2                                                                                             
0009ca   e001     BZ        0x9ce                                                                                           
0009cc   0e01     MOVLW     0x1                                                                                             
0009ce   d000     BRA       0x9d0                                                                                           
0009d0   0012     RETURN    0x0            }                                                                                F:\MCP\projects\CAN\Source\uart.c
                                                                                                                            F:\MCP\projects\CAN\Source\uart.c
                                                                                                                            F:\MCP\projects\CAN\Source\uart.c
                                           /*                                                                               F:\MCP\projects\CAN\Source\uart.c
                                           *    Function: uartGet                                                              F:\MCP\projects\CAN\Source\uart.c
                                           *                                                                                F:\MCP\projects\CAN\Source\uart.c
                                           *    Input:  none                                                                    F:\MCP\projects\CAN\Source\uart.c
                                           *    Output: Byte read                                                              F:\MCP\projects\CAN\Source\uart.c
                                           *    Pre-conditions: call to uartInit()                                             F:\MCP\projects\CAN\Source\uart.c
                                           *    Affects: none                                                                  F:\MCP\projects\CAN\Source\uart.c
                                           *    Depends: none.                                                                 F:\MCP\projects\CAN\Source\uart.c
                                           */                                                                               F:\MCP\projects\CAN\Source\uart.c
                                           BYTE uartGet(void)                                                               F:\MCP\projects\CAN\Source\uart.c
                                           {                                                                                F:\MCP\projects\CAN\Source\uart.c
                                            // Return the received data                                                     F:\MCP\projects\CAN\Source\uart.c
0009d2   50ae     MOVF      0xae,0x0,0x0    return RCREG;                                                                     F:\MCP\projects\CAN\Source\uart.c
0009d4   d000     BRA       0x9d6                                                                                           
0009d6   0012     RETURN    0x0            }                                                                                F:\MCP\projects\CAN\Source\uart.c
                                                                                                                            F:\MCP\projects\CAN\Source\uart.c
                                                                                                                            F:\MCP\projects\CAN\Source\uart.c
                                           /*                                                                               F:\MCP\projects\CAN\Source\uart.c
                                           *    Function: uartISR                                                              F:\MCP\projects\CAN\Source\uart.c
                                           *                                                                                F:\MCP\projects\CAN\Source\uart.c
                                           *    Input:  none                                                                    F:\MCP\projects\CAN\Source\uart.c
                                           *    Output: none                                                                   F:\MCP\projects\CAN\Source\uart.c
                                           *    Pre-conditions: call to uartInit()                                             F:\MCP\projects\CAN\Source\uart.c
                                           *    Affects: call to uartParse                                                     F:\MCP\projects\CAN\Source\uart.c
                                           *    Depends: none.                                                                 F:\MCP\projects\CAN\Source\uart.c
                                           */                                                                               F:\MCP\projects\CAN\Source\uart.c
                                           void uartISR(void)                                                               F:\MCP\projects\CAN\Source\uart.c
                                           {                                                                                F:\MCP\projects\CAN\Source\uart.c
0009d8   509e     MOVF      0x9e,0x0,0x0    if (PIR1bits.RCIF==1 && PIE1bits.RCIE==1)                                       F:\MCP\projects\CAN\Source\uart.c
0009da   0b20     ANDLW     0x20                                                                                            
0009dc   e00d     BZ        0x9f8                                                                                           
0009de   509d     MOVF      0x9d,0x0,0x0                                                                                    
0009e0   0b20     ANDLW     0x20                                                                                            
0009e2   e00a     BZ        0x9f8                                                                                           
                                            {                                                                               F:\MCP\projects\CAN\Source\uart.c
0009e4   a2ab     BTFSS     0xab,0x1,0x0        if (RCSTAbits.OERR) { RCSTAbits.CREN=0; RCSTAbits.CREN=1; }                    F:\MCP\projects\CAN\Source\uart.c
0009e6   d002     BRA       0x9ec                                                                                           
0009e8   98ab     BCF       0xab,0x4,0x0                                                                                    
0009ea   88ab     BSF       0xab,0x4,0x0                                                                                    
                                                                                                                            F:\MCP\projects\CAN\Source\uart.c
0009ec   dff2     RCALL     0x9d2               uartParse(uartGet());                                                          F:\MCP\projects\CAN\Source\uart.c
0009ee   6ee6     MOVWF     0xe6,0x0                                                                                        
0009f0   ec98     CALL      0x730,0x0                                                                                       
0009f2   f003                                                                                                               
0009f4   52e5     MOVF      0xe5,0x1,0x0                                                                                    
0009f6   9a9e     BCF       0x9e,0x5,0x0        PIR1bits.RCIF=0;                                                               F:\MCP\projects\CAN\Source\uart.c
                                            }                                                                               F:\MCP\projects\CAN\Source\uart.c
0009f8   0012     RETURN    0x0            }                                                                                F:\MCP\projects\CAN\Source\uart.c
                                                                                                                            F:\MCP\projects\CAN\Source\uart.c
                                                                                                                            F:\MCP\projects\CAN\Source\uart.c
                                           /*                                                                               F:\MCP\projects\CAN\Source\uart.c
                                           *    Function: uartDataRedy                                                         F:\MCP\projects\CAN\Source\uart.c
                                           *                                                                                F:\MCP\projects\CAN\Source\uart.c
                                           *    Input:  none.                                                                   F:\MCP\projects\CAN\Source\uart.c
                                           *    Output: If usart data are redy to be read.                                     F:\MCP\projects\CAN\Source\uart.c
                                           *    Pre-conditions: call to uartInit()                                             F:\MCP\projects\CAN\Source\uart.c
                                           *    Affects: none                                                                  F:\MCP\projects\CAN\Source\uart.c
                                           *    Depends: none                                                                  F:\MCP\projects\CAN\Source\uart.c
                                           */                                                                               F:\MCP\projects\CAN\Source\uart.c
                                           char uartDataRedy(void)                                                          F:\MCP\projects\CAN\Source\uart.c
                                           {                                                                                F:\MCP\projects\CAN\Source\uart.c
0009fa   a2ab     BTFSS     0xab,0x1,0x0    if(RCSTAbits.OERR)                                                              F:\MCP\projects\CAN\Source\uart.c
0009fc   d002     BRA       0xa02                                                                                           
                                            {                                                                               F:\MCP\projects\CAN\Source\uart.c
0009fe   98ab     BCF       0xab,0x4,0x0        RCSTAbits.CREN = 0;                                                            F:\MCP\projects\CAN\Source\uart.c
000a00   88ab     BSF       0xab,0x4,0x0        RCSTAbits.CREN = 1;                                                            F:\MCP\projects\CAN\Source\uart.c
                                            }                                                                               F:\MCP\projects\CAN\Source\uart.c
000a02   509e     MOVF      0x9e,0x0,0x0     return PIR1bits.RCIF;                                                          F:\MCP\projects\CAN\Source\uart.c
000a04   0b20     ANDLW     0x20                                                                                            
000a06   e001     BZ        0xa0a                                                                                           
000a08   0e01     MOVLW     0x1                                                                                             
000a0a   d000     BRA       0xa0c                                                                                           
000a0c   0012     RETURN    0x0            }                                                                                F:\MCP\projects\CAN\Source\uart.c
                                                                                                                            F:\MCP\projects\CAN\Source\uart.c
                                           #endif                                                                           F:\MCP\projects\CAN\Source\uart.c