Subversion Repositories HomeAutomation

Rev

Rev 73 | 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: Tue Nov 14 21:20:45 2006


Address  Value    Disassembly              Source                                                                           File
-------  -------  -----------------------  -------------------------------------------------------------------------------  -----
                                           /*********************************************************************           F:\MCP\projects\CAN\canToSerial\Source\uart.c
                                            *                                                                               F:\MCP\projects\CAN\canToSerial\Source\uart.c
                                            *                  UART                                                         F:\MCP\projects\CAN\canToSerial\Source\uart.c
                                            *                                                                               F:\MCP\projects\CAN\canToSerial\Source\uart.c
                                            *********************************************************************           F:\MCP\projects\CAN\canToSerial\Source\uart.c
                                            * FileName:        $HeadURL$                                                    F:\MCP\projects\CAN\canToSerial\Source\uart.c
                                            * Last changed: $LastChangedDate$                                               F:\MCP\projects\CAN\canToSerial\Source\uart.c
                                            * By:               $LastChangedBy$                                                        F:\MCP\projects\CAN\canToSerial\Source\uart.c
                                            * Revision:     $Revision$                                                         F:\MCP\projects\CAN\canToSerial\Source\uart.c
                                            ********************************************************************/           F:\MCP\projects\CAN\canToSerial\Source\uart.c
                                                                                                                            F:\MCP\projects\CAN\canToSerial\Source\uart.c
                                           #include <uart.h>                                                                F:\MCP\projects\CAN\canToSerial\Source\uart.c
                                           #include <stackTasks.h>                                                          F:\MCP\projects\CAN\canToSerial\Source\uart.c
                                                                                                                            F:\MCP\projects\CAN\canToSerial\Source\uart.c
                                           #ifdef USE_UART                                                                  F:\MCP\projects\CAN\canToSerial\Source\uart.c
                                                                                                                            F:\MCP\projects\CAN\canToSerial\Source\uart.c
                                           static char uartBusy(void);                                                      F:\MCP\projects\CAN\canToSerial\Source\uart.c
                                                                                                                            F:\MCP\projects\CAN\canToSerial\Source\uart.c
                                                                                                                            F:\MCP\projects\CAN\canToSerial\Source\uart.c
                                           /*                                                                               F:\MCP\projects\CAN\canToSerial\Source\uart.c
                                           *    Function: uartInit                                                             F:\MCP\projects\CAN\canToSerial\Source\uart.c
                                           *                                                                                F:\MCP\projects\CAN\canToSerial\Source\uart.c
                                           *    Input:  none                                                                    F:\MCP\projects\CAN\canToSerial\Source\uart.c
                                           *    Output: none                                                                   F:\MCP\projects\CAN\canToSerial\Source\uart.c
                                           *    Pre-conditions: none                                                           F:\MCP\projects\CAN\canToSerial\Source\uart.c
                                           *    Affects: none                                                                  F:\MCP\projects\CAN\canToSerial\Source\uart.c
                                           *    Depends: none                                                                  F:\MCP\projects\CAN\canToSerial\Source\uart.c
                                           */                                                                               F:\MCP\projects\CAN\canToSerial\Source\uart.c
                                           void uartInit()                                                                  F:\MCP\projects\CAN\canToSerial\Source\uart.c
                                           {                                                                                F:\MCP\projects\CAN\canToSerial\Source\uart.c
                                                // Configure USART                                                             F:\MCP\projects\CAN\canToSerial\Source\uart.c
000964   8e94     BSF       0x94,0x7,0x0        TRISCbits.TRISC7=1;                                                            F:\MCP\projects\CAN\canToSerial\Source\uart.c
000966   9c94     BCF       0x94,0x6,0x0        TRISCbits.TRISC6=0;                                                            F:\MCP\projects\CAN\canToSerial\Source\uart.c
000968   0e20     MOVLW     0x20                TXSTA=0b00100000;                                                              F:\MCP\projects\CAN\canToSerial\Source\uart.c
00096a   6eac     MOVWF     0xac,0x0                                                                                        
                                                #ifdef HIGH_BRG                                                                F:\MCP\projects\CAN\canToSerial\Source\uart.c
00096c   84ac     BSF       0xac,0x2,0x0            TXSTAbits.BRGH=1; // High BRG speed                                           F:\MCP\projects\CAN\canToSerial\Source\uart.c
00096e   86b8     BSF       0xb8,0x3,0x0            BAUDCONbits.BRG16=1;                                                          F:\MCP\projects\CAN\canToSerial\Source\uart.c
000970   6ab0     CLRF      0xb0,0x0                SPBRGH = SPBRGH_VAL;                                                          F:\MCP\projects\CAN\canToSerial\Source\uart.c
000972   0e55     MOVLW     0x55                    SPBRG = SPBRG_VAL;                                                            F:\MCP\projects\CAN\canToSerial\Source\uart.c
000974   6eaf     MOVWF     0xaf,0x0                                                                                        
                                                #else                                                                          F:\MCP\projects\CAN\canToSerial\Source\uart.c
                                                    TXSTAbits.BRGH=0;  // Low BRG speed                                           F:\MCP\projects\CAN\canToSerial\Source\uart.c
                                                    SPBRG = SPBRG_VAL;                                                            F:\MCP\projects\CAN\canToSerial\Source\uart.c
                                                #endif                                                                         F:\MCP\projects\CAN\canToSerial\Source\uart.c
                                                                                                                               F:\MCP\projects\CAN\canToSerial\Source\uart.c
000976   0e90     MOVLW     0x90                RCSTA=0b10010000;                                                              F:\MCP\projects\CAN\canToSerial\Source\uart.c
000978   6eab     MOVWF     0xab,0x0                                                                                        
                                                                                                                               F:\MCP\projects\CAN\canToSerial\Source\uart.c
                                                // USART RX interrupt                                                          F:\MCP\projects\CAN\canToSerial\Source\uart.c
00097a   9a9e     BCF       0x9e,0x5,0x0        PIR1bits.RCIF=0;                                                               F:\MCP\projects\CAN\canToSerial\Source\uart.c
00097c   8a9d     BSF       0x9d,0x5,0x0        PIE1bits.RCIE=1;                                                               F:\MCP\projects\CAN\canToSerial\Source\uart.c
                                                // High interrupt                                                              F:\MCP\projects\CAN\canToSerial\Source\uart.c
00097e   8a9f     BSF       0x9f,0x5,0x0        IPR1bits.RCIP=1;                                                               F:\MCP\projects\CAN\canToSerial\Source\uart.c
000980   0012     RETURN    0x0            }                                                                                F:\MCP\projects\CAN\canToSerial\Source\uart.c
                                                                                                                            F:\MCP\projects\CAN\canToSerial\Source\uart.c
                                                                                                                            F:\MCP\projects\CAN\canToSerial\Source\uart.c
                                           /*                                                                               F:\MCP\projects\CAN\canToSerial\Source\uart.c
                                           *    Function: uartPutc                                                             F:\MCP\projects\CAN\canToSerial\Source\uart.c
                                           *                                                                                F:\MCP\projects\CAN\canToSerial\Source\uart.c
                                           *    Input:  BYTE c to send on uart                                                  F:\MCP\projects\CAN\canToSerial\Source\uart.c
                                           *    Output: none                                                                   F:\MCP\projects\CAN\canToSerial\Source\uart.c
                                           *    Pre-conditions: call to uartInit()                                             F:\MCP\projects\CAN\canToSerial\Source\uart.c
                                           *    Affects: none                                                                  F:\MCP\projects\CAN\canToSerial\Source\uart.c
                                           *    Depends: none                                                                  F:\MCP\projects\CAN\canToSerial\Source\uart.c
                                           */                                                                               F:\MCP\projects\CAN\canToSerial\Source\uart.c
000982   cfd9     MOVFF     0xfd9,0xfe6    void uartPutc(BYTE c)                                                            F:\MCP\projects\CAN\canToSerial\Source\uart.c
000984   ffe6                                                                                                               
000986   cfe1     MOVFF     0xfe1,0xfd9                                                                                     
000988   ffd9                                                                                                               
                                           {                                                                                F:\MCP\projects\CAN\canToSerial\Source\uart.c
                                            // Write the data byte to the USART                                             F:\MCP\projects\CAN\canToSerial\Source\uart.c
00098a   0efe     MOVLW     0xfe            TXREG = c;                                                                      F:\MCP\projects\CAN\canToSerial\Source\uart.c
00098c   50db     MOVF      0xdb,0x0,0x0                                                                                    
00098e   6ead     MOVWF     0xad,0x0                                                                                        
000990   d84b     RCALL     0xa28           while(uartBusy());                                                              F:\MCP\projects\CAN\canToSerial\Source\uart.c
000992   0900     IORLW     0x0                                                                                             
000994   e001     BZ        0x998                                                                                           
000996   d7fc     BRA       0x990                                                                                           
000998   52e5     MOVF      0xe5,0x1,0x0   }                                                                                F:\MCP\projects\CAN\canToSerial\Source\uart.c
00099a   cfe7     MOVFF     0xfe7,0xfd9                                                                                     
00099c   ffd9                                                                                                               
00099e   0012     RETURN    0x0                                                                                             
                                                                                                                            F:\MCP\projects\CAN\canToSerial\Source\uart.c
                                                                                                                            F:\MCP\projects\CAN\canToSerial\Source\uart.c
                                           /*                                                                               F:\MCP\projects\CAN\canToSerial\Source\uart.c
                                           *    Function: uartPuts                                                             F:\MCP\projects\CAN\canToSerial\Source\uart.c
                                           *                                                                                F:\MCP\projects\CAN\canToSerial\Source\uart.c
                                           *    Input:  Byte array to send on uart                                              F:\MCP\projects\CAN\canToSerial\Source\uart.c
                                           *    Output: none                                                                   F:\MCP\projects\CAN\canToSerial\Source\uart.c
                                           *    Pre-conditions: call to uartInit()                                             F:\MCP\projects\CAN\canToSerial\Source\uart.c
                                           *    Affects: none                                                                  F:\MCP\projects\CAN\canToSerial\Source\uart.c
                                           *    Depends: none                                                                  F:\MCP\projects\CAN\canToSerial\Source\uart.c
                                           */                                                                               F:\MCP\projects\CAN\canToSerial\Source\uart.c
0009a0   cfd9     MOVFF     0xfd9,0xfe6    void uartPuts(BYTE c[])                                                          F:\MCP\projects\CAN\canToSerial\Source\uart.c
0009a2   ffe6                                                                                                               
0009a4   cfe1     MOVFF     0xfe1,0xfd9                                                                                     
0009a6   ffd9                                                                                                               
                                           {                                                                                F:\MCP\projects\CAN\canToSerial\Source\uart.c
                                            do                                                                              F:\MCP\projects\CAN\canToSerial\Source\uart.c
                                                {  // Transmit a byte                                                         F:\MCP\projects\CAN\canToSerial\Source\uart.c
0009a8   d83f     RCALL     0xa28               while(uartBusy());                                                          F:\MCP\projects\CAN\canToSerial\Source\uart.c
0009aa   0900     IORLW     0x0                                                                                             
0009ac   e001     BZ        0x9b0                                                                                           
0009ae   d7fc     BRA       0x9a8                                                                                           
0009b0   0efd     MOVLW     0xfd                uartPutc(*c);                                                               F:\MCP\projects\CAN\canToSerial\Source\uart.c
0009b2   cfdb     MOVFF     0xfdb,0xfe9                                                                                     
0009b4   ffe9                                                                                                               
0009b6   0efe     MOVLW     0xfe                                                                                            
0009b8   cfdb     MOVFF     0xfdb,0xfea                                                                                     
0009ba   ffea                                                                                                               
0009bc   50ef     MOVF      0xef,0x0,0x0                                                                                    
0009be   6ee6     MOVWF     0xe6,0x0                                                                                        
0009c0   dfe0     RCALL     0x982                                                                                           
0009c2   52e5     MOVF      0xe5,0x1,0x0                                                                                    
0009c4   0efd     MOVLW     0xfd                } while( *c++ );                                                              F:\MCP\projects\CAN\canToSerial\Source\uart.c
0009c6   cfdb     MOVFF     0xfdb,0xfe9                                                                                     
0009c8   ffe9                                                                                                               
0009ca   2adb     INCF      0xdb,0x1,0x0                                                                                    
0009cc   0efe     MOVLW     0xfe                                                                                            
0009ce   cfdb     MOVFF     0xfdb,0xfea                                                                                     
0009d0   ffea                                                                                                               
0009d2   e301     BNC       0x9d6                                                                                           
0009d4   2adb     INCF      0xdb,0x1,0x0                                                                                    
0009d6   50ef     MOVF      0xef,0x0,0x0                                                                                    
0009d8   e1e7     BNZ       0x9a8                                                                                           
0009da   52e5     MOVF      0xe5,0x1,0x0   }                                                                                F:\MCP\projects\CAN\canToSerial\Source\uart.c
0009dc   cfe7     MOVFF     0xfe7,0xfd9                                                                                     
0009de   ffd9                                                                                                               
0009e0   0012     RETURN    0x0                                                                                             
                                                                                                                            F:\MCP\projects\CAN\canToSerial\Source\uart.c
                                           /*                                                                               F:\MCP\projects\CAN\canToSerial\Source\uart.c
                                           *    Function: uartPutrs                                                            F:\MCP\projects\CAN\canToSerial\Source\uart.c
                                           *                                                                                F:\MCP\projects\CAN\canToSerial\Source\uart.c
                                           *    Input:  Byte array to send on uart (static)                                     F:\MCP\projects\CAN\canToSerial\Source\uart.c
                                           *    Output: none                                                                   F:\MCP\projects\CAN\canToSerial\Source\uart.c
                                           *    Pre-conditions: call to uartInit()                                             F:\MCP\projects\CAN\canToSerial\Source\uart.c
                                           *    Affects: none                                                                  F:\MCP\projects\CAN\canToSerial\Source\uart.c
                                           *    Depends: none                                                                  F:\MCP\projects\CAN\canToSerial\Source\uart.c
                                           */                                                                               F:\MCP\projects\CAN\canToSerial\Source\uart.c
0009e2   cfd9     MOVFF     0xfd9,0xfe6    void uartPutrs(const rom char *c)                                                F:\MCP\projects\CAN\canToSerial\Source\uart.c
0009e4   ffe6                                                                                                               
0009e6   cfe1     MOVFF     0xfe1,0xfd9                                                                                     
0009e8   ffd9                                                                                                               
                                           {                                                                                F:\MCP\projects\CAN\canToSerial\Source\uart.c
                                            do                                                                              F:\MCP\projects\CAN\canToSerial\Source\uart.c
                                                {  // Transmit a byte                                                         F:\MCP\projects\CAN\canToSerial\Source\uart.c
0009ea   d81e     RCALL     0xa28               while(uartBusy());                                                          F:\MCP\projects\CAN\canToSerial\Source\uart.c
0009ec   0900     IORLW     0x0                                                                                             
0009ee   e001     BZ        0x9f2                                                                                           
0009f0   d7fc     BRA       0x9ea                                                                                           
0009f2   0efd     MOVLW     0xfd                uartPutc(*c);                                                               F:\MCP\projects\CAN\canToSerial\Source\uart.c
0009f4   cfdb     MOVFF     0xfdb,0xff6                                                                                     
0009f6   fff6                                                                                                               
0009f8   0efe     MOVLW     0xfe                                                                                            
0009fa   cfdb     MOVFF     0xfdb,0xff7                                                                                     
0009fc   fff7                                                                                                               
0009fe   0008     TBLRD                                                                                                     
000a00   50f5     MOVF      0xf5,0x0,0x0                                                                                    
000a02   6ee6     MOVWF     0xe6,0x0                                                                                        
000a04   dfbe     RCALL     0x982                                                                                           
000a06   52e5     MOVF      0xe5,0x1,0x0                                                                                    
000a08   0efd     MOVLW     0xfd                } while( *c++ );                                                              F:\MCP\projects\CAN\canToSerial\Source\uart.c
000a0a   cfdb     MOVFF     0xfdb,0xff6                                                                                     
000a0c   fff6                                                                                                               
000a0e   2adb     INCF      0xdb,0x1,0x0                                                                                    
000a10   0efe     MOVLW     0xfe                                                                                            
000a12   cfdb     MOVFF     0xfdb,0xff7                                                                                     
000a14   fff7                                                                                                               
000a16   e301     BNC       0xa1a                                                                                           
000a18   2adb     INCF      0xdb,0x1,0x0                                                                                    
000a1a   0008     TBLRD                                                                                                     
000a1c   50f5     MOVF      0xf5,0x0,0x0                                                                                    
000a1e   e1e5     BNZ       0x9ea                                                                                           
000a20   52e5     MOVF      0xe5,0x1,0x0   }                                                                                F:\MCP\projects\CAN\canToSerial\Source\uart.c
000a22   cfe7     MOVFF     0xfe7,0xfd9                                                                                     
000a24   ffd9                                                                                                               
000a26   0012     RETURN    0x0                                                                                             
                                                                                                                            F:\MCP\projects\CAN\canToSerial\Source\uart.c
                                                                                                                            F:\MCP\projects\CAN\canToSerial\Source\uart.c
                                                                                                                            F:\MCP\projects\CAN\canToSerial\Source\uart.c
                                                                                                                            F:\MCP\projects\CAN\canToSerial\Source\uart.c
                                           /*                                                                               F:\MCP\projects\CAN\canToSerial\Source\uart.c
                                           *    Function: uartBusy                                                             F:\MCP\projects\CAN\canToSerial\Source\uart.c
                                           *                                                                                F:\MCP\projects\CAN\canToSerial\Source\uart.c
                                           *    Input:  none.                                                                   F:\MCP\projects\CAN\canToSerial\Source\uart.c
                                           *    Output: If usart busy or not.                                                  F:\MCP\projects\CAN\canToSerial\Source\uart.c
                                           *    Pre-conditions: call to uartInit()                                             F:\MCP\projects\CAN\canToSerial\Source\uart.c
                                           *    Affects: none                                                                  F:\MCP\projects\CAN\canToSerial\Source\uart.c
                                           *    Depends: none                                                                  F:\MCP\projects\CAN\canToSerial\Source\uart.c
                                           */                                                                               F:\MCP\projects\CAN\canToSerial\Source\uart.c
                                           char uartBusy(void)                                                              F:\MCP\projects\CAN\canToSerial\Source\uart.c
                                           {                                                                                F:\MCP\projects\CAN\canToSerial\Source\uart.c
000a28   50ac     MOVF      0xac,0x0,0x0    return !TXSTAbits.TRMT;                                                         F:\MCP\projects\CAN\canToSerial\Source\uart.c
000a2a   0b02     ANDLW     0x2                                                                                             
000a2c   0a02     XORLW     0x2                                                                                             
000a2e   e001     BZ        0xa32                                                                                           
000a30   0e01     MOVLW     0x1                                                                                             
000a32   d000     BRA       0xa34                                                                                           
000a34   0012     RETURN    0x0            }                                                                                F:\MCP\projects\CAN\canToSerial\Source\uart.c
                                                                                                                            F:\MCP\projects\CAN\canToSerial\Source\uart.c
                                                                                                                            F:\MCP\projects\CAN\canToSerial\Source\uart.c
                                           /*                                                                               F:\MCP\projects\CAN\canToSerial\Source\uart.c
                                           *    Function: uartGet                                                              F:\MCP\projects\CAN\canToSerial\Source\uart.c
                                           *                                                                                F:\MCP\projects\CAN\canToSerial\Source\uart.c
                                           *    Input:  none                                                                    F:\MCP\projects\CAN\canToSerial\Source\uart.c
                                           *    Output: Byte read                                                              F:\MCP\projects\CAN\canToSerial\Source\uart.c
                                           *    Pre-conditions: call to uartInit()                                             F:\MCP\projects\CAN\canToSerial\Source\uart.c
                                           *    Affects: none                                                                  F:\MCP\projects\CAN\canToSerial\Source\uart.c
                                           *    Depends: none.                                                                 F:\MCP\projects\CAN\canToSerial\Source\uart.c
                                           */                                                                               F:\MCP\projects\CAN\canToSerial\Source\uart.c
                                           BYTE uartGet(void)                                                               F:\MCP\projects\CAN\canToSerial\Source\uart.c
                                           {                                                                                F:\MCP\projects\CAN\canToSerial\Source\uart.c
                                            // Return the received data                                                     F:\MCP\projects\CAN\canToSerial\Source\uart.c
000a36   50ae     MOVF      0xae,0x0,0x0    return RCREG;                                                                     F:\MCP\projects\CAN\canToSerial\Source\uart.c
000a38   d000     BRA       0xa3a                                                                                           
000a3a   0012     RETURN    0x0            }                                                                                F:\MCP\projects\CAN\canToSerial\Source\uart.c
                                                                                                                            F:\MCP\projects\CAN\canToSerial\Source\uart.c
                                                                                                                            F:\MCP\projects\CAN\canToSerial\Source\uart.c
                                           /*                                                                               F:\MCP\projects\CAN\canToSerial\Source\uart.c
                                           *    Function: uartISR                                                              F:\MCP\projects\CAN\canToSerial\Source\uart.c
                                           *                                                                                F:\MCP\projects\CAN\canToSerial\Source\uart.c
                                           *    Input:  none                                                                    F:\MCP\projects\CAN\canToSerial\Source\uart.c
                                           *    Output: none                                                                   F:\MCP\projects\CAN\canToSerial\Source\uart.c
                                           *    Pre-conditions: call to uartInit()                                             F:\MCP\projects\CAN\canToSerial\Source\uart.c
                                           *    Affects: call to uartParse                                                     F:\MCP\projects\CAN\canToSerial\Source\uart.c
                                           *    Depends: none.                                                                 F:\MCP\projects\CAN\canToSerial\Source\uart.c
                                           */                                                                               F:\MCP\projects\CAN\canToSerial\Source\uart.c
                                           void uartISR(void)                                                               F:\MCP\projects\CAN\canToSerial\Source\uart.c
                                           {                                                                                F:\MCP\projects\CAN\canToSerial\Source\uart.c
000a3c   509e     MOVF      0x9e,0x0,0x0    if (PIR1bits.RCIF==1 && PIE1bits.RCIE==1)                                       F:\MCP\projects\CAN\canToSerial\Source\uart.c
000a3e   0b20     ANDLW     0x20                                                                                            
000a40   e00d     BZ        0xa5c                                                                                           
000a42   509d     MOVF      0x9d,0x0,0x0                                                                                    
000a44   0b20     ANDLW     0x20                                                                                            
000a46   e00a     BZ        0xa5c                                                                                           
                                            {                                                                               F:\MCP\projects\CAN\canToSerial\Source\uart.c
000a48   a2ab     BTFSS     0xab,0x1,0x0        if (RCSTAbits.OERR) { RCSTAbits.CREN=0; RCSTAbits.CREN=1; }                    F:\MCP\projects\CAN\canToSerial\Source\uart.c
000a4a   d002     BRA       0xa50                                                                                           
000a4c   98ab     BCF       0xab,0x4,0x0                                                                                    
000a4e   88ab     BSF       0xab,0x4,0x0                                                                                    
                                                                                                                            F:\MCP\projects\CAN\canToSerial\Source\uart.c
000a50   dff2     RCALL     0xa36               uartParse(uartGet());                                                          F:\MCP\projects\CAN\canToSerial\Source\uart.c
000a52   6ee6     MOVWF     0xe6,0x0                                                                                        
000a54   ecb7     CALL      0x76e,0x0                                                                                       
000a56   f003                                                                                                               
000a58   52e5     MOVF      0xe5,0x1,0x0                                                                                    
000a5a   9a9e     BCF       0x9e,0x5,0x0        PIR1bits.RCIF=0;                                                               F:\MCP\projects\CAN\canToSerial\Source\uart.c
                                            }                                                                               F:\MCP\projects\CAN\canToSerial\Source\uart.c
000a5c   0012     RETURN    0x0            }                                                                                F:\MCP\projects\CAN\canToSerial\Source\uart.c
                                                                                                                            F:\MCP\projects\CAN\canToSerial\Source\uart.c
                                                                                                                            F:\MCP\projects\CAN\canToSerial\Source\uart.c
                                           /*                                                                               F:\MCP\projects\CAN\canToSerial\Source\uart.c
                                           *    Function: uartDataRedy                                                         F:\MCP\projects\CAN\canToSerial\Source\uart.c
                                           *                                                                                F:\MCP\projects\CAN\canToSerial\Source\uart.c
                                           *    Input:  none.                                                                   F:\MCP\projects\CAN\canToSerial\Source\uart.c
                                           *    Output: If usart data are redy to be read.                                     F:\MCP\projects\CAN\canToSerial\Source\uart.c
                                           *    Pre-conditions: call to uartInit()                                             F:\MCP\projects\CAN\canToSerial\Source\uart.c
                                           *    Affects: none                                                                  F:\MCP\projects\CAN\canToSerial\Source\uart.c
                                           *    Depends: none                                                                  F:\MCP\projects\CAN\canToSerial\Source\uart.c
                                           */                                                                               F:\MCP\projects\CAN\canToSerial\Source\uart.c
                                           char uartDataRedy(void)                                                          F:\MCP\projects\CAN\canToSerial\Source\uart.c
                                           {                                                                                F:\MCP\projects\CAN\canToSerial\Source\uart.c
000a5e   a2ab     BTFSS     0xab,0x1,0x0    if(RCSTAbits.OERR)                                                              F:\MCP\projects\CAN\canToSerial\Source\uart.c
000a60   d002     BRA       0xa66                                                                                           
                                            {                                                                               F:\MCP\projects\CAN\canToSerial\Source\uart.c
000a62   98ab     BCF       0xab,0x4,0x0        RCSTAbits.CREN = 0;                                                            F:\MCP\projects\CAN\canToSerial\Source\uart.c
000a64   88ab     BSF       0xab,0x4,0x0        RCSTAbits.CREN = 1;                                                            F:\MCP\projects\CAN\canToSerial\Source\uart.c
                                            }                                                                               F:\MCP\projects\CAN\canToSerial\Source\uart.c
000a66   509e     MOVF      0x9e,0x0,0x0     return PIR1bits.RCIF;                                                          F:\MCP\projects\CAN\canToSerial\Source\uart.c
000a68   0b20     ANDLW     0x20                                                                                            
000a6a   e001     BZ        0xa6e                                                                                           
000a6c   0e01     MOVLW     0x1                                                                                             
000a6e   d000     BRA       0xa70                                                                                           
000a70   0012     RETURN    0x0            }                                                                                F:\MCP\projects\CAN\canToSerial\Source\uart.c
                                                                                                                            F:\MCP\projects\CAN\canToSerial\Source\uart.c
                                           #endif                                                                           F:\MCP\projects\CAN\canToSerial\Source\uart.c
                                           /*********************************************************************           F:\MCP\projects\CAN\canToSerial\Source\CAN.c
                                            *                                                                               F:\MCP\projects\CAN\canToSerial\Source\CAN.c
                                            *                  CAN driver                                                   F:\MCP\projects\CAN\canToSerial\Source\CAN.c
                                            *                                                                               F:\MCP\projects\CAN\canToSerial\Source\CAN.c
                                            *********************************************************************           F:\MCP\projects\CAN\canToSerial\Source\CAN.c
                                            * FileName:        $HeadURL$                                                    F:\MCP\projects\CAN\canToSerial\Source\CAN.c
                                            * Last changed: $LastChangedDate$                                               F:\MCP\projects\CAN\canToSerial\Source\CAN.c
                                            * By:               $LastChangedBy$                                                        F:\MCP\projects\CAN\canToSerial\Source\CAN.c
                                            * Revision:     $Revision$                                                         F:\MCP\projects\CAN\canToSerial\Source\CAN.c
                                            ********************************************************************/           F:\MCP\projects\CAN\canToSerial\Source\CAN.c
                                                                                                                            F:\MCP\projects\CAN\canToSerial\Source\CAN.c
                                           #include <CANdefs.h>                                                             F:\MCP\projects\CAN\canToSerial\Source\CAN.c
                                           #include <stackTasks.h>                                                          F:\MCP\projects\CAN\canToSerial\Source\CAN.c
                                           #include <CAN.h>                                                                 F:\MCP\projects\CAN\canToSerial\Source\CAN.c
                                                                                                                            F:\MCP\projects\CAN\canToSerial\Source\CAN.c
                                           static void canGetPacket(void);                                                  F:\MCP\projects\CAN\canToSerial\Source\CAN.c
                                                                                                                            F:\MCP\projects\CAN\canToSerial\Source\CAN.c
                                           #ifdef USE_CAN                                                                   F:\MCP\projects\CAN\canToSerial\Source\CAN.c
                                                                                                                            F:\MCP\projects\CAN\canToSerial\Source\CAN.c
                                                                                                                            F:\MCP\projects\CAN\canToSerial\Source\CAN.c
                                           /*                                                                               F:\MCP\projects\CAN\canToSerial\Source\CAN.c
                                           *    Function: canInit                                                              F:\MCP\projects\CAN\canToSerial\Source\CAN.c
                                           *                                                                                F:\MCP\projects\CAN\canToSerial\Source\CAN.c
                                           *    Input:  none                                                                    F:\MCP\projects\CAN\canToSerial\Source\CAN.c
                                           *    Output: none                                                                   F:\MCP\projects\CAN\canToSerial\Source\CAN.c
                                           *    Pre-conditions: none                                                           F:\MCP\projects\CAN\canToSerial\Source\CAN.c
                                           *    Affects: Changes can registers.                                                F:\MCP\projects\CAN\canToSerial\Source\CAN.c
                                           *    Depends: none.                                                                 F:\MCP\projects\CAN\canToSerial\Source\CAN.c
                                           */                                                                               F:\MCP\projects\CAN\canToSerial\Source\CAN.c
                                           void canInit()                                                                   F:\MCP\projects\CAN\canToSerial\Source\CAN.c
                                           {                                                                                F:\MCP\projects\CAN\canToSerial\Source\CAN.c
000044   0e80     MOVLW     0x80            CANCON = 0x80; //request config mode                                            F:\MCP\projects\CAN\canToSerial\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\canToSerial\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\canToSerial\Source\CAN.c
                                            // BAUD AND TQS                                                                 F:\MCP\projects\CAN\canToSerial\Source\CAN.c
                                                                                                                            F:\MCP\projects\CAN\canToSerial\Source\CAN.c
000052   6a70     CLRF      0x70,0x0        BRGCON1=0;                                                                      F:\MCP\projects\CAN\canToSerial\Source\CAN.c
                                                                                                                            F:\MCP\projects\CAN\canToSerial\Source\CAN.c
                                            // Sync_Seq = 2 x TQ = 1                                                        F:\MCP\projects\CAN\canToSerial\Source\CAN.c
000054   9e70     BCF       0x70,0x7,0x0    BRGCON1bits.SJW1=0;                                                             F:\MCP\projects\CAN\canToSerial\Source\CAN.c
000056   8c70     BSF       0x70,0x6,0x0    BRGCON1bits.SJW0=1;                                                             F:\MCP\projects\CAN\canToSerial\Source\CAN.c
                                                                                                                            F:\MCP\projects\CAN\canToSerial\Source\CAN.c
                                            // Setting BRP.                                                                 F:\MCP\projects\CAN\canToSerial\Source\CAN.c
000058   0e04     MOVLW     0x4             BRGCON1=BRGCON1|CAN_BRP;                                                        F:\MCP\projects\CAN\canToSerial\Source\CAN.c
00005a   1070     IORWF     0x70,0x0,0x0                                                                                    
00005c   6e70     MOVWF     0x70,0x0                                                                                        
                                                                                                                            F:\MCP\projects\CAN\canToSerial\Source\CAN.c
                                            // Maximum PHEG1                                                                F:\MCP\projects\CAN\canToSerial\Source\CAN.c
00005e   8e71     BSF       0x71,0x7,0x0    BRGCON2bits.SEG2PHTS = 1;                                                       F:\MCP\projects\CAN\canToSerial\Source\CAN.c
                                                                                                                            F:\MCP\projects\CAN\canToSerial\Source\CAN.c
                                            // Phase_Seg1 = 2 x TQ = 1                                                      F:\MCP\projects\CAN\canToSerial\Source\CAN.c
000060   9a71     BCF       0x71,0x5,0x0    BRGCON2bits.SEG1PH2 = 0;                                                        F:\MCP\projects\CAN\canToSerial\Source\CAN.c
000062   9871     BCF       0x71,0x4,0x0    BRGCON2bits.SEG1PH1 = 0;                                                        F:\MCP\projects\CAN\canToSerial\Source\CAN.c
000064   8671     BSF       0x71,0x3,0x0    BRGCON2bits.SEG1PH0 = 1;                                                        F:\MCP\projects\CAN\canToSerial\Source\CAN.c
                                                                                                                            F:\MCP\projects\CAN\canToSerial\Source\CAN.c
                                            // Prop_Seq = 2 x TQ = 1                                                        F:\MCP\projects\CAN\canToSerial\Source\CAN.c
000066   9471     BCF       0x71,0x2,0x0    BRGCON2bits.PRSEG2 = 0;                                                         F:\MCP\projects\CAN\canToSerial\Source\CAN.c
000068   9271     BCF       0x71,0x1,0x0    BRGCON2bits.PRSEG1 = 0;                                                         F:\MCP\projects\CAN\canToSerial\Source\CAN.c
00006a   8071     BSF       0x71,0x0,0x0    BRGCON2bits.PRSEG0 = 1;                                                         F:\MCP\projects\CAN\canToSerial\Source\CAN.c
                                                                                                                            F:\MCP\projects\CAN\canToSerial\Source\CAN.c
                                            //  Enableing bus wake-up                                                       F:\MCP\projects\CAN\canToSerial\Source\CAN.c
00006c   9e72     BCF       0x72,0x7,0x0    BRGCON3bits.WAKDIS = 0;                                                         F:\MCP\projects\CAN\canToSerial\Source\CAN.c
                                                                                                                            F:\MCP\projects\CAN\canToSerial\Source\CAN.c
                                            // Dont use filter when wakeup                                                  F:\MCP\projects\CAN\canToSerial\Source\CAN.c
00006e   9c72     BCF       0x72,0x6,0x0    BRGCON3bits.WAKFIL = 0;                                                         F:\MCP\projects\CAN\canToSerial\Source\CAN.c
                                                                                                                            F:\MCP\projects\CAN\canToSerial\Source\CAN.c
                                            // Phase_Seg2 = 2 x TQ = 1                                                      F:\MCP\projects\CAN\canToSerial\Source\CAN.c
000070   9472     BCF       0x72,0x2,0x0    BRGCON3bits.SEG2PH2 = 0;                                                        F:\MCP\projects\CAN\canToSerial\Source\CAN.c
000072   9272     BCF       0x72,0x1,0x0    BRGCON3bits.SEG2PH1 = 0;                                                        F:\MCP\projects\CAN\canToSerial\Source\CAN.c
000074   8072     BSF       0x72,0x0,0x0    BRGCON3bits.SEG2PH0 = 1;                                                        F:\MCP\projects\CAN\canToSerial\Source\CAN.c
                                                                                                                            F:\MCP\projects\CAN\canToSerial\Source\CAN.c
000076   6a77     CLRF      0x77,0x0        ECANCON=0;                                                                      F:\MCP\projects\CAN\canToSerial\Source\CAN.c
000078   8e77     BSF       0x77,0x7,0x0    ECANCONbits.MDSEL1 = 1;                                                         F:\MCP\projects\CAN\canToSerial\Source\CAN.c
00007a   9c77     BCF       0x77,0x6,0x0    ECANCONbits.MDSEL0 = 0;                                                         F:\MCP\projects\CAN\canToSerial\Source\CAN.c
                                                                                                                            F:\MCP\projects\CAN\canToSerial\Source\CAN.c
                                                                                                                            F:\MCP\projects\CAN\canToSerial\Source\CAN.c
                                            // FILTERS AND MASKS                                                            F:\MCP\projects\CAN\canToSerial\Source\CAN.c
00007c   8c60     BSF       0x60,0x6,0x0    RXB0CONbits.RXM1=1;                                                             F:\MCP\projects\CAN\canToSerial\Source\CAN.c
00007e   9a60     BCF       0x60,0x5,0x0    RXB0CONbits.RXM0=0;                                                             F:\MCP\projects\CAN\canToSerial\Source\CAN.c
                                                                                                                            F:\MCP\projects\CAN\canToSerial\Source\CAN.c
                                                                                                                            F:\MCP\projects\CAN\canToSerial\Source\CAN.c
                                            // INTERRUPTS                                                                   F:\MCP\projects\CAN\canToSerial\Source\CAN.c
                                                                                                                            F:\MCP\projects\CAN\canToSerial\Source\CAN.c
                                            // Diable transmit interrupt                                                    F:\MCP\projects\CAN\canToSerial\Source\CAN.c
000080   010d     MOVLB     0xd             TXBIE = 0;                                                                      F:\MCP\projects\CAN\canToSerial\Source\CAN.c
000082   6bfc     CLRF      0xfc,0x1                                                                                        
                                                                                                                            F:\MCP\projects\CAN\canToSerial\Source\CAN.c
                                            //rx any interrupt                                                              F:\MCP\projects\CAN\canToSerial\Source\CAN.c
000084   6aa4     CLRF      0xa4,0x0        PIR3 = 0;                                                                       F:\MCP\projects\CAN\canToSerial\Source\CAN.c
000086   0e03     MOVLW     0x3             PIE3 = 0b00000011;                                                              F:\MCP\projects\CAN\canToSerial\Source\CAN.c
000088   6ea3     MOVWF     0xa3,0x0                                                                                        
                                                                                                                            F:\MCP\projects\CAN\canToSerial\Source\CAN.c
                                            // High interrupt                                                               F:\MCP\projects\CAN\canToSerial\Source\CAN.c
00008a   6ea5     MOVWF     0xa5,0x0        IPR3 =0b00000011;                                                               F:\MCP\projects\CAN\canToSerial\Source\CAN.c
                                                                                                                            F:\MCP\projects\CAN\canToSerial\Source\CAN.c
                                            // Programmable buffers interrupt                                               F:\MCP\projects\CAN\canToSerial\Source\CAN.c
00008c   69fa     SETF      0xfa,0x1        BIE0  = 0xFF;                                                                     F:\MCP\projects\CAN\canToSerial\Source\CAN.c
                                                                                                                            F:\MCP\projects\CAN\canToSerial\Source\CAN.c
                                                                                                                            F:\MCP\projects\CAN\canToSerial\Source\CAN.c
                                            //loopback mode or not                                                          F:\MCP\projects\CAN\canToSerial\Source\CAN.c
                                            #ifdef CAN_LOOPBACK_MODE                                                        F:\MCP\projects\CAN\canToSerial\Source\CAN.c
                                                CANCON = 0x40;//request loopback mode                                          F:\MCP\projects\CAN\canToSerial\Source\CAN.c
                                                while ((CANSTAT & 0xE0) != 0x40 );//wait for loopback mode                     F:\MCP\projects\CAN\canToSerial\Source\CAN.c
                                            #else                                                                           F:\MCP\projects\CAN\canToSerial\Source\CAN.c
00008e   6a6f     CLRF      0x6f,0x0            CANCON = 0x00;//request normal mode                                            F:\MCP\projects\CAN\canToSerial\Source\CAN.c
000090   0ee0     MOVLW     0xe0                while ((CANSTAT & 0xE0) != 0x00 );//wait for normal mode                       F:\MCP\projects\CAN\canToSerial\Source\CAN.c
000092   146e     ANDWF     0x6e,0x0,0x0                                                                                    
000094   e001     BZ        0x98                                                                                            
000096   d7fc     BRA       0x90                                                                                            
                                            #endif                                                                          F:\MCP\projects\CAN\canToSerial\Source\CAN.c
                                                                                                                            F:\MCP\projects\CAN\canToSerial\Source\CAN.c
000098   0012     RETURN    0x0            }                                                                                F:\MCP\projects\CAN\canToSerial\Source\CAN.c
                                                                                                                            F:\MCP\projects\CAN\canToSerial\Source\CAN.c
                                                                                                                            F:\MCP\projects\CAN\canToSerial\Source\CAN.c
                                           /*                                                                               F:\MCP\projects\CAN\canToSerial\Source\CAN.c
                                           *    Function: canISR                                                               F:\MCP\projects\CAN\canToSerial\Source\CAN.c
                                           *                                                                                F:\MCP\projects\CAN\canToSerial\Source\CAN.c
                                           *    Input:  none                                                                    F:\MCP\projects\CAN\canToSerial\Source\CAN.c
                                           *    Output: none                                                                   F:\MCP\projects\CAN\canToSerial\Source\CAN.c
                                           *    Pre-conditions: a call to canInit()                                            F:\MCP\projects\CAN\canToSerial\Source\CAN.c
                                           *    Affects: interrupt registers and receive data buffers                          F:\MCP\projects\CAN\canToSerial\Source\CAN.c
                                           *    Depends: ..                                                                    F:\MCP\projects\CAN\canToSerial\Source\CAN.c
                                           */                                                                               F:\MCP\projects\CAN\canToSerial\Source\CAN.c
                                           void canISR()                                                                    F:\MCP\projects\CAN\canToSerial\Source\CAN.c
                                           {                                                                                F:\MCP\projects\CAN\canToSerial\Source\CAN.c
00009a   50a4     MOVF      0xa4,0x0,0x0    if (PIR3bits.RXBnIF || PIR3bits.RXB1IF || PIR3bits.RXB0IF)                      F:\MCP\projects\CAN\canToSerial\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   e016     BZ        0xd8                                                                                            
                                            {                                                                               F:\MCP\projects\CAN\canToSerial\Source\CAN.c
0000ac   0e0f     MOVLW     0xf                 ECANCON=(ECANCON&0b00000)|(0b10000|(CANCON&0x0F));                             F:\MCP\projects\CAN\canToSerial\Source\CAN.c
0000ae   146f     ANDWF     0x6f,0x0,0x0                                                                                    
0000b0   0910     IORLW     0x10                                                                                            
0000b2   6e00     MOVWF     0x0,0x0                                                                                         
0000b4   0e00     MOVLW     0x0                                                                                             
0000b6   1477     ANDWF     0x77,0x0,0x0                                                                                    
0000b8   1000     IORWF     0x0,0x0,0x0                                                                                     
0000ba   6e77     MOVWF     0x77,0x0                                                                                        
0000bc   be60     BTFSC     0x60,0x7,0x0        if (RXB0CONbits.RXFUL) canGetPacket();                                         F:\MCP\projects\CAN\canToSerial\Source\CAN.c
0000be   d80d     RCALL     0xda                                                                                            
                                                                                                                            F:\MCP\projects\CAN\canToSerial\Source\CAN.c
0000c0   a2a4     BTFSS     0xa4,0x1,0x0        if (PIR3bits.RXBnIF) {PIR3bits.RXBnIF = 0; return;}                            F:\MCP\projects\CAN\canToSerial\Source\CAN.c
0000c2   d002     BRA       0xc8                                                                                            
0000c4   92a4     BCF       0xa4,0x1,0x0                                                                                    
0000c6   d008     BRA       0xd8                                                                                            
0000c8   a2a4     BTFSS     0xa4,0x1,0x0        if (PIR3bits.RXB1IF) {PIR3bits.RXB1IF = 0; return;}                            F:\MCP\projects\CAN\canToSerial\Source\CAN.c
0000ca   d002     BRA       0xd0                                                                                            
0000cc   92a4     BCF       0xa4,0x1,0x0                                                                                    
0000ce   d004     BRA       0xd8                                                                                            
0000d0   a0a4     BTFSS     0xa4,0x0,0x0        if (PIR3bits.RXB0IF) {PIR3bits.RXB0IF = 0; return;}                            F:\MCP\projects\CAN\canToSerial\Source\CAN.c
0000d2   d002     BRA       0xd8                                                                                            
0000d4   90a4     BCF       0xa4,0x0,0x0                                                                                    
0000d6   d000     BRA       0xd8                                                                                            
                                            }                                                                               F:\MCP\projects\CAN\canToSerial\Source\CAN.c
0000d8   0012     RETURN    0x0            }                                                                                F:\MCP\projects\CAN\canToSerial\Source\CAN.c
                                                                                                                            F:\MCP\projects\CAN\canToSerial\Source\CAN.c
                                                                                                                            F:\MCP\projects\CAN\canToSerial\Source\CAN.c
                                           /*                                                                               F:\MCP\projects\CAN\canToSerial\Source\CAN.c
                                           *    Function: canGetPacket                                                         F:\MCP\projects\CAN\canToSerial\Source\CAN.c
                                           *                                                                                F:\MCP\projects\CAN\canToSerial\Source\CAN.c
                                           *    Input:  none                                                                    F:\MCP\projects\CAN\canToSerial\Source\CAN.c
                                           *    Output: none                                                                   F:\MCP\projects\CAN\canToSerial\Source\CAN.c
                                           *    Pre-conditions: a call to canISR and an packet is available and banked to RXB0 F:\MCP\projects\CAN\canToSerial\Source\CAN.c
                                           *    Affects: Calls canParse() function in main for parsing received packet.        F:\MCP\projects\CAN\canToSerial\Source\CAN.c
                                           *    Depends: none.                                                                 F:\MCP\projects\CAN\canToSerial\Source\CAN.c
                                           */                                                                               F:\MCP\projects\CAN\canToSerial\Source\CAN.c
0000da   cfd9     MOVFF     0xfd9,0xfe6    void canGetPacket()                                                              F:\MCP\projects\CAN\canToSerial\Source\CAN.c
0000dc   ffe6                                                                                                               
0000de   cfe1     MOVFF     0xfe1,0xfd9                                                                                     
0000e0   ffd9                                                                                                               
0000e2   0e0f     MOVLW     0xf                                                                                             
0000e4   26e1     ADDWF     0xe1,0x1,0x0                                                                                    
                                           {                                                                                F:\MCP\projects\CAN\canToSerial\Source\CAN.c
                                                CAN_MESSAGE cm;                                                                F:\MCP\projects\CAN\canToSerial\Source\CAN.c
                                                                                                                            F:\MCP\projects\CAN\canToSerial\Source\CAN.c
                                                // Set extended mode or not.                                                   F:\MCP\projects\CAN\canToSerial\Source\CAN.c
0000e6   5062     MOVF      0x62,0x0,0x0        cm.extended=(RXB0SIDLbits.EXID==0?FALSE:TRUE);                                 F:\MCP\projects\CAN\canToSerial\Source\CAN.c
0000e8   0b08     ANDLW     0x8                                                                                             
0000ea   e102     BNZ       0xf0                                                                                            
0000ec   0e00     MOVLW     0x0                                                                                             
0000ee   d001     BRA       0xf2                                                                                            
0000f0   0e01     MOVLW     0x1                                                                                             
0000f2   6ee7     MOVWF     0xe7,0x0                                                                                        
0000f4   0e04     MOVLW     0x4                                                                                             
0000f6   cfe7     MOVFF     0xfe7,0xfdb                                                                                     
0000f8   ffdb                                                                                                               
                                                                                                                            F:\MCP\projects\CAN\canToSerial\Source\CAN.c
                                                // Clear                                                                       F:\MCP\projects\CAN\canToSerial\Source\CAN.c
0000fa   6ade     CLRF      0xde,0x0            cm.ident=0;                                                                    F:\MCP\projects\CAN\canToSerial\Source\CAN.c
0000fc   6ade     CLRF      0xde,0x0                                                                                        
0000fe   6ade     CLRF      0xde,0x0                                                                                        
000100   6add     CLRF      0xdd,0x0                                                                                        
000102   52dd     MOVF      0xdd,0x1,0x0                                                                                    
000104   52dd     MOVF      0xdd,0x1,0x0                                                                                    
                                                                                                                            F:\MCP\projects\CAN\canToSerial\Source\CAN.c
                                                                                                                            F:\MCP\projects\CAN\canToSerial\Source\CAN.c
000106   04db     DECF      0xdb,0x0,0x0        if (cm.extended==TRUE)                                                         F:\MCP\projects\CAN\canToSerial\Source\CAN.c
000108   e16f     BNZ       0x1e8                                                                                           
                                                {                                                                              F:\MCP\projects\CAN\canToSerial\Source\CAN.c
                                                    //Read extended ident.                                                        F:\MCP\projects\CAN\canToSerial\Source\CAN.c
                                                                                                                            F:\MCP\projects\CAN\canToSerial\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\canToSerial\Source\CAN.c
                                                                                                                            F:\MCP\projects\CAN\canToSerial\Source\CAN.c
                                                    //RXB0SIDH 28 27 26 25 24 23 22 21                                      F:\MCP\projects\CAN\canToSerial\Source\CAN.c
                                                    //RXB0SIDL 20 19 18 xx xx xx 17 16                                      F:\MCP\projects\CAN\canToSerial\Source\CAN.c
                                                    //RXB0EIDH 15 14 13 12 11 10 09 08                                      F:\MCP\projects\CAN\canToSerial\Source\CAN.c
                                                    //RXB0EIDL 07 06 05 04 03 02 01 00                                      F:\MCP\projects\CAN\canToSerial\Source\CAN.c
                                                                                                                            F:\MCP\projects\CAN\canToSerial\Source\CAN.c
                                                                                                                            F:\MCP\projects\CAN\canToSerial\Source\CAN.c
00010a   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\canToSerial\Source\CAN.c
00010c   6e00     MOVWF     0x0,0x0                                                                                         
00010e   6a01     CLRF      0x1,0x0                                                                                         
000110   6a02     CLRF      0x2,0x0                                                                                         
000112   6a03     CLRF      0x3,0x0                                                                                         
000114   0e15     MOVLW     0x15                                                                                            
000116   0b1f     ANDLW     0x1f                                                                                            
000118   e007     BZ        0x128                                                                                           
00011a   90d8     BCF       0xd8,0x0,0x0                                                                                    
00011c   3600     RLCF      0x0,0x1,0x0                                                                                     
00011e   3601     RLCF      0x1,0x1,0x0                                                                                     
000120   3602     RLCF      0x2,0x1,0x0                                                                                     
000122   3603     RLCF      0x3,0x1,0x0                                                                                     
000124   06e8     DECF      0xe8,0x1,0x0                                                                                    
000126   e1f9     BNZ       0x11a                                                                                           
000128   0ee0     MOVLW     0xe0                                                                                            
00012a   1462     ANDWF     0x62,0x0,0x0                                                                                    
00012c   6e04     MOVWF     0x4,0x0                                                                                         
00012e   6a05     CLRF      0x5,0x0                                                                                         
000130   6a06     CLRF      0x6,0x0                                                                                         
000132   6a07     CLRF      0x7,0x0                                                                                         
000134   0e0d     MOVLW     0xd                                                                                             
000136   0b1f     ANDLW     0x1f                                                                                            
000138   e007     BZ        0x148                                                                                           
00013a   90d8     BCF       0xd8,0x0,0x0                                                                                    
00013c   3604     RLCF      0x4,0x1,0x0                                                                                     
00013e   3605     RLCF      0x5,0x1,0x0                                                                                     
000140   3606     RLCF      0x6,0x1,0x0                                                                                     
000142   3607     RLCF      0x7,0x1,0x0                                                                                     
000144   06e8     DECF      0xe8,0x1,0x0                                                                                    
000146   e1f9     BNZ       0x13a                                                                                           
000148   5004     MOVF      0x4,0x0,0x0                                                                                     
00014a   2600     ADDWF     0x0,0x1,0x0                                                                                     
00014c   5005     MOVF      0x5,0x0,0x0                                                                                     
00014e   2201     ADDWFC    0x1,0x1,0x0                                                                                     
000150   5006     MOVF      0x6,0x0,0x0                                                                                     
000152   2202     ADDWFC    0x2,0x1,0x0                                                                                     
000154   5007     MOVF      0x7,0x0,0x0                                                                                     
000156   2203     ADDWFC    0x3,0x1,0x0                                                                                     
000158   0e03     MOVLW     0x3                                                                                             
00015a   1462     ANDWF     0x62,0x0,0x0                                                                                    
00015c   6e08     MOVWF     0x8,0x0                                                                                         
00015e   6a09     CLRF      0x9,0x0                                                                                         
000160   6a0a     CLRF      0xa,0x0                                                                                         
000162   6a0b     CLRF      0xb,0x0                                                                                         
000164   0e10     MOVLW     0x10                                                                                            
000166   0b1f     ANDLW     0x1f                                                                                            
000168   e007     BZ        0x178                                                                                           
00016a   90d8     BCF       0xd8,0x0,0x0                                                                                    
00016c   3608     RLCF      0x8,0x1,0x0                                                                                     
00016e   3609     RLCF      0x9,0x1,0x0                                                                                     
000170   360a     RLCF      0xa,0x1,0x0                                                                                     
000172   360b     RLCF      0xb,0x1,0x0                                                                                     
000174   06e8     DECF      0xe8,0x1,0x0                                                                                    
000176   e1f9     BNZ       0x16a                                                                                           
000178   5008     MOVF      0x8,0x0,0x0                                                                                     
00017a   2600     ADDWF     0x0,0x1,0x0                                                                                     
00017c   5009     MOVF      0x9,0x0,0x0                                                                                     
00017e   2201     ADDWFC    0x1,0x1,0x0                                                                                     
000180   500a     MOVF      0xa,0x0,0x0                                                                                     
000182   2202     ADDWFC    0x2,0x1,0x0                                                                                     
000184   500b     MOVF      0xb,0x0,0x0                                                                                     
000186   2203     ADDWFC    0x3,0x1,0x0                                                                                     
000188   5063     MOVF      0x63,0x0,0x0                                                                                    
00018a   6e0c     MOVWF     0xc,0x0                                                                                         
00018c   6a0d     CLRF      0xd,0x0                                                                                         
00018e   6a0e     CLRF      0xe,0x0                                                                                         
000190   6a0f     CLRF      0xf,0x0                                                                                         
000192   0e08     MOVLW     0x8                                                                                             
000194   0b1f     ANDLW     0x1f                                                                                            
000196   e007     BZ        0x1a6                                                                                           
000198   90d8     BCF       0xd8,0x0,0x0                                                                                    
00019a   360c     RLCF      0xc,0x1,0x0                                                                                     
00019c   360d     RLCF      0xd,0x1,0x0                                                                                     
00019e   360e     RLCF      0xe,0x1,0x0                                                                                     
0001a0   360f     RLCF      0xf,0x1,0x0                                                                                     
0001a2   06e8     DECF      0xe8,0x1,0x0                                                                                    
0001a4   e1f9     BNZ       0x198                                                                                           
0001a6   500c     MOVF      0xc,0x0,0x0                                                                                     
0001a8   2600     ADDWF     0x0,0x1,0x0                                                                                     
0001aa   500d     MOVF      0xd,0x0,0x0                                                                                     
0001ac   2201     ADDWFC    0x1,0x1,0x0                                                                                     
0001ae   500e     MOVF      0xe,0x0,0x0                                                                                     
0001b0   2202     ADDWFC    0x2,0x1,0x0                                                                                     
0001b2   500f     MOVF      0xf,0x0,0x0                                                                                     
0001b4   2203     ADDWFC    0x3,0x1,0x0                                                                                     
0001b6   5064     MOVF      0x64,0x0,0x0                                                                                    
0001b8   6e10     MOVWF     0x10,0x0                                                                                        
0001ba   6a11     CLRF      0x11,0x0                                                                                        
0001bc   6a12     CLRF      0x12,0x0                                                                                        
0001be   6a13     CLRF      0x13,0x0                                                                                        
0001c0   5010     MOVF      0x10,0x0,0x0                                                                                    
0001c2   2600     ADDWF     0x0,0x1,0x0                                                                                     
0001c4   5011     MOVF      0x11,0x0,0x0                                                                                    
0001c6   2201     ADDWFC    0x1,0x1,0x0                                                                                     
0001c8   5012     MOVF      0x12,0x0,0x0                                                                                    
0001ca   2202     ADDWFC    0x2,0x1,0x0                                                                                     
0001cc   5013     MOVF      0x13,0x0,0x0                                                                                    
0001ce   2203     ADDWFC    0x3,0x1,0x0                                                                                     
0001d0   c000     MOVFF     0x0,0xfdf                                                                                       
0001d2   ffdf                                                                                                               
0001d4   0e01     MOVLW     0x1                                                                                             
0001d6   c001     MOVFF     0x1,0xfdb                                                                                       
0001d8   ffdb                                                                                                               
0001da   0e02     MOVLW     0x2                                                                                             
0001dc   c002     MOVFF     0x2,0xfdb                                                                                       
0001de   ffdb                                                                                                               
0001e0   0e03     MOVLW     0x3                                                                                             
0001e2   c003     MOVFF     0x3,0xfdb                                                                                       
0001e4   ffdb                                                                                                               
                                                                                                                            F:\MCP\projects\CAN\canToSerial\Source\CAN.c
                                                }                                                                              F:\MCP\projects\CAN\canToSerial\Source\CAN.c
0001e6   d02f     BRA       0x246               else                                                                           F:\MCP\projects\CAN\canToSerial\Source\CAN.c
                                                {                                                                              F:\MCP\projects\CAN\canToSerial\Source\CAN.c
                                                    //Read standard ident.                                                        F:\MCP\projects\CAN\canToSerial\Source\CAN.c
                                                                                                                            F:\MCP\projects\CAN\canToSerial\Source\CAN.c
                                                    //xx xx xx xx xx 10 09 08   07 06 05 04 03 02 01 00                           F:\MCP\projects\CAN\canToSerial\Source\CAN.c
                                                                                                                            F:\MCP\projects\CAN\canToSerial\Source\CAN.c
                                                    //RXB0SIDH 10 09 08 07 06 05 04 03                                      F:\MCP\projects\CAN\canToSerial\Source\CAN.c
                                                    //RXB0SIDL 02 01 00 xx xx xx xx xx                                      F:\MCP\projects\CAN\canToSerial\Source\CAN.c
                                                                                                                            F:\MCP\projects\CAN\canToSerial\Source\CAN.c
0001e8   5061     MOVF      0x61,0x0,0x0            cm.ident = (((DWORD)RXB0SIDH)<<3) + (((DWORD)RXB0SIDL)>>5);                   F:\MCP\projects\CAN\canToSerial\Source\CAN.c
0001ea   6e00     MOVWF     0x0,0x0                                                                                         
0001ec   6a01     CLRF      0x1,0x0                                                                                         
0001ee   6a02     CLRF      0x2,0x0                                                                                         
0001f0   6a03     CLRF      0x3,0x0                                                                                         
0001f2   0e03     MOVLW     0x3                                                                                             
0001f4   0b1f     ANDLW     0x1f                                                                                            
0001f6   e007     BZ        0x206                                                                                           
0001f8   90d8     BCF       0xd8,0x0,0x0                                                                                    
0001fa   3600     RLCF      0x0,0x1,0x0                                                                                     
0001fc   3601     RLCF      0x1,0x1,0x0                                                                                     
0001fe   3602     RLCF      0x2,0x1,0x0                                                                                     
000200   3603     RLCF      0x3,0x1,0x0                                                                                     
000202   06e8     DECF      0xe8,0x1,0x0                                                                                    
000204   e1f9     BNZ       0x1f8                                                                                           
000206   5062     MOVF      0x62,0x0,0x0                                                                                    
000208   6e04     MOVWF     0x4,0x0                                                                                         
00020a   6a05     CLRF      0x5,0x0                                                                                         
00020c   6a06     CLRF      0x6,0x0                                                                                         
00020e   6a07     CLRF      0x7,0x0                                                                                         
000210   0e05     MOVLW     0x5                                                                                             
000212   90d8     BCF       0xd8,0x0,0x0                                                                                    
000214   3207     RRCF      0x7,0x1,0x0                                                                                     
000216   3206     RRCF      0x6,0x1,0x0                                                                                     
000218   3205     RRCF      0x5,0x1,0x0                                                                                     
00021a   3204     RRCF      0x4,0x1,0x0                                                                                     
00021c   06e8     DECF      0xe8,0x1,0x0                                                                                    
00021e   e1f9     BNZ       0x212                                                                                           
000220   5004     MOVF      0x4,0x0,0x0                                                                                     
000222   2600     ADDWF     0x0,0x1,0x0                                                                                     
000224   5005     MOVF      0x5,0x0,0x0                                                                                     
000226   2201     ADDWFC    0x1,0x1,0x0                                                                                     
000228   5006     MOVF      0x6,0x0,0x0                                                                                     
00022a   2202     ADDWFC    0x2,0x1,0x0                                                                                     
00022c   5007     MOVF      0x7,0x0,0x0                                                                                     
00022e   2203     ADDWFC    0x3,0x1,0x0                                                                                     
000230   c000     MOVFF     0x0,0xfdf                                                                                       
000232   ffdf                                                                                                               
000234   0e01     MOVLW     0x1                                                                                             
000236   c001     MOVFF     0x1,0xfdb                                                                                       
000238   ffdb                                                                                                               
00023a   0e02     MOVLW     0x2                                                                                             
00023c   c002     MOVFF     0x2,0xfdb                                                                                       
00023e   ffdb                                                                                                               
000240   0e03     MOVLW     0x3                                                                                             
000242   c003     MOVFF     0x3,0xfdb                                                                                       
000244   ffdb                                                                                                               
                                                }                                                                              F:\MCP\projects\CAN\canToSerial\Source\CAN.c
                                                                                                                            F:\MCP\projects\CAN\canToSerial\Source\CAN.c
                                                // Data length                                                                 F:\MCP\projects\CAN\canToSerial\Source\CAN.c
000246   5065     MOVF      0x65,0x0,0x0        cm.data_length=(RXB0DLCbits.DLC3<<3)+(RXB0DLCbits.DLC2<<2)+(RXB0DLCbits.DLC1<<1)+RXB0DLCbits.DLC0; F:\MCP\projects\CAN\canToSerial\Source\CAN.c
000248   0b01     ANDLW     0x1                                                                                             
00024a   6e02     MOVWF     0x2,0x0                                                                                         
00024c   5065     MOVF      0x65,0x0,0x0                                                                                    
00024e   0b02     ANDLW     0x2                                                                                             
000250   e001     BZ        0x254                                                                                           
000252   0e01     MOVLW     0x1                                                                                             
000254   24e8     ADDWF     0xe8,0x0,0x0                                                                                    
000256   6e01     MOVWF     0x1,0x0                                                                                         
000258   5065     MOVF      0x65,0x0,0x0                                                                                    
00025a   0b04     ANDLW     0x4                                                                                             
00025c   e001     BZ        0x260                                                                                           
00025e   0e01     MOVLW     0x1                                                                                             
000260   0d04     MULLW     0x4                                                                                             
000262   cff3     MOVFF     0xff3,0x0                                                                                       
000264   f000                                                                                                               
000266   5065     MOVF      0x65,0x0,0x0                                                                                    
000268   0b08     ANDLW     0x8                                                                                             
00026a   e001     BZ        0x26e                                                                                           
00026c   0e01     MOVLW     0x1                                                                                             
00026e   0d08     MULLW     0x8                                                                                             
000270   50f3     MOVF      0xf3,0x0,0x0                                                                                    
000272   2400     ADDWF     0x0,0x0,0x0                                                                                     
000274   2401     ADDWF     0x1,0x0,0x0                                                                                     
000276   2402     ADDWF     0x2,0x0,0x0                                                                                     
000278   6ee7     MOVWF     0xe7,0x0                                                                                        
00027a   0e06     MOVLW     0x6                                                                                             
00027c   cfe7     MOVFF     0xfe7,0xfdb                                                                                     
00027e   ffdb                                                                                                               
                                                                                                                            F:\MCP\projects\CAN\canToSerial\Source\CAN.c
                                                // Remote request                                                              F:\MCP\projects\CAN\canToSerial\Source\CAN.c
000280   5065     MOVF      0x65,0x0,0x0        cm.remote_request=(RXB0DLCbits.RXRTR==0?FALSE:TRUE);                           F:\MCP\projects\CAN\canToSerial\Source\CAN.c
000282   0b40     ANDLW     0x40                                                                                            
000284   e102     BNZ       0x28a                                                                                           
000286   0e00     MOVLW     0x0                                                                                             
000288   d001     BRA       0x28c                                                                                           
00028a   0e01     MOVLW     0x1                                                                                             
00028c   6ee7     MOVWF     0xe7,0x0                                                                                        
00028e   0e05     MOVLW     0x5                                                                                             
000290   cfe7     MOVFF     0xfe7,0xfdb                                                                                     
000292   ffdb                                                                                                               
                                                                                                                            F:\MCP\projects\CAN\canToSerial\Source\CAN.c
                                                // Data one bye one, for speed                                                 F:\MCP\projects\CAN\canToSerial\Source\CAN.c
000294   0e07     MOVLW     0x7                 cm.data[0]=RXB0D0;  cm.data[1]=RXB0D1;                                          F:\MCP\projects\CAN\canToSerial\Source\CAN.c
000296   cf66     MOVFF     0xf66,0xfdb                                                                                     
000298   ffdb                                                                                                               
00029a   0e08     MOVLW     0x8                                                                                             
00029c   cf67     MOVFF     0xf67,0xfdb                                                                                     
00029e   ffdb                                                                                                               
0002a0   0e09     MOVLW     0x9                 cm.data[2]=RXB0D2;  cm.data[3]=RXB0D3;                                         F:\MCP\projects\CAN\canToSerial\Source\CAN.c
0002a2   cf68     MOVFF     0xf68,0xfdb                                                                                     
0002a4   ffdb                                                                                                               
0002a6   0e0a     MOVLW     0xa                                                                                             
0002a8   cf69     MOVFF     0xf69,0xfdb                                                                                     
0002aa   ffdb                                                                                                               
0002ac   0e0b     MOVLW     0xb                 cm.data[4]=RXB0D4;  cm.data[5]=RXB0D5;                                         F:\MCP\projects\CAN\canToSerial\Source\CAN.c
0002ae   cf6a     MOVFF     0xf6a,0xfdb                                                                                     
0002b0   ffdb                                                                                                               
0002b2   0e0c     MOVLW     0xc                                                                                             
0002b4   cf6b     MOVFF     0xf6b,0xfdb                                                                                     
0002b6   ffdb                                                                                                               
0002b8   0e0d     MOVLW     0xd                 cm.data[6]=RXB0D6;  cm.data[7]=RXB0D7;                                         F:\MCP\projects\CAN\canToSerial\Source\CAN.c
0002ba   cf6c     MOVFF     0xf6c,0xfdb                                                                                     
0002bc   ffdb                                                                                                               
0002be   0e0e     MOVLW     0xe                                                                                             
0002c0   cf6d     MOVFF     0xf6d,0xfdb                                                                                     
0002c2   ffdb                                                                                                               
                                                                                                                            F:\MCP\projects\CAN\canToSerial\Source\CAN.c
                                                // Clear ful status                                                            F:\MCP\projects\CAN\canToSerial\Source\CAN.c
0002c4   9e60     BCF       0x60,0x7,0x0        RXB0CONbits.RXFUL=0;                                                           F:\MCP\projects\CAN\canToSerial\Source\CAN.c
                                                                                                                            F:\MCP\projects\CAN\canToSerial\Source\CAN.c
                                                //Call main parser                                                             F:\MCP\projects\CAN\canToSerial\Source\CAN.c
0002c6   cfd9     MOVFF     0xfd9,0xfe9         canParse(cm);                                                                  F:\MCP\projects\CAN\canToSerial\Source\CAN.c
0002c8   ffe9                                                                                                               
0002ca   cfda     MOVFF     0xfda,0xfea                                                                                     
0002cc   ffea                                                                                                               
0002ce   cfee     MOVFF     0xfee,0xfe6                                                                                     
0002d0   ffe6                                                                                                               
0002d2   cfee     MOVFF     0xfee,0xfe6                                                                                     
0002d4   ffe6                                                                                                               
0002d6   cfee     MOVFF     0xfee,0xfe6                                                                                     
0002d8   ffe6                                                                                                               
0002da   cfee     MOVFF     0xfee,0xfe6                                                                                     
0002dc   ffe6                                                                                                               
0002de   cfee     MOVFF     0xfee,0xfe6                                                                                     
0002e0   ffe6                                                                                                               
0002e2   cfee     MOVFF     0xfee,0xfe6                                                                                     
0002e4   ffe6                                                                                                               
0002e6   cfee     MOVFF     0xfee,0xfe6                                                                                     
0002e8   ffe6                                                                                                               
0002ea   cfee     MOVFF     0xfee,0xfe6                                                                                     
0002ec   ffe6                                                                                                               
0002ee   cfee     MOVFF     0xfee,0xfe6                                                                                     
0002f0   ffe6                                                                                                               
0002f2   cfee     MOVFF     0xfee,0xfe6                                                                                     
0002f4   ffe6                                                                                                               
0002f6   cfee     MOVFF     0xfee,0xfe6                                                                                     
0002f8   ffe6                                                                                                               
0002fa   cfee     MOVFF     0xfee,0xfe6                                                                                     
0002fc   ffe6                                                                                                               
0002fe   cfee     MOVFF     0xfee,0xfe6                                                                                     
000300   ffe6                                                                                                               
000302   cfee     MOVFF     0xfee,0xfe6                                                                                     
000304   ffe6                                                                                                               
000306   cfee     MOVFF     0xfee,0xfe6                                                                                     
000308   ffe6                                                                                                               
00030a   ec14     CALL      0x628,0x0                                                                                       
00030c   f003                                                                                                               
00030e   6e00     MOVWF     0x0,0x0                                                                                         
000310   0e0f     MOVLW     0xf                                                                                             
000312   5ee1     SUBWF     0xe1,0x1,0x0                                                                                    
000314   5000     MOVF      0x0,0x0,0x0                                                                                     
000316   0e0f     MOVLW     0xf            }                                                                                F:\MCP\projects\CAN\canToSerial\Source\CAN.c
000318   5ce1     SUBWF     0xe1,0x0,0x0                                                                                    
00031a   e202     BC        0x320                                                                                           
00031c   6ae1     CLRF      0xe1,0x0                                                                                        
00031e   52e5     MOVF      0xe5,0x1,0x0                                                                                    
000320   6ee1     MOVWF     0xe1,0x0                                                                                        
000322   52e5     MOVF      0xe5,0x1,0x0                                                                                    
000324   cfe7     MOVFF     0xfe7,0xfd9                                                                                     
000326   ffd9                                                                                                               
000328   0012     RETURN    0x0                                                                                             
                                                                                                                            F:\MCP\projects\CAN\canToSerial\Source\CAN.c
                                                                                                                            F:\MCP\projects\CAN\canToSerial\Source\CAN.c
                                           /*                                                                               F:\MCP\projects\CAN\canToSerial\Source\CAN.c
                                           *    Function: canSendMessage                                                       F:\MCP\projects\CAN\canToSerial\Source\CAN.c
                                           *                                                                                F:\MCP\projects\CAN\canToSerial\Source\CAN.c
                                           *    Input:  CAN_MESSAGE to send                                                     F:\MCP\projects\CAN\canToSerial\Source\CAN.c
                                           *    Output: True if packet scheduled sucess, false otherwise.                      F:\MCP\projects\CAN\canToSerial\Source\CAN.c
                                           *    Pre-conditions: canInit                                                        F:\MCP\projects\CAN\canToSerial\Source\CAN.c
                                           *    Affects: ..                                                                    F:\MCP\projects\CAN\canToSerial\Source\CAN.c
                                           *    Depends: ..                                                                    F:\MCP\projects\CAN\canToSerial\Source\CAN.c
                                           */                                                                               F:\MCP\projects\CAN\canToSerial\Source\CAN.c
00032a   cfd9     MOVFF     0xfd9,0xfe6    BOOL canSendMessage(CAN_MESSAGE cm,CAN_PRIORITY prio)                            F:\MCP\projects\CAN\canToSerial\Source\CAN.c
00032c   ffe6                                                                                                               
00032e   cfe1     MOVFF     0xfe1,0xfd9                                                                                     
000330   ffd9                                                                                                               
                                           {                                                                                F:\MCP\projects\CAN\canToSerial\Source\CAN.c
                                                                                                                            F:\MCP\projects\CAN\canToSerial\Source\CAN.c
000332   010f     MOVLB     0xf             if ( TXB0CONbits.TXREQ == 0 )  { ECANCON=(ECANCON&0b00000)|0b00011; }           F:\MCP\projects\CAN\canToSerial\Source\CAN.c
000334   b740     BTFSC     0x40,0x3,0x1                                                                                    
000336   d004     BRA       0x340                                                                                           
000338   0e00     MOVLW     0x0                                                                                             
00033a   1477     ANDWF     0x77,0x0,0x0                                                                                    
00033c   0903     IORLW     0x3                                                                                             
00033e   6e77     MOVWF     0x77,0x0                                                                                        
000340   010f     MOVLB     0xf             if ( TXB1CONbits.TXREQ == 0 )  { ECANCON=(ECANCON&0b00000)|0b00100; }           F:\MCP\projects\CAN\canToSerial\Source\CAN.c
000342   b730     BTFSC     0x30,0x3,0x1                                                                                    
000344   d004     BRA       0x34e                                                                                           
000346   0e00     MOVLW     0x0                                                                                             
000348   1477     ANDWF     0x77,0x0,0x0                                                                                    
00034a   0904     IORLW     0x4                                                                                             
00034c   6e77     MOVWF     0x77,0x0                                                                                        
00034e   010f     MOVLB     0xf             if ( TXB2CONbits.TXREQ == 0 )  { ECANCON=(ECANCON&0b00000)|0b00101; }           F:\MCP\projects\CAN\canToSerial\Source\CAN.c
000350   b720     BTFSC     0x20,0x3,0x1                                                                                    
000352   d005     BRA       0x35e                                                                                           
000354   0e00     MOVLW     0x0                                                                                             
000356   1477     ANDWF     0x77,0x0,0x0                                                                                    
000358   0905     IORLW     0x5                                                                                             
00035a   6e77     MOVWF     0x77,0x0                                                                                        
                                            // None of the transmit buffers were empty.                                     F:\MCP\projects\CAN\canToSerial\Source\CAN.c
00035c   d002     BRA       0x362           else { return FALSE;}                                                           F:\MCP\projects\CAN\canToSerial\Source\CAN.c
00035e   0e00     MOVLW     0x0                                                                                             
000360   d0e4     BRA       0x52a                                                                                           
                                                                                                                            F:\MCP\projects\CAN\canToSerial\Source\CAN.c
000362   0eef     MOVLW     0xef            if (prio<0 || prio>3) prio = 0;                                                 F:\MCP\projects\CAN\canToSerial\Source\CAN.c
000364   cfdb     MOVFF     0xfdb,0x0                                                                                       
000366   f000                                                                                                               
000368   3400     RLCF      0x0,0x0,0x0                                                                                     
00036a   e20e     BC        0x388                                                                                           
00036c   0eef     MOVLW     0xef                                                                                            
00036e   cfdb     MOVFF     0xfdb,0x1                                                                                       
000370   f001                                                                                                               
000372   0e03     MOVLW     0x3                                                                                             
000374   6ee7     MOVWF     0xe7,0x0                                                                                        
000376   1801     XORWF     0x1,0x0,0x0                                                                                     
000378   aee8     BTFSS     0xe8,0x7,0x0                                                                                    
00037a   d002     BRA       0x380                                                                                           
00037c   3401     RLCF      0x1,0x0,0x0                                                                                     
00037e   d003     BRA       0x386                                                                                           
000380   50e7     MOVF      0xe7,0x0,0x0                                                                                    
000382   80d8     BSF       0xd8,0x0,0x0                                                                                    
000384   5401     SUBFWB    0x1,0x0,0x0                                                                                     
000386   e202     BC        0x38c                                                                                           
000388   0eef     MOVLW     0xef                                                                                            
00038a   6adb     CLRF      0xdb,0x0                                                                                        
                                                                                                                            F:\MCP\projects\CAN\canToSerial\Source\CAN.c
                                                                                                                            F:\MCP\projects\CAN\canToSerial\Source\CAN.c
00038c   0ef4     MOVLW     0xf4                if (cm.extended==TRUE)                                                         F:\MCP\projects\CAN\canToSerial\Source\CAN.c
00038e   04db     DECF      0xdb,0x0,0x0                                                                                    
000390   e15f     BNZ       0x450                                                                                           
                                                {                                                                              F:\MCP\projects\CAN\canToSerial\Source\CAN.c
                                                    //Write extended ident.                                                       F:\MCP\projects\CAN\canToSerial\Source\CAN.c
                                                                                                                            F:\MCP\projects\CAN\canToSerial\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\canToSerial\Source\CAN.c
                                                                                                                            F:\MCP\projects\CAN\canToSerial\Source\CAN.c
                                                    //RXB0SIDH 28 27 26 25 24 23 22 21                                      F:\MCP\projects\CAN\canToSerial\Source\CAN.c
                                                    //RXB0SIDL 20 19 18 xx xx xx 17 16                                      F:\MCP\projects\CAN\canToSerial\Source\CAN.c
                                                    //RXB0EIDH 15 14 13 12 11 10 09 08                                      F:\MCP\projects\CAN\canToSerial\Source\CAN.c
                                                    //RXB0EIDL 07 06 05 04 03 02 01 00                                      F:\MCP\projects\CAN\canToSerial\Source\CAN.c
                                                                                                                            F:\MCP\projects\CAN\canToSerial\Source\CAN.c
                                                                                                                            F:\MCP\projects\CAN\canToSerial\Source\CAN.c
000392   0ef0     MOVLW     0xf0                    RXB0SIDH =  (BYTE)((cm.ident>>21));                                     F:\MCP\projects\CAN\canToSerial\Source\CAN.c
000394   cfdb     MOVFF     0xfdb,0x0                                                                                       
000396   f000                                                                                                               
000398   0ef1     MOVLW     0xf1                                                                                            
00039a   cfdb     MOVFF     0xfdb,0x1                                                                                       
00039c   f001                                                                                                               
00039e   0ef2     MOVLW     0xf2                                                                                            
0003a0   cfdb     MOVFF     0xfdb,0x2                                                                                       
0003a2   f002                                                                                                               
0003a4   0ef3     MOVLW     0xf3                                                                                            
0003a6   cfdb     MOVFF     0xfdb,0x3                                                                                       
0003a8   f003                                                                                                               
0003aa   0e15     MOVLW     0x15                                                                                            
0003ac   90d8     BCF       0xd8,0x0,0x0                                                                                    
0003ae   3203     RRCF      0x3,0x1,0x0                                                                                     
0003b0   3202     RRCF      0x2,0x1,0x0                                                                                     
0003b2   3201     RRCF      0x1,0x1,0x0                                                                                     
0003b4   3200     RRCF      0x0,0x1,0x0                                                                                     
0003b6   06e8     DECF      0xe8,0x1,0x0                                                                                    
0003b8   e1f9     BNZ       0x3ac                                                                                           
0003ba   5000     MOVF      0x0,0x0,0x0                                                                                     
0003bc   6e61     MOVWF     0x61,0x0                                                                                        
0003be   0ef0     MOVLW     0xf0                    RXB0SIDL = ((BYTE)(cm.ident>>16) & 0x03) + ((BYTE)(cm.ident>>13) & 0xE0); F:\MCP\projects\CAN\canToSerial\Source\CAN.c
0003c0   cfdb     MOVFF     0xfdb,0x5                                                                                       
0003c2   f005                                                                                                               
0003c4   0ef1     MOVLW     0xf1                                                                                            
0003c6   cfdb     MOVFF     0xfdb,0x6                                                                                       
0003c8   f006                                                                                                               
0003ca   0ef2     MOVLW     0xf2                                                                                            
0003cc   cfdb     MOVFF     0xfdb,0x7                                                                                       
0003ce   f007                                                                                                               
0003d0   0ef3     MOVLW     0xf3                                                                                            
0003d2   cfdb     MOVFF     0xfdb,0x8                                                                                       
0003d4   f008                                                                                                               
0003d6   0e0d     MOVLW     0xd                                                                                             
0003d8   90d8     BCF       0xd8,0x0,0x0                                                                                    
0003da   3208     RRCF      0x8,0x1,0x0                                                                                     
0003dc   3207     RRCF      0x7,0x1,0x0                                                                                     
0003de   3206     RRCF      0x6,0x1,0x0                                                                                     
0003e0   3205     RRCF      0x5,0x1,0x0                                                                                     
0003e2   06e8     DECF      0xe8,0x1,0x0                                                                                    
0003e4   e1f9     BNZ       0x3d8                                                                                           
0003e6   0ee0     MOVLW     0xe0                                                                                            
0003e8   1405     ANDWF     0x5,0x0,0x0                                                                                     
0003ea   6e04     MOVWF     0x4,0x0                                                                                         
0003ec   0ef0     MOVLW     0xf0                                                                                            
0003ee   cfdb     MOVFF     0xfdb,0x0                                                                                       
0003f0   f000                                                                                                               
0003f2   0ef1     MOVLW     0xf1                                                                                            
0003f4   cfdb     MOVFF     0xfdb,0x1                                                                                       
0003f6   f001                                                                                                               
0003f8   0ef2     MOVLW     0xf2                                                                                            
0003fa   cfdb     MOVFF     0xfdb,0x2                                                                                       
0003fc   f002                                                                                                               
0003fe   0ef3     MOVLW     0xf3                                                                                            
000400   cfdb     MOVFF     0xfdb,0x3                                                                                       
000402   f003                                                                                                               
000404   0e10     MOVLW     0x10                                                                                            
000406   90d8     BCF       0xd8,0x0,0x0                                                                                    
000408   3203     RRCF      0x3,0x1,0x0                                                                                     
00040a   3202     RRCF      0x2,0x1,0x0                                                                                     
00040c   3201     RRCF      0x1,0x1,0x0                                                                                     
00040e   3200     RRCF      0x0,0x1,0x0                                                                                     
000410   06e8     DECF      0xe8,0x1,0x0                                                                                    
000412   e1f9     BNZ       0x406                                                                                           
000414   0e03     MOVLW     0x3                                                                                             
000416   1400     ANDWF     0x0,0x0,0x0                                                                                     
000418   2404     ADDWF     0x4,0x0,0x0                                                                                     
00041a   6e62     MOVWF     0x62,0x0                                                                                        
00041c   0ef0     MOVLW     0xf0                    RXB0EIDH =  (BYTE)(cm.ident>>8);                                        F:\MCP\projects\CAN\canToSerial\Source\CAN.c
00041e   cfdb     MOVFF     0xfdb,0x0                                                                                       
000420   f000                                                                                                               
000422   0ef1     MOVLW     0xf1                                                                                            
000424   cfdb     MOVFF     0xfdb,0x1                                                                                       
000426   f001                                                                                                               
000428   0ef2     MOVLW     0xf2                                                                                            
00042a   cfdb     MOVFF     0xfdb,0x2                                                                                       
00042c   f002                                                                                                               
00042e   0ef3     MOVLW     0xf3                                                                                            
000430   cfdb     MOVFF     0xfdb,0x3                                                                                       
000432   f003                                                                                                               
000434   0e08     MOVLW     0x8                                                                                             
000436   90d8     BCF       0xd8,0x0,0x0                                                                                    
000438   3203     RRCF      0x3,0x1,0x0                                                                                     
00043a   3202     RRCF      0x2,0x1,0x0                                                                                     
00043c   3201     RRCF      0x1,0x1,0x0                                                                                     
00043e   3200     RRCF      0x0,0x1,0x0                                                                                     
000440   06e8     DECF      0xe8,0x1,0x0                                                                                    
000442   e1f9     BNZ       0x436                                                                                           
000444   5000     MOVF      0x0,0x0,0x0                                                                                     
000446   6e63     MOVWF     0x63,0x0                                                                                        
000448   0ef0     MOVLW     0xf0                    RXB0EIDL =  (BYTE)cm.ident;                                             F:\MCP\projects\CAN\canToSerial\Source\CAN.c
00044a   50db     MOVF      0xdb,0x0,0x0                                                                                    
00044c   6e64     MOVWF     0x64,0x0                                                                                        
                                                                                                                            F:\MCP\projects\CAN\canToSerial\Source\CAN.c
                                                }                                                                              F:\MCP\projects\CAN\canToSerial\Source\CAN.c
00044e   d02f     BRA       0x4ae               else                                                                           F:\MCP\projects\CAN\canToSerial\Source\CAN.c
                                                {                                                                              F:\MCP\projects\CAN\canToSerial\Source\CAN.c
                                                    //Write standard ident.                                                       F:\MCP\projects\CAN\canToSerial\Source\CAN.c
                                                                                                                               F:\MCP\projects\CAN\canToSerial\Source\CAN.c
                                                    //xx xx xx xx xx 10 09 08   07 06 05 04 03 02 01 00                           F:\MCP\projects\CAN\canToSerial\Source\CAN.c
                                                                                                                            F:\MCP\projects\CAN\canToSerial\Source\CAN.c
                                                    //RXB0SIDH 10 09 08 07 06 05 04 03                                      F:\MCP\projects\CAN\canToSerial\Source\CAN.c
                                                    //RXB0SIDL 02 01 00 xx xx xx xx xx                                      F:\MCP\projects\CAN\canToSerial\Source\CAN.c
                                                                                                                            F:\MCP\projects\CAN\canToSerial\Source\CAN.c
000450   0ef0     MOVLW     0xf0                        RXB0SIDH=  (BYTE)(cm.ident>>3);                                         F:\MCP\projects\CAN\canToSerial\Source\CAN.c
000452   cfdb     MOVFF     0xfdb,0x0                                                                                       
000454   f000                                                                                                               
000456   0ef1     MOVLW     0xf1                                                                                            
000458   cfdb     MOVFF     0xfdb,0x1                                                                                       
00045a   f001                                                                                                               
00045c   0ef2     MOVLW     0xf2                                                                                            
00045e   cfdb     MOVFF     0xfdb,0x2                                                                                       
000460   f002                                                                                                               
000462   0ef3     MOVLW     0xf3                                                                                            
000464   cfdb     MOVFF     0xfdb,0x3                                                                                       
000466   f003                                                                                                               
000468   0e03     MOVLW     0x3                                                                                             
00046a   90d8     BCF       0xd8,0x0,0x0                                                                                    
00046c   3203     RRCF      0x3,0x1,0x0                                                                                     
00046e   3202     RRCF      0x2,0x1,0x0                                                                                     
000470   3201     RRCF      0x1,0x1,0x0                                                                                     
000472   3200     RRCF      0x0,0x1,0x0                                                                                     
000474   06e8     DECF      0xe8,0x1,0x0                                                                                    
000476   e1f9     BNZ       0x46a                                                                                           
000478   5000     MOVF      0x0,0x0,0x0                                                                                     
00047a   6e61     MOVWF     0x61,0x0                                                                                        
00047c   0ef0     MOVLW     0xf0                    RXB0SIDL= ((BYTE)(cm.ident<<5) & 0xE0);                                 F:\MCP\projects\CAN\canToSerial\Source\CAN.c
00047e   cfdb     MOVFF     0xfdb,0x0                                                                                       
000480   f000                                                                                                               
000482   0ef1     MOVLW     0xf1                                                                                            
000484   cfdb     MOVFF     0xfdb,0x1                                                                                       
000486   f001                                                                                                               
000488   0ef2     MOVLW     0xf2                                                                                            
00048a   cfdb     MOVFF     0xfdb,0x2                                                                                       
00048c   f002                                                                                                               
00048e   0ef3     MOVLW     0xf3                                                                                            
000490   cfdb     MOVFF     0xfdb,0x3                                                                                       
000492   f003                                                                                                               
000494   0e05     MOVLW     0x5                                                                                             
000496   0b1f     ANDLW     0x1f                                                                                            
000498   e007     BZ        0x4a8                                                                                           
00049a   90d8     BCF       0xd8,0x0,0x0                                                                                    
00049c   3600     RLCF      0x0,0x1,0x0                                                                                     
00049e   3601     RLCF      0x1,0x1,0x0                                                                                     
0004a0   3602     RLCF      0x2,0x1,0x0                                                                                     
0004a2   3603     RLCF      0x3,0x1,0x0                                                                                     
0004a4   06e8     DECF      0xe8,0x1,0x0                                                                                    
0004a6   e1f9     BNZ       0x49a                                                                                           
0004a8   0ee0     MOVLW     0xe0                                                                                            
0004aa   1400     ANDWF     0x0,0x0,0x0                                                                                     
0004ac   6e62     MOVWF     0x62,0x0                                                                                        
                                                                                                                            F:\MCP\projects\CAN\canToSerial\Source\CAN.c
                                                }                                                                              F:\MCP\projects\CAN\canToSerial\Source\CAN.c
                                                                                                                            F:\MCP\projects\CAN\canToSerial\Source\CAN.c
                                                // Data length                                                                 F:\MCP\projects\CAN\canToSerial\Source\CAN.c
0004ae   6a65     CLRF      0x65,0x0            RXB0DLC = 0;                                                                   F:\MCP\projects\CAN\canToSerial\Source\CAN.c
0004b0   0ef6     MOVLW     0xf6                if (cm.data_length>8) RXB0DLC=8; else RXB0DLC=cm.data_length;                  F:\MCP\projects\CAN\canToSerial\Source\CAN.c
0004b2   50db     MOVF      0xdb,0x0,0x0                                                                                    
0004b4   0808     SUBLW     0x8                                                                                             
0004b6   e203     BC        0x4be                                                                                           
0004b8   0e08     MOVLW     0x8                                                                                             
0004ba   6e65     MOVWF     0x65,0x0                                                                                        
0004bc   d003     BRA       0x4c4                                                                                           
0004be   0ef6     MOVLW     0xf6                                                                                            
0004c0   50db     MOVF      0xdb,0x0,0x0                                                                                    
0004c2   6e65     MOVWF     0x65,0x0                                                                                        
                                                                                                                               F:\MCP\projects\CAN\canToSerial\Source\CAN.c
                                                // Remote request                                                              F:\MCP\projects\CAN\canToSerial\Source\CAN.c
0004c4   0ef5     MOVLW     0xf5                if (cm.remote_request==TRUE)                                                   F:\MCP\projects\CAN\canToSerial\Source\CAN.c
0004c6   04db     DECF      0xdb,0x0,0x0                                                                                    
0004c8   e102     BNZ       0x4ce                                                                                           
                                                {                                                                              F:\MCP\projects\CAN\canToSerial\Source\CAN.c
                                                    _asm                                                                          F:\MCP\projects\CAN\canToSerial\Source\CAN.c
0004ca   8c65     BSF       0x65,0x6,0x0                bsf RXB0DLC, 6, 0                                                            F:\MCP\projects\CAN\canToSerial\Source\CAN.c
                                                    _endasm                                                                       F:\MCP\projects\CAN\canToSerial\Source\CAN.c
                                                }                                                                              F:\MCP\projects\CAN\canToSerial\Source\CAN.c
0004cc   d001     BRA       0x4d0               else                                                                           F:\MCP\projects\CAN\canToSerial\Source\CAN.c
                                                {                                                                              F:\MCP\projects\CAN\canToSerial\Source\CAN.c
                                                    _asm                                                                          F:\MCP\projects\CAN\canToSerial\Source\CAN.c
0004ce   9c65     BCF       0x65,0x6,0x0                bcf RXB0DLC, 6, 0                                                            F:\MCP\projects\CAN\canToSerial\Source\CAN.c
                                                    _endasm                                                                       F:\MCP\projects\CAN\canToSerial\Source\CAN.c
                                                }                                                                              F:\MCP\projects\CAN\canToSerial\Source\CAN.c
                                                                                                                            F:\MCP\projects\CAN\canToSerial\Source\CAN.c
                                                // Data one bye one, for speed                                                 F:\MCP\projects\CAN\canToSerial\Source\CAN.c
0004d0   0ef7     MOVLW     0xf7                RXB0D0=cm.data[0];  RXB0D1=cm.data[1];                                          F:\MCP\projects\CAN\canToSerial\Source\CAN.c
0004d2   50db     MOVF      0xdb,0x0,0x0                                                                                    
0004d4   6e66     MOVWF     0x66,0x0                                                                                        
0004d6   0ef8     MOVLW     0xf8                                                                                            
0004d8   50db     MOVF      0xdb,0x0,0x0                                                                                    
0004da   6e67     MOVWF     0x67,0x0                                                                                        
0004dc   0ef9     MOVLW     0xf9                RXB0D2=cm.data[2];  RXB0D3=cm.data[3];                                         F:\MCP\projects\CAN\canToSerial\Source\CAN.c
0004de   50db     MOVF      0xdb,0x0,0x0                                                                                    
0004e0   6e68     MOVWF     0x68,0x0                                                                                        
0004e2   0efa     MOVLW     0xfa                                                                                            
0004e4   50db     MOVF      0xdb,0x0,0x0                                                                                    
0004e6   6e69     MOVWF     0x69,0x0                                                                                        
0004e8   0efb     MOVLW     0xfb                RXB0D4=cm.data[4];  RXB0D5=cm.data[5];                                         F:\MCP\projects\CAN\canToSerial\Source\CAN.c
0004ea   50db     MOVF      0xdb,0x0,0x0                                                                                    
0004ec   6e6a     MOVWF     0x6a,0x0                                                                                        
0004ee   0efc     MOVLW     0xfc                                                                                            
0004f0   50db     MOVF      0xdb,0x0,0x0                                                                                    
0004f2   6e6b     MOVWF     0x6b,0x0                                                                                        
0004f4   0efd     MOVLW     0xfd                RXB0D6=cm.data[6];  RXB0D7=cm.data[7];                                         F:\MCP\projects\CAN\canToSerial\Source\CAN.c
0004f6   50db     MOVF      0xdb,0x0,0x0                                                                                    
0004f8   6e6c     MOVWF     0x6c,0x0                                                                                        
0004fa   0efe     MOVLW     0xfe                                                                                            
0004fc   50db     MOVF      0xdb,0x0,0x0                                                                                    
0004fe   6e6d     MOVWF     0x6d,0x0                                                                                        
                                                                                                                            F:\MCP\projects\CAN\canToSerial\Source\CAN.c
                                                // set extended or not                                                         F:\MCP\projects\CAN\canToSerial\Source\CAN.c
000500   0ef4     MOVLW     0xf4                RXB0SIDLbits.EXID=(cm.extended==TRUE?1:0);                                     F:\MCP\projects\CAN\canToSerial\Source\CAN.c
000502   04db     DECF      0xdb,0x0,0x0                                                                                    
000504   e102     BNZ       0x50a                                                                                           
000506   0e01     MOVLW     0x1                                                                                             
000508   d001     BRA       0x50c                                                                                           
00050a   0e00     MOVLW     0x0                                                                                             
00050c   b0e8     BTFSC     0xe8,0x0,0x0                                                                                    
00050e   8662     BSF       0x62,0x3,0x0                                                                                    
000510   a0e8     BTFSS     0xe8,0x0,0x0                                                                                    
000512   9662     BCF       0x62,0x3,0x0                                                                                    
                                                                                                                            F:\MCP\projects\CAN\canToSerial\Source\CAN.c
                                                // Priority                                                                    F:\MCP\projects\CAN\canToSerial\Source\CAN.c
000514   0eef     MOVLW     0xef                RXB0CON = (RXB0CON & 0b11111100) | prio;                                       F:\MCP\projects\CAN\canToSerial\Source\CAN.c
000516   cfdb     MOVFF     0xfdb,0xfe6                                                                                     
000518   ffe6                                                                                                               
00051a   0efc     MOVLW     0xfc                                                                                            
00051c   1460     ANDWF     0x60,0x0,0x0                                                                                    
00051e   52e5     MOVF      0xe5,0x1,0x0                                                                                    
000520   10e7     IORWF     0xe7,0x0,0x0                                                                                    
000522   6e60     MOVWF     0x60,0x0                                                                                        
                                                                                                                            F:\MCP\projects\CAN\canToSerial\Source\CAN.c
                                                // mark as redy to transmit                                                    F:\MCP\projects\CAN\canToSerial\Source\CAN.c
                                                _asm                                                                           F:\MCP\projects\CAN\canToSerial\Source\CAN.c
000524   8660     BSF       0x60,0x3,0x0            bsf RXB0CON, 3, 0                                                             F:\MCP\projects\CAN\canToSerial\Source\CAN.c
                                                _endasm                                                                        F:\MCP\projects\CAN\canToSerial\Source\CAN.c
                                                                                                                            F:\MCP\projects\CAN\canToSerial\Source\CAN.c
000526   0e01     MOVLW     0x1                 return TRUE;                                                                   F:\MCP\projects\CAN\canToSerial\Source\CAN.c
000528   d000     BRA       0x52a                                                                                           
                                                                                                                            F:\MCP\projects\CAN\canToSerial\Source\CAN.c
00052a   52e5     MOVF      0xe5,0x1,0x0   }                                                                                F:\MCP\projects\CAN\canToSerial\Source\CAN.c
00052c   cfe7     MOVFF     0xfe7,0xfd9                                                                                     
00052e   ffd9                                                                                                               
000530   0012     RETURN    0x0                                                                                             
                                                                                                                            F:\MCP\projects\CAN\canToSerial\Source\CAN.c
                                                                                                                            F:\MCP\projects\CAN\canToSerial\Source\CAN.c
                                                                                                                            F:\MCP\projects\CAN\canToSerial\Source\CAN.c
                                           #endif //USE_CAN                                                                 F:\MCP\projects\CAN\canToSerial\Source\CAN.c
                                           /*********************************************************************           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:        $HeadURL$                                                    F:\MCP\projects\CAN\canToSerial\Source\Main.c
                                            * Last changed: $LastChangedDate$                                               F:\MCP\projects\CAN\canToSerial\Source\Main.c
                                            * By:               $LastChangedBy$                                                        F:\MCP\projects\CAN\canToSerial\Source\Main.c
                                            * Revision:     $Revision$                                                         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
                                           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
000532   d874     RCALL     0x61c           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
000534   ec22     CALL      0x44,0x0            canInit();                                                                     F:\MCP\projects\CAN\canToSerial\Source\Main.c
000536   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
000538   ecb2     CALL      0x964,0x0           uartInit();                                                                    F:\MCP\projects\CAN\canToSerial\Source\Main.c
00053a   f004                                                                                                               
                                            #endif                                                                          F:\MCP\projects\CAN\canToSerial\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canToSerial\Source\Main.c
00053c   ec88     CALL      0xb10,0x0       tickInit();                                                                     F:\MCP\projects\CAN\canToSerial\Source\Main.c
00053e   f005                                                                                                               
                                                                                                                            F:\MCP\projects\CAN\canToSerial\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canToSerial\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canToSerial\Source\Main.c
000540   d7ff     BRA       0x540           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
000542   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
000544   cfd8     MOVFF     0xfd8,0xfe4    void HighISR(void)                                                               F:\MCP\projects\CAN\canToSerial\Source\Main.c
000546   ffe4                                                                                                               
000548   cfe0     MOVFF     0xfe0,0xfe4                                                                                     
00054a   ffe4                                                                                                               
00054c   6ee4     MOVWF     0xe4,0x0                                                                                        
00054e   cfda     MOVFF     0xfda,0xfe4                                                                                     
000550   ffe4                                                                                                               
000552   cfe2     MOVFF     0xfe2,0xfda                                                                                     
000554   ffda                                                                                                               
000556   cfe9     MOVFF     0xfe9,0xfe4                                                                                     
000558   ffe4                                                                                                               
00055a   cfea     MOVFF     0xfea,0xfe4                                                                                     
00055c   ffe4                                                                                                               
00055e   cff6     MOVFF     0xff6,0xfe4                                                                                     
000560   ffe4                                                                                                               
000562   cff7     MOVFF     0xff7,0xfe4                                                                                     
000564   ffe4                                                                                                               
000566   cff5     MOVFF     0xff5,0xfe4                                                                                     
000568   ffe4                                                                                                               
00056a   cff3     MOVFF     0xff3,0xfe4                                                                                     
00056c   ffe4                                                                                                               
00056e   cff4     MOVFF     0xff4,0xfe4                                                                                     
000570   ffe4                                                                                                               
000572   cffa     MOVFF     0xffa,0xfe4                                                                                     
000574   ffe4                                                                                                               
000576   ee00     LFSR      0x0,0x14                                                                                        
000578   f014                                                                                                               
00057a   0e0b     MOVLW     0xb                                                                                             
00057c   04e8     DECF      0xe8,0x0,0x0                                                                                    
00057e   e303     BNC       0x586                                                                                           
000580   cfee     MOVFF     0xfee,0xfe4                                                                                     
000582   ffe4                                                                                                               
000584   d7fb     BRA       0x57c                                                                                           
000586   ee00     LFSR      0x0,0x0                                                                                         
000588   f000                                                                                                               
00058a   0e14     MOVLW     0x14                                                                                            
00058c   04e8     DECF      0xe8,0x0,0x0                                                                                    
00058e   e303     BNC       0x596                                                                                           
000590   cfee     MOVFF     0xfee,0xfe4                                                                                     
000592   ffe4                                                                                                               
000594   d7fb     BRA       0x58c                                                                                           
000596   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
000598   ec1e     CALL      0xa3c,0x0           uartISR();                                                                     F:\MCP\projects\CAN\canToSerial\Source\Main.c
00059a   f005                                                                                                               
                                            #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
00059c   ec4d     CALL      0x9a,0x0            canISR();                                                                      F:\MCP\projects\CAN\canToSerial\Source\Main.c
00059e   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
0005a0   ec9c     CALL      0xb38,0x0       tickUpdate();                                                                   F:\MCP\projects\CAN\canToSerial\Source\Main.c
0005a2   f005                                                                                                               
0005a4   52e5     MOVF      0xe5,0x1,0x0   }                                                                                F:\MCP\projects\CAN\canToSerial\Source\Main.c
0005a6   ee00     LFSR      0x0,0x13                                                                                        
0005a8   f013                                                                                                               
0005aa   0e14     MOVLW     0x14                                                                                            
0005ac   04e8     DECF      0xe8,0x0,0x0                                                                                    
0005ae   e303     BNC       0x5b6                                                                                           
0005b0   cfe5     MOVFF     0xfe5,0xfed                                                                                     
0005b2   ffed                                                                                                               
0005b4   d7fb     BRA       0x5ac                                                                                           
0005b6   ee00     LFSR      0x0,0x1e                                                                                        
0005b8   f01e                                                                                                               
0005ba   0e0b     MOVLW     0xb                                                                                             
0005bc   04e8     DECF      0xe8,0x0,0x0                                                                                    
0005be   e303     BNC       0x5c6                                                                                           
0005c0   cfe5     MOVFF     0xfe5,0xfed                                                                                     
0005c2   ffed                                                                                                               
0005c4   d7fb     BRA       0x5bc                                                                                           
0005c6   cfe5     MOVFF     0xfe5,0xffa                                                                                     
0005c8   fffa                                                                                                               
0005ca   cfe5     MOVFF     0xfe5,0xff4                                                                                     
0005cc   fff4                                                                                                               
0005ce   cfe5     MOVFF     0xfe5,0xff3                                                                                     
0005d0   fff3                                                                                                               
0005d2   cfe5     MOVFF     0xfe5,0xff5                                                                                     
0005d4   fff5                                                                                                               
0005d6   cfe5     MOVFF     0xfe5,0xff7                                                                                     
0005d8   fff7                                                                                                               
0005da   cfe5     MOVFF     0xfe5,0xff6                                                                                     
0005dc   fff6                                                                                                               
0005de   cfe5     MOVFF     0xfe5,0xfea                                                                                     
0005e0   ffea                                                                                                               
0005e2   cfe5     MOVFF     0xfe5,0xfe9                                                                                     
0005e4   ffe9                                                                                                               
0005e6   cfe5     MOVFF     0xfe5,0xfda                                                                                     
0005e8   ffda                                                                                                               
0005ea   50e5     MOVF      0xe5,0x0,0x0                                                                                    
0005ec   cfe5     MOVFF     0xfe5,0xfe0                                                                                     
0005ee   ffe0                                                                                                               
0005f0   cfe5     MOVFF     0xfe5,0xfd8                                                                                     
0005f2   ffd8                                                                                                               
0005f4   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   efa2     GOTO      0x544              _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
0005f6   cfd8     MOVFF     0xfd8,0xfe4    void LowISR(void)                                                                F:\MCP\projects\CAN\canToSerial\Source\Main.c
0005f8   ffe4                                                                                                               
0005fa   cfe0     MOVFF     0xfe0,0xfe4                                                                                     
0005fc   ffe4                                                                                                               
0005fe   6ee4     MOVWF     0xe4,0x0                                                                                        
000600   cfda     MOVFF     0xfda,0xfe4                                                                                     
000602   ffe4                                                                                                               
000604   cfe2     MOVFF     0xfe2,0xfda                                                                                     
000606   ffda                                                                                                               
000608   52e6     MOVF      0xe6,0x1,0x0                                                                                    
                                           {                                                                                F:\MCP\projects\CAN\canToSerial\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canToSerial\Source\Main.c
00060a   52e5     MOVF      0xe5,0x1,0x0   }                                                                                F:\MCP\projects\CAN\canToSerial\Source\Main.c
00060c   cfe5     MOVFF     0xfe5,0xfda                                                                                     
00060e   ffda                                                                                                               
000610   50e5     MOVF      0xe5,0x0,0x0                                                                                    
000612   cfe5     MOVFF     0xfe5,0xfe0                                                                                     
000614   ffe0                                                                                                               
000616   cfe5     MOVFF     0xfe5,0xfd8                                                                                     
000618   ffd8                                                                                                               
00061a   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   effb     GOTO      0x5f6              _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
00061c   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
00061e   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
000620   8ef2     BSF       0xf2,0x7,0x0       INTCONbits.GIEH = 1;                                                         F:\MCP\projects\CAN\canToSerial\Source\Main.c
000622   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
000624   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
000626   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
000628   cfd9     MOVFF     0xfd9,0xfe6    void canParse(CAN_MESSAGE cm)                                                    F:\MCP\projects\CAN\canToSerial\Source\Main.c
00062a   ffe6                                                                                                               
00062c   cfe1     MOVFF     0xfe1,0xfd9                                                                                     
00062e   ffd9                                                                                                               
000630   0e02     MOVLW     0x2                                                                                             
000632   26e1     ADDWF     0xe1,0x1,0x0                                                                                    
                                           {                                                                                F:\MCP\projects\CAN\canToSerial\Source\Main.c
000634   6ade     CLRF      0xde,0x0        int i=0;                                                                        F:\MCP\projects\CAN\canToSerial\Source\Main.c
000636   6add     CLRF      0xdd,0x0                                                                                        
                                                                                                                            F:\MCP\projects\CAN\canToSerial\Source\Main.c
000638   0efd     MOVLW     0xfd            uartPutc(UART_START_BYTE);                                                      F:\MCP\projects\CAN\canToSerial\Source\Main.c
00063a   6ee6     MOVWF     0xe6,0x0                                                                                        
00063c   ecc1     CALL      0x982,0x0                                                                                       
00063e   f004                                                                                                               
000640   52e5     MOVF      0xe5,0x1,0x0                                                                                    
000642   0ef0     MOVLW     0xf0            uartPutc((BYTE)(cm.ident));                                                     F:\MCP\projects\CAN\canToSerial\Source\Main.c
000644   cfdb     MOVFF     0xfdb,0xfe6                                                                                     
000646   ffe6                                                                                                               
000648   ecc1     CALL      0x982,0x0                                                                                       
00064a   f004                                                                                                               
00064c   52e5     MOVF      0xe5,0x1,0x0                                                                                    
00064e   0ef0     MOVLW     0xf0            uartPutc((BYTE)(cm.ident>>8));                                                  F:\MCP\projects\CAN\canToSerial\Source\Main.c
000650   cfdb     MOVFF     0xfdb,0x0                                                                                       
000652   f000                                                                                                               
000654   0ef1     MOVLW     0xf1                                                                                            
000656   cfdb     MOVFF     0xfdb,0x1                                                                                       
000658   f001                                                                                                               
00065a   0ef2     MOVLW     0xf2                                                                                            
00065c   cfdb     MOVFF     0xfdb,0x2                                                                                       
00065e   f002                                                                                                               
000660   0ef3     MOVLW     0xf3                                                                                            
000662   cfdb     MOVFF     0xfdb,0x3                                                                                       
000664   f003                                                                                                               
000666   0e08     MOVLW     0x8                                                                                             
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   ecc1     CALL      0x982,0x0                                                                                       
00067c   f004                                                                                                               
00067e   52e5     MOVF      0xe5,0x1,0x0                                                                                    
000680   0ef0     MOVLW     0xf0            uartPutc((BYTE)(cm.ident>>16));                                                 F:\MCP\projects\CAN\canToSerial\Source\Main.c
000682   cfdb     MOVFF     0xfdb,0x0                                                                                       
000684   f000                                                                                                               
000686   0ef1     MOVLW     0xf1                                                                                            
000688   cfdb     MOVFF     0xfdb,0x1                                                                                       
00068a   f001                                                                                                               
00068c   0ef2     MOVLW     0xf2                                                                                            
00068e   cfdb     MOVFF     0xfdb,0x2                                                                                       
000690   f002                                                                                                               
000692   0ef3     MOVLW     0xf3                                                                                            
000694   cfdb     MOVFF     0xfdb,0x3                                                                                       
000696   f003                                                                                                               
000698   0e10     MOVLW     0x10                                                                                            
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   ecc1     CALL      0x982,0x0                                                                                       
0006ae   f004                                                                                                               
0006b0   52e5     MOVF      0xe5,0x1,0x0                                                                                    
0006b2   0ef0     MOVLW     0xf0            uartPutc((BYTE)(cm.ident>>24));                                                 F:\MCP\projects\CAN\canToSerial\Source\Main.c
0006b4   cfdb     MOVFF     0xfdb,0x0                                                                                       
0006b6   f000                                                                                                               
0006b8   0ef1     MOVLW     0xf1                                                                                            
0006ba   cfdb     MOVFF     0xfdb,0x1                                                                                       
0006bc   f001                                                                                                               
0006be   0ef2     MOVLW     0xf2                                                                                            
0006c0   cfdb     MOVFF     0xfdb,0x2                                                                                       
0006c2   f002                                                                                                               
0006c4   0ef3     MOVLW     0xf3                                                                                            
0006c6   cfdb     MOVFF     0xfdb,0x3                                                                                       
0006c8   f003                                                                                                               
0006ca   0e18     MOVLW     0x18                                                                                            
0006cc   90d8     BCF       0xd8,0x0,0x0                                                                                    
0006ce   3203     RRCF      0x3,0x1,0x0                                                                                     
0006d0   3202     RRCF      0x2,0x1,0x0                                                                                     
0006d2   3201     RRCF      0x1,0x1,0x0                                                                                     
0006d4   3200     RRCF      0x0,0x1,0x0                                                                                     
0006d6   06e8     DECF      0xe8,0x1,0x0                                                                                    
0006d8   e1f9     BNZ       0x6cc                                                                                           
0006da   5000     MOVF      0x0,0x0,0x0                                                                                     
0006dc   6ee6     MOVWF     0xe6,0x0                                                                                        
0006de   ecc1     CALL      0x982,0x0                                                                                       
0006e0   f004                                                                                                               
0006e2   52e5     MOVF      0xe5,0x1,0x0                                                                                    
0006e4   0ef4     MOVLW     0xf4            uartPutc(cm.extended);                                                          F:\MCP\projects\CAN\canToSerial\Source\Main.c
0006e6   cfdb     MOVFF     0xfdb,0xfe6                                                                                     
0006e8   ffe6                                                                                                               
0006ea   ecc1     CALL      0x982,0x0                                                                                       
0006ec   f004                                                                                                               
0006ee   52e5     MOVF      0xe5,0x1,0x0                                                                                    
0006f0   0ef5     MOVLW     0xf5            uartPutc(cm.remote_request);                                                    F:\MCP\projects\CAN\canToSerial\Source\Main.c
0006f2   cfdb     MOVFF     0xfdb,0xfe6                                                                                     
0006f4   ffe6                                                                                                               
0006f6   ecc1     CALL      0x982,0x0                                                                                       
0006f8   f004                                                                                                               
0006fa   52e5     MOVF      0xe5,0x1,0x0                                                                                    
0006fc   0ef6     MOVLW     0xf6            uartPutc(cm.data_length);                                                       F:\MCP\projects\CAN\canToSerial\Source\Main.c
0006fe   cfdb     MOVFF     0xfdb,0xfe6                                                                                     
000700   ffe6                                                                                                               
000702   ecc1     CALL      0x982,0x0                                                                                       
000704   f004                                                                                                               
000706   52e5     MOVF      0xe5,0x1,0x0                                                                                    
000708   6ade     CLRF      0xde,0x0        for(i=0;i<8;i++) uartPutc(cm.data[i]);                                          F:\MCP\projects\CAN\canToSerial\Source\Main.c
00070a   6add     CLRF      0xdd,0x0                                                                                        
00070c   cfde     MOVFF     0xfde,0x0                                                                                       
00070e   f000                                                                                                               
000710   cfdd     MOVFF     0xfdd,0x1                                                                                       
000712   f001                                                                                                               
000714   90d8     BCF       0xd8,0x0,0x0                                                                                    
000716   5001     MOVF      0x1,0x0,0x0                                                                                     
000718   e604     BN        0x722                                                                                           
00071a   0e08     MOVLW     0x8                                                                                             
00071c   5c00     SUBWF     0x0,0x0,0x0                                                                                     
00071e   0e00     MOVLW     0x0                                                                                             
000720   5801     SUBWFB    0x1,0x0,0x0                                                                                     
000722   e216     BC        0x750                                                                                           
000724   50d9     MOVF      0xd9,0x0,0x0                                                                                    
000726   0ff7     ADDLW     0xf7                                                                                            
000728   6e00     MOVWF     0x0,0x0                                                                                         
00072a   0eff     MOVLW     0xff                                                                                            
00072c   20da     ADDWFC    0xda,0x0,0x0                                                                                    
00072e   6e01     MOVWF     0x1,0x0                                                                                         
000730   50de     MOVF      0xde,0x0,0x0                                                                                    
000732   2400     ADDWF     0x0,0x0,0x0                                                                                     
000734   6ee9     MOVWF     0xe9,0x0                                                                                        
000736   50dd     MOVF      0xdd,0x0,0x0                                                                                    
000738   2001     ADDWFC    0x1,0x0,0x0                                                                                     
00073a   6eea     MOVWF     0xea,0x0                                                                                        
00073c   50ef     MOVF      0xef,0x0,0x0                                                                                    
00073e   6ee6     MOVWF     0xe6,0x0                                                                                        
000740   ecc1     CALL      0x982,0x0                                                                                       
000742   f004                                                                                                               
000744   52e5     MOVF      0xe5,0x1,0x0                                                                                    
000746   2adf     INCF      0xdf,0x1,0x0                                                                                    
000748   0e01     MOVLW     0x1                                                                                             
00074a   e301     BNC       0x74e                                                                                           
00074c   2adb     INCF      0xdb,0x1,0x0                                                                                    
00074e   d7de     BRA       0x70c                                                                                           
000750   0efa     MOVLW     0xfa            uartPutc(UART_END_BYTE);                                                        F:\MCP\projects\CAN\canToSerial\Source\Main.c
000752   6ee6     MOVWF     0xe6,0x0                                                                                        
000754   ecc1     CALL      0x982,0x0                                                                                       
000756   f004                                                                                                               
000758   52e5     MOVF      0xe5,0x1,0x0                                                                                    
                                                                                                                            F:\MCP\projects\CAN\canToSerial\Source\Main.c
00075a   0e02     MOVLW     0x2            }                                                                                F:\MCP\projects\CAN\canToSerial\Source\Main.c
00075c   5ce1     SUBWF     0xe1,0x0,0x0                                                                                    
00075e   e202     BC        0x764                                                                                           
000760   6ae1     CLRF      0xe1,0x0                                                                                        
000762   52e5     MOVF      0xe5,0x1,0x0                                                                                    
000764   6ee1     MOVWF     0xe1,0x0                                                                                        
000766   52e5     MOVF      0xe5,0x1,0x0                                                                                    
000768   cfe7     MOVFF     0xfe7,0xfd9                                                                                     
00076a   ffd9                                                                                                               
00076c   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
00076e   cfd9     MOVFF     0xfd9,0xfe6    void uartParse(BYTE c)                                                           F:\MCP\projects\CAN\canToSerial\Source\Main.c
000770   ffe6                                                                                                               
000772   cfe1     MOVFF     0xfe1,0xfd9                                                                                     
000774   ffd9                                                                                                               
000776   0e12     MOVLW     0x12                                                                                            
000778   26e1     ADDWF     0xe1,0x1,0x0                                                                                    
                                           {                                                                                F:\MCP\projects\CAN\canToSerial\Source\Main.c
                                            BYTE i;                                                                         F:\MCP\projects\CAN\canToSerial\Source\Main.c
00077a   0e01     MOVLW     0x1             unsigned int wait = 0;                                                          F:\MCP\projects\CAN\canToSerial\Source\Main.c
00077c   6adb     CLRF      0xdb,0x0                                                                                        
00077e   0e02     MOVLW     0x2                                                                                             
000780   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
000782   0100     MOVLB     0x0             if (waitingMessage==TRUE && (tickGet()-timeout)>TICK_SECOND/20)                 F:\MCP\projects\CAN\canToSerial\Source\Main.c
000784   056e     DECF      0x6e,0x0,0x1                                                                                    
000786   e11a     BNZ       0x7bc                                                                                           
000788   ec92     CALL      0xb24,0x0                                                                                       
00078a   f005                                                                                                               
00078c   0100     MOVLB     0x0                                                                                             
00078e   516f     MOVF      0x6f,0x0,0x1                                                                                    
000790   5c18     SUBWF     0x18,0x0,0x0                                                                                    
000792   6e00     MOVWF     0x0,0x0                                                                                         
000794   5170     MOVF      0x70,0x0,0x1                                                                                    
000796   5819     SUBWFB    0x19,0x0,0x0                                                                                    
000798   6e01     MOVWF     0x1,0x0                                                                                         
00079a   5171     MOVF      0x71,0x0,0x1                                                                                    
00079c   581a     SUBWFB    0x1a,0x0,0x0                                                                                    
00079e   6e02     MOVWF     0x2,0x0                                                                                         
0007a0   5172     MOVF      0x72,0x0,0x1                                                                                    
0007a2   581b     SUBWFB    0x1b,0x0,0x0                                                                                    
0007a4   6e03     MOVWF     0x3,0x0                                                                                         
0007a6   80d8     BSF       0xd8,0x0,0x0                                                                                    
0007a8   0e05     MOVLW     0x5                                                                                             
0007aa   5400     SUBFWB    0x0,0x0,0x0                                                                                     
0007ac   0e00     MOVLW     0x0                                                                                             
0007ae   5401     SUBFWB    0x1,0x0,0x0                                                                                     
0007b0   0e00     MOVLW     0x0                                                                                             
0007b2   5402     SUBFWB    0x2,0x0,0x0                                                                                     
0007b4   0e00     MOVLW     0x0                                                                                             
0007b6   5403     SUBFWB    0x3,0x0,0x0                                                                                     
0007b8   e201     BC        0x7bc                                                                                           
                                            {                                                                               F:\MCP\projects\CAN\canToSerial\Source\Main.c
0007ba   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
0007bc   056e     DECF      0x6e,0x0,0x1    if (waitingMessage==TRUE)                                                       F:\MCP\projects\CAN\canToSerial\Source\Main.c
0007be   e001     BZ        0x7c2                                                                                           
0007c0   d0a5     BRA       0x90c                                                                                           
                                            {                                                                               F:\MCP\projects\CAN\canToSerial\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canToSerial\Source\Main.c
0007c2   ec92     CALL      0xb24,0x0           timeout=tickGet();                                                             F:\MCP\projects\CAN\canToSerial\Source\Main.c
0007c4   f005                                                                                                               
0007c6   c018     MOVFF     0x18,0x6f                                                                                       
0007c8   f06f                                                                                                               
0007ca   c019     MOVFF     0x19,0x70                                                                                       
0007cc   f070                                                                                                               
0007ce   c01a     MOVFF     0x1a,0x71                                                                                       
0007d0   f071                                                                                                               
0007d2   c01b     MOVFF     0x1b,0x72                                                                                       
0007d4   f072                                                                                                               
                                                                                                                            F:\MCP\projects\CAN\canToSerial\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canToSerial\Source\Main.c
                                                // UART END                                                                    F:\MCP\projects\CAN\canToSerial\Source\Main.c
0007d6   0e0f     MOVLW     0xf                 if(count>=15)                                                                  F:\MCP\projects\CAN\canToSerial\Source\Main.c
0007d8   0100     MOVLB     0x0                                                                                             
0007da   5d73     SUBWF     0x73,0x0,0x1                                                                                    
0007dc   e33b     BNC       0x854                                                                                           
                                                {                                                                              F:\MCP\projects\CAN\canToSerial\Source\Main.c
0007de   0efe     MOVLW     0xfe                    if (c==UART_END_BYTE)                                                         F:\MCP\projects\CAN\canToSerial\Source\Main.c
0007e0   50db     MOVF      0xdb,0x0,0x0                                                                                    
0007e2   6e00     MOVWF     0x0,0x0                                                                                         
0007e4   6a01     CLRF      0x1,0x0                                                                                         
0007e6   0efa     MOVLW     0xfa                                                                                            
0007e8   1800     XORWF     0x0,0x0,0x0                                                                                     
0007ea   e101     BNZ       0x7ee                                                                                           
0007ec   5001     MOVF      0x1,0x0,0x0                                                                                     
0007ee   e12f     BNZ       0x84e                                                                                           
                                                    {                                                                             F:\MCP\projects\CAN\canToSerial\Source\Main.c
0007f0   7282     BTG       0x82,0x1,0x0                LED0_IO=~LED0_IO;                                                            F:\MCP\projects\CAN\canToSerial\Source\Main.c
                                                        //canParse(cm);                                                              F:\MCP\projects\CAN\canToSerial\Source\Main.c
0007f2   0e03     MOVLW     0x3                         while(!canSendMessage(cm,PRIO_HIGEST));                                      F:\MCP\projects\CAN\canToSerial\Source\Main.c
0007f4   6ee6     MOVWF     0xe6,0x0                                                                                        
0007f6   50d9     MOVF      0xd9,0x0,0x0                                                                                    
0007f8   0f03     ADDLW     0x3                                                                                             
0007fa   6ee9     MOVWF     0xe9,0x0                                                                                        
0007fc   cfda     MOVFF     0xfda,0xfea                                                                                     
0007fe   ffea                                                                                                               
000800   cfee     MOVFF     0xfee,0xfe6                                                                                     
000802   ffe6                                                                                                               
000804   cfee     MOVFF     0xfee,0xfe6                                                                                     
000806   ffe6                                                                                                               
000808   cfee     MOVFF     0xfee,0xfe6                                                                                     
00080a   ffe6                                                                                                               
00080c   cfee     MOVFF     0xfee,0xfe6                                                                                     
00080e   ffe6                                                                                                               
000810   cfee     MOVFF     0xfee,0xfe6                                                                                     
000812   ffe6                                                                                                               
000814   cfee     MOVFF     0xfee,0xfe6                                                                                     
000816   ffe6                                                                                                               
000818   cfee     MOVFF     0xfee,0xfe6                                                                                     
00081a   ffe6                                                                                                               
00081c   cfee     MOVFF     0xfee,0xfe6                                                                                     
00081e   ffe6                                                                                                               
000820   cfee     MOVFF     0xfee,0xfe6                                                                                     
000822   ffe6                                                                                                               
000824   cfee     MOVFF     0xfee,0xfe6                                                                                     
000826   ffe6                                                                                                               
000828   cfee     MOVFF     0xfee,0xfe6                                                                                     
00082a   ffe6                                                                                                               
00082c   cfee     MOVFF     0xfee,0xfe6                                                                                     
00082e   ffe6                                                                                                               
000830   cfee     MOVFF     0xfee,0xfe6                                                                                     
000832   ffe6                                                                                                               
000834   cfee     MOVFF     0xfee,0xfe6                                                                                     
000836   ffe6                                                                                                               
000838   cfee     MOVFF     0xfee,0xfe6                                                                                     
00083a   ffe6                                                                                                               
00083c   ec95     CALL      0x32a,0x0                                                                                       
00083e   f001                                                                                                               
000840   6e00     MOVWF     0x0,0x0                                                                                         
000842   0e10     MOVLW     0x10                                                                                            
000844   5ee1     SUBWF     0xe1,0x1,0x0                                                                                    
000846   5000     MOVF      0x0,0x0,0x0                                                                                     
000848   0900     IORLW     0x0                                                                                             
00084a   e101     BNZ       0x84e                                                                                           
00084c   d7d2     BRA       0x7f2                                                                                           
                                                    }                                                                             F:\MCP\projects\CAN\canToSerial\Source\Main.c
00084e   0100     MOVLB     0x0                     waitingMessage=FALSE;                                                         F:\MCP\projects\CAN\canToSerial\Source\Main.c
000850   6b6e     CLRF      0x6e,0x1                                                                                        
000852   d07e     BRA       0x950                   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
000854   0e07     MOVLW     0x7                 if(count>=7)                                                                   F:\MCP\projects\CAN\canToSerial\Source\Main.c
000856   5d73     SUBWF     0x73,0x0,0x1                                                                                    
000858   e313     BNC       0x880                                                                                           
                                                {                                                                              F:\MCP\projects\CAN\canToSerial\Source\Main.c
00085a   50d9     MOVF      0xd9,0x0,0x0            cm.data[count-7]=c;                                                           F:\MCP\projects\CAN\canToSerial\Source\Main.c
00085c   0f0a     ADDLW     0xa                                                                                             
00085e   6e00     MOVWF     0x0,0x0                                                                                         
000860   cfda     MOVFF     0xfda,0x1                                                                                       
000862   f001                                                                                                               
000864   0e07     MOVLW     0x7                                                                                             
000866   5d73     SUBWF     0x73,0x0,0x1                                                                                    
000868   010f     MOVLB     0xf                                                                                             
00086a   2400     ADDWF     0x0,0x0,0x0                                                                                     
00086c   6ee9     MOVWF     0xe9,0x0                                                                                        
00086e   0e00     MOVLW     0x0                                                                                             
000870   2001     ADDWFC    0x1,0x0,0x0                                                                                     
000872   6eea     MOVWF     0xea,0x0                                                                                        
000874   0efe     MOVLW     0xfe                                                                                            
000876   cfdb     MOVFF     0xfdb,0xfef                                                                                     
000878   ffef                                                                                                               
00087a   0100     MOVLB     0x0                     count++;                                                                      F:\MCP\projects\CAN\canToSerial\Source\Main.c
00087c   2b73     INCF      0x73,0x1,0x1                                                                                    
00087e   d068     BRA       0x950                   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
000880   0e06     MOVLW     0x6                 if(count>=6)                                                                   F:\MCP\projects\CAN\canToSerial\Source\Main.c
000882   5d73     SUBWF     0x73,0x0,0x1                                                                                    
000884   e308     BNC       0x896                                                                                           
                                                {                                                                              F:\MCP\projects\CAN\canToSerial\Source\Main.c
000886   0efe     MOVLW     0xfe                    cm.data_length=c;                                                             F:\MCP\projects\CAN\canToSerial\Source\Main.c
000888   50db     MOVF      0xdb,0x0,0x0                                                                                    
00088a   6ee7     MOVWF     0xe7,0x0                                                                                        
00088c   0e09     MOVLW     0x9                                                                                             
00088e   cfe7     MOVFF     0xfe7,0xfdb                                                                                     
000890   ffdb                                                                                                               
000892   2b73     INCF      0x73,0x1,0x1            count++;                                                                      F:\MCP\projects\CAN\canToSerial\Source\Main.c
000894   d05d     BRA       0x950                   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
                                                // remote request                                                              F:\MCP\projects\CAN\canToSerial\Source\Main.c
000896   0e05     MOVLW     0x5                 if(count>=5)                                                                   F:\MCP\projects\CAN\canToSerial\Source\Main.c
000898   5d73     SUBWF     0x73,0x0,0x1                                                                                    
00089a   e308     BNC       0x8ac                                                                                           
                                                {                                                                              F:\MCP\projects\CAN\canToSerial\Source\Main.c
00089c   0efe     MOVLW     0xfe                    cm.remote_request=c;                                                          F:\MCP\projects\CAN\canToSerial\Source\Main.c
00089e   50db     MOVF      0xdb,0x0,0x0                                                                                    
0008a0   6ee7     MOVWF     0xe7,0x0                                                                                        
0008a2   0e08     MOVLW     0x8                                                                                             
0008a4   cfe7     MOVFF     0xfe7,0xfdb                                                                                     
0008a6   ffdb                                                                                                               
0008a8   2b73     INCF      0x73,0x1,0x1            count++;                                                                      F:\MCP\projects\CAN\canToSerial\Source\Main.c
0008aa   d052     BRA       0x950                   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
0008ac   0e04     MOVLW     0x4                 if(count>=4)                                                                   F:\MCP\projects\CAN\canToSerial\Source\Main.c
0008ae   5d73     SUBWF     0x73,0x0,0x1                                                                                    
0008b0   e308     BNC       0x8c2                                                                                           
                                                {                                                                              F:\MCP\projects\CAN\canToSerial\Source\Main.c
0008b2   0efe     MOVLW     0xfe                    cm.extended=c;                                                                F:\MCP\projects\CAN\canToSerial\Source\Main.c
0008b4   50db     MOVF      0xdb,0x0,0x0                                                                                    
0008b6   6ee7     MOVWF     0xe7,0x0                                                                                        
0008b8   0e07     MOVLW     0x7                                                                                             
0008ba   cfe7     MOVFF     0xfe7,0xfdb                                                                                     
0008bc   ffdb                                                                                                               
0008be   2b73     INCF      0x73,0x1,0x1            count++;                                                                      F:\MCP\projects\CAN\canToSerial\Source\Main.c
0008c0   d047     BRA       0x950                   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
0008c2   0e00     MOVLW     0x0                 if(count>=0)                                                                   F:\MCP\projects\CAN\canToSerial\Source\Main.c
0008c4   5d73     SUBWF     0x73,0x0,0x1                                                                                    
0008c6   e322     BNC       0x90c                                                                                           
                                                {                                                                              F:\MCP\projects\CAN\canToSerial\Source\Main.c
0008c8   0efe     MOVLW     0xfe                    cm.ident+=((DWORD)c<<(count*8));                                              F:\MCP\projects\CAN\canToSerial\Source\Main.c
0008ca   cfdb     MOVFF     0xfdb,0x0                                                                                       
0008cc   f000                                                                                                               
0008ce   6a01     CLRF      0x1,0x0                                                                                         
0008d0   6a02     CLRF      0x2,0x0                                                                                         
0008d2   6a03     CLRF      0x3,0x0                                                                                         
0008d4   0e08     MOVLW     0x8                                                                                             
0008d6   0373     MULWF     0x73,0x1                                                                                        
0008d8   50f3     MOVF      0xf3,0x0,0x0                                                                                    
0008da   0b1f     ANDLW     0x1f                                                                                            
0008dc   e007     BZ        0x8ec                                                                                           
0008de   90d8     BCF       0xd8,0x0,0x0                                                                                    
0008e0   3600     RLCF      0x0,0x1,0x0                                                                                     
0008e2   3601     RLCF      0x1,0x1,0x0                                                                                     
0008e4   3602     RLCF      0x2,0x1,0x0                                                                                     
0008e6   3603     RLCF      0x3,0x1,0x0                                                                                     
0008e8   06e8     DECF      0xe8,0x1,0x0                                                                                    
0008ea   e1f9     BNZ       0x8de                                                                                           
0008ec   50d9     MOVF      0xd9,0x0,0x0                                                                                    
0008ee   0f03     ADDLW     0x3                                                                                             
0008f0   6ee9     MOVWF     0xe9,0x0                                                                                        
0008f2   cfda     MOVFF     0xfda,0xfea                                                                                     
0008f4   ffea                                                                                                               
0008f6   5000     MOVF      0x0,0x0,0x0                                                                                     
0008f8   26ee     ADDWF     0xee,0x1,0x0                                                                                    
0008fa   5001     MOVF      0x1,0x0,0x0                                                                                     
0008fc   22ee     ADDWFC    0xee,0x1,0x0                                                                                    
0008fe   5002     MOVF      0x2,0x0,0x0                                                                                     
000900   22ee     ADDWFC    0xee,0x1,0x0                                                                                    
000902   5003     MOVF      0x3,0x0,0x0                                                                                     
000904   22ee     ADDWFC    0xee,0x1,0x0                                                                                    
000906   0100     MOVLB     0x0                     count++;                                                                      F:\MCP\projects\CAN\canToSerial\Source\Main.c
000908   2b73     INCF      0x73,0x1,0x1                                                                                    
00090a   d022     BRA       0x950                   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
00090c   0efe     MOVLW     0xfe            if (c==UART_START_BYTE && waitingMessage==FALSE)                                F:\MCP\projects\CAN\canToSerial\Source\Main.c
00090e   50db     MOVF      0xdb,0x0,0x0                                                                                    
000910   6e00     MOVWF     0x0,0x0                                                                                         
000912   6a01     CLRF      0x1,0x0                                                                                         
000914   0efd     MOVLW     0xfd                                                                                            
000916   1800     XORWF     0x0,0x0,0x0                                                                                     
000918   e101     BNZ       0x91c                                                                                           
00091a   5001     MOVF      0x1,0x0,0x0                                                                                     
00091c   e119     BNZ       0x950                                                                                           
00091e   516e     MOVF      0x6e,0x0,0x1                                                                                    
000920   e117     BNZ       0x950                                                                                           
                                            {                                                                               F:\MCP\projects\CAN\canToSerial\Source\Main.c
000922   0e01     MOVLW     0x1                     waitingMessage=TRUE;                                                          F:\MCP\projects\CAN\canToSerial\Source\Main.c
000924   6f6e     MOVWF     0x6e,0x1                                                                                        
000926   ec92     CALL      0xb24,0x0               timeout=tickGet();                                                            F:\MCP\projects\CAN\canToSerial\Source\Main.c
000928   f005                                                                                                               
00092a   c018     MOVFF     0x18,0x6f                                                                                       
00092c   f06f                                                                                                               
00092e   c019     MOVFF     0x19,0x70                                                                                       
000930   f070                                                                                                               
000932   c01a     MOVFF     0x1a,0x71                                                                                       
000934   f071                                                                                                               
000936   c01b     MOVFF     0x1b,0x72                                                                                       
000938   f072                                                                                                               
00093a   0100     MOVLB     0x0                     count=0;                                                                      F:\MCP\projects\CAN\canToSerial\Source\Main.c
00093c   6b73     CLRF      0x73,0x1                                                                                        
00093e   0e03     MOVLW     0x3                     cm.ident=0;                                                                   F:\MCP\projects\CAN\canToSerial\Source\Main.c
000940   6adb     CLRF      0xdb,0x0                                                                                        
000942   0e04     MOVLW     0x4                                                                                             
000944   6adb     CLRF      0xdb,0x0                                                                                        
000946   0e05     MOVLW     0x5                                                                                             
000948   6adb     CLRF      0xdb,0x0                                                                                        
00094a   0e06     MOVLW     0x6                                                                                             
00094c   6adb     CLRF      0xdb,0x0                                                                                        
00094e   d000     BRA       0x950                   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
000950   0e12     MOVLW     0x12           }                                                                                F:\MCP\projects\CAN\canToSerial\Source\Main.c
000952   5ce1     SUBWF     0xe1,0x0,0x0                                                                                    
000954   e202     BC        0x95a                                                                                           
000956   6ae1     CLRF      0xe1,0x0                                                                                        
000958   52e5     MOVF      0xe5,0x1,0x0                                                                                    
00095a   6ee1     MOVWF     0xe1,0x0                                                                                        
00095c   52e5     MOVF      0xe5,0x1,0x0                                                                                    
00095e   cfe7     MOVFF     0xfe7,0xfd9                                                                                     
000960   ffd9                                                                                                               
000962   0012     RETURN    0x0                                                                                             
                                           #endif                                                                           F:\MCP\projects\CAN\canToSerial\Source\Main.c
                                           /*********************************************************************           F:\MCP\projects\CAN\canToSerial\Source\Tick.c
                                            *                                                                               F:\MCP\projects\CAN\canToSerial\Source\Tick.c
                                            *                  Ticker service                                               F:\MCP\projects\CAN\canToSerial\Source\Tick.c
                                            *                                                                               F:\MCP\projects\CAN\canToSerial\Source\Tick.c
                                            *********************************************************************           F:\MCP\projects\CAN\canToSerial\Source\Tick.c
                                            * FileName:        $HeadURL$                                                    F:\MCP\projects\CAN\canToSerial\Source\Tick.c
                                            * Last changed: $LastChangedDate$                                               F:\MCP\projects\CAN\canToSerial\Source\Tick.c
                                            * By:               $LastChangedBy$                                                        F:\MCP\projects\CAN\canToSerial\Source\Tick.c
                                            * Revision:     $Revision$                                                         F:\MCP\projects\CAN\canToSerial\Source\Tick.c
                                            ********************************************************************/           F:\MCP\projects\CAN\canToSerial\Source\Tick.c
                                                                                                                            F:\MCP\projects\CAN\canToSerial\Source\Tick.c
                                           #define TICK_INCLUDE                                                             F:\MCP\projects\CAN\canToSerial\Source\Tick.c
                                                                                                                            F:\MCP\projects\CAN\canToSerial\Source\Tick.c
                                           #include <Tick.h>                                                                F:\MCP\projects\CAN\canToSerial\Source\Tick.c
                                           #include <Compiler.h>                                                            F:\MCP\projects\CAN\canToSerial\Source\Tick.c
                                                                                                                            F:\MCP\projects\CAN\canToSerial\Source\Tick.c
                                           #define TICK_TEMP_VALUE_1 ((INSTR_FREQ) / (TICKS_PER_SECOND * TICK_PRESCALE_VALUE)) F:\MCP\projects\CAN\canToSerial\Source\Tick.c
                                                                                                                            F:\MCP\projects\CAN\canToSerial\Source\Tick.c
                                           #if TICK_TEMP_VALUE_1 > 60000                                                    F:\MCP\projects\CAN\canToSerial\Source\Tick.c
                                           #error TICK_PER_SECOND value cannot be programmed with current CLOCK_FREQ        F:\MCP\projects\CAN\canToSerial\Source\Tick.c
                                           #error Either lower TICK_PER_SECOND or manually configure the Timer              F:\MCP\projects\CAN\canToSerial\Source\Tick.c
                                           #endif                                                                           F:\MCP\projects\CAN\canToSerial\Source\Tick.c
                                                                                                                            F:\MCP\projects\CAN\canToSerial\Source\Tick.c
                                           #define TICK_TEMP_VALUE         (65535 - TICK_TEMP_VALUE_1)                      F:\MCP\projects\CAN\canToSerial\Source\Tick.c
                                                                                                                            F:\MCP\projects\CAN\canToSerial\Source\Tick.c
                                           #define TICK_COUNTER_HIGH       ((TICK_TEMP_VALUE >> 8) & 0xff)                  F:\MCP\projects\CAN\canToSerial\Source\Tick.c
                                           #define TICK_COUNTER_LOW        (TICK_TEMP_VALUE & 0xff)                         F:\MCP\projects\CAN\canToSerial\Source\Tick.c
                                                                                                                            F:\MCP\projects\CAN\canToSerial\Source\Tick.c
                                           #if (TICK_PRESCALE_VALUE == 2)                                                   F:\MCP\projects\CAN\canToSerial\Source\Tick.c
                                               #define TIMER_PRESCALE  (0)                                                  F:\MCP\projects\CAN\canToSerial\Source\Tick.c
                                           #elif ( TICK_PRESCALE_VALUE == 4 )                                               F:\MCP\projects\CAN\canToSerial\Source\Tick.c
                                               #define TIMER_PRESCALE  (1)                                                  F:\MCP\projects\CAN\canToSerial\Source\Tick.c
                                           #elif ( TICK_PRESCALE_VALUE == 8 )                                               F:\MCP\projects\CAN\canToSerial\Source\Tick.c
                                               #define TIMER_PRESCALE  (2)                                                  F:\MCP\projects\CAN\canToSerial\Source\Tick.c
                                           #elif ( TICK_PRESCALE_VALUE == 16 )                                              F:\MCP\projects\CAN\canToSerial\Source\Tick.c
                                               #define TIMER_PRESCALE  (3)                                                  F:\MCP\projects\CAN\canToSerial\Source\Tick.c
                                           #elif ( TICK_PRESCALE_VALUE == 32 )                                              F:\MCP\projects\CAN\canToSerial\Source\Tick.c
                                               #define TIMER_PRESCALE  (4)                                                  F:\MCP\projects\CAN\canToSerial\Source\Tick.c
                                           #elif ( TICK_PRESCALE_VALUE == 64 )                                              F:\MCP\projects\CAN\canToSerial\Source\Tick.c
                                               #define TIMER_PRESCALE  (5)                                                  F:\MCP\projects\CAN\canToSerial\Source\Tick.c
                                           #elif ( TICK_PRESCALE_VALUE == 128 )                                             F:\MCP\projects\CAN\canToSerial\Source\Tick.c
                                               #define TIMER_PRESCALE  (6)                                                  F:\MCP\projects\CAN\canToSerial\Source\Tick.c
                                           #elif ( TICK_PRESCALE_VALUE == 256 )                                             F:\MCP\projects\CAN\canToSerial\Source\Tick.c
                                               #define TIMER_PRESCALE  (7)                                                  F:\MCP\projects\CAN\canToSerial\Source\Tick.c
                                           #else                                                                            F:\MCP\projects\CAN\canToSerial\Source\Tick.c
                                               #error Invalid TICK_PRESCALE_VALUE specified.                                F:\MCP\projects\CAN\canToSerial\Source\Tick.c
                                           #endif                                                                           F:\MCP\projects\CAN\canToSerial\Source\Tick.c
                                                                                                                            F:\MCP\projects\CAN\canToSerial\Source\Tick.c
                                                                                                                            F:\MCP\projects\CAN\canToSerial\Source\Tick.c
                                           TICK TickCount = 0;  // 10ms/unit                                                 F:\MCP\projects\CAN\canToSerial\Source\Tick.c
                                                                                                                            F:\MCP\projects\CAN\canToSerial\Source\Tick.c
                                                                                                                            F:\MCP\projects\CAN\canToSerial\Source\Tick.c
                                                                                                                            F:\MCP\projects\CAN\canToSerial\Source\Tick.c
                                           /*                                                                               F:\MCP\projects\CAN\canToSerial\Source\Tick.c
                                           *    Function: TickInit                                                             F:\MCP\projects\CAN\canToSerial\Source\Tick.c
                                           *                                                                                F:\MCP\projects\CAN\canToSerial\Source\Tick.c
                                           *    Input:  none                                                                    F:\MCP\projects\CAN\canToSerial\Source\Tick.c
                                           *    Output: Tick manager is initialized.                                           F:\MCP\projects\CAN\canToSerial\Source\Tick.c
                                           *    Pre-conditions: TickInit                                                       F:\MCP\projects\CAN\canToSerial\Source\Tick.c
                                           *    Affects: none                                                                  F:\MCP\projects\CAN\canToSerial\Source\Tick.c
                                           *    Depends: none                                                                  F:\MCP\projects\CAN\canToSerial\Source\Tick.c
                                           */                                                                               F:\MCP\projects\CAN\canToSerial\Source\Tick.c
                                           #define PERIOD (INSTR_FREQ/256/1000)*TICK_PERIOD_MS                              F:\MCP\projects\CAN\canToSerial\Source\Tick.c
                                           void tickInit(void)                                                              F:\MCP\projects\CAN\canToSerial\Source\Tick.c
                                           {                                                                                F:\MCP\projects\CAN\canToSerial\Source\Tick.c
                                               // Start the timer.                                                          F:\MCP\projects\CAN\canToSerial\Source\Tick.c
000b10   0e79     MOVLW     0x79               TMR0L = TICK_COUNTER_LOW;                                                    F:\MCP\projects\CAN\canToSerial\Source\Tick.c
000b12   6ed6     MOVWF     0xd6,0x0                                                                                        
000b14   0efe     MOVLW     0xfe               TMR0H = TICK_COUNTER_HIGH;                                                   F:\MCP\projects\CAN\canToSerial\Source\Tick.c
000b16   6ed7     MOVWF     0xd7,0x0                                                                                        
                                                                                                                            F:\MCP\projects\CAN\canToSerial\Source\Tick.c
                                               // 16-BIT, internal timer, PSA set to 1:256                                  F:\MCP\projects\CAN\canToSerial\Source\Tick.c
000b18   0e07     MOVLW     0x7                T0CON = 0b00000000 | TIMER_PRESCALE;                                         F:\MCP\projects\CAN\canToSerial\Source\Tick.c
000b1a   6ed5     MOVWF     0xd5,0x0                                                                                        
                                                                                                                            F:\MCP\projects\CAN\canToSerial\Source\Tick.c
                                               // Start the timer.                                                          F:\MCP\projects\CAN\canToSerial\Source\Tick.c
000b1c   8ed5     BSF       0xd5,0x7,0x0       T0CONbits.TMR0ON = 1;                                                        F:\MCP\projects\CAN\canToSerial\Source\Tick.c
                                                                                                                            F:\MCP\projects\CAN\canToSerial\Source\Tick.c
000b1e   84f2     BSF       0xf2,0x2,0x0       INTCONbits.TMR0IF = 1;                                                       F:\MCP\projects\CAN\canToSerial\Source\Tick.c
000b20   8af2     BSF       0xf2,0x5,0x0       INTCONbits.TMR0IE = 1;                                                       F:\MCP\projects\CAN\canToSerial\Source\Tick.c
000b22   0012     RETURN    0x0            }                                                                                F:\MCP\projects\CAN\canToSerial\Source\Tick.c
                                                                                                                            F:\MCP\projects\CAN\canToSerial\Source\Tick.c
                                           /*                                                                               F:\MCP\projects\CAN\canToSerial\Source\Tick.c
                                           *    Function: TickGet                                                              F:\MCP\projects\CAN\canToSerial\Source\Tick.c
                                           *                                                                                F:\MCP\projects\CAN\canToSerial\Source\Tick.c
                                           *    Input:  none                                                                    F:\MCP\projects\CAN\canToSerial\Source\Tick.c
                                           *    Output: Current tick value is given, 1 tick represents approximately 10ms      F:\MCP\projects\CAN\canToSerial\Source\Tick.c
                                           *    Pre-conditions: TickInit                                                       F:\MCP\projects\CAN\canToSerial\Source\Tick.c
                                           *    Affects: none                                                                  F:\MCP\projects\CAN\canToSerial\Source\Tick.c
                                           *    Depends: none                                                                  F:\MCP\projects\CAN\canToSerial\Source\Tick.c
                                           */                                                                               F:\MCP\projects\CAN\canToSerial\Source\Tick.c
                                           TICK tickGet(void)                                                               F:\MCP\projects\CAN\canToSerial\Source\Tick.c
                                           {                                                                                F:\MCP\projects\CAN\canToSerial\Source\Tick.c
000b24   c074     MOVFF     0x74,0x18          return TickCount;                                                            F:\MCP\projects\CAN\canToSerial\Source\Tick.c
000b26   f018                                                                                                               
000b28   c075     MOVFF     0x75,0x19                                                                                       
000b2a   f019                                                                                                               
000b2c   c076     MOVFF     0x76,0x1a                                                                                       
000b2e   f01a                                                                                                               
000b30   c077     MOVFF     0x77,0x1b                                                                                       
000b32   f01b                                                                                                               
000b34   d000     BRA       0xb36                                                                                           
000b36   0012     RETURN    0x0            }                                                                                F:\MCP\projects\CAN\canToSerial\Source\Tick.c
                                                                                                                            F:\MCP\projects\CAN\canToSerial\Source\Tick.c
                                                                                                                            F:\MCP\projects\CAN\canToSerial\Source\Tick.c
                                           /*                                                                               F:\MCP\projects\CAN\canToSerial\Source\Tick.c
                                           *    Function: tickUpdate                                                           F:\MCP\projects\CAN\canToSerial\Source\Tick.c
                                           *                                                                                F:\MCP\projects\CAN\canToSerial\Source\Tick.c
                                           *    Input:  none                                                                    F:\MCP\projects\CAN\canToSerial\Source\Tick.c
                                           *    Output: none                                                                   F:\MCP\projects\CAN\canToSerial\Source\Tick.c
                                           *    Pre-conditions: TickInit                                                       F:\MCP\projects\CAN\canToSerial\Source\Tick.c
                                           *    Affects: none                                                                  F:\MCP\projects\CAN\canToSerial\Source\Tick.c
                                           *    Depends: none                                                                  F:\MCP\projects\CAN\canToSerial\Source\Tick.c
                                           */                                                                               F:\MCP\projects\CAN\canToSerial\Source\Tick.c
                                           void tickUpdate(void)                                                            F:\MCP\projects\CAN\canToSerial\Source\Tick.c
                                           {                                                                                F:\MCP\projects\CAN\canToSerial\Source\Tick.c
000b38   a4f2     BTFSS     0xf2,0x2,0x0       if(INTCONbits.TMR0IF)                                                        F:\MCP\projects\CAN\canToSerial\Source\Tick.c
000b3a   d00b     BRA       0xb52                                                                                           
                                               {                                                                            F:\MCP\projects\CAN\canToSerial\Source\Tick.c
000b3c   0efe     MOVLW     0xfe                   TMR0H = TICK_COUNTER_HIGH;                                               F:\MCP\projects\CAN\canToSerial\Source\Tick.c
000b3e   6ed7     MOVWF     0xd7,0x0                                                                                        
000b40   0e79     MOVLW     0x79                   TMR0L = TICK_COUNTER_LOW;                                                F:\MCP\projects\CAN\canToSerial\Source\Tick.c
000b42   6ed6     MOVWF     0xd6,0x0                                                                                        
                                                                                                                            F:\MCP\projects\CAN\canToSerial\Source\Tick.c
000b44   0100     MOVLB     0x0                    TickCount++;                                                             F:\MCP\projects\CAN\canToSerial\Source\Tick.c
000b46   2b74     INCF      0x74,0x1,0x1                                                                                    
000b48   0e00     MOVLW     0x0                                                                                             
000b4a   2375     ADDWFC    0x75,0x1,0x1                                                                                    
000b4c   2376     ADDWFC    0x76,0x1,0x1                                                                                    
000b4e   2377     ADDWFC    0x77,0x1,0x1                                                                                    
                                                                                                                            F:\MCP\projects\CAN\canToSerial\Source\Tick.c
000b50   94f2     BCF       0xf2,0x2,0x0           INTCONbits.TMR0IF = 0;                                                   F:\MCP\projects\CAN\canToSerial\Source\Tick.c
                                               }                                                                            F:\MCP\projects\CAN\canToSerial\Source\Tick.c
000b52   0012     RETURN    0x0            }                                                                                F:\MCP\projects\CAN\canToSerial\Source\Tick.c