Subversion Repositories HomeAutomation

Rev

Rev 85 | 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 10:50:27 2006


Address  Value    Disassembly              Source                                                                           File
-------  -------  -----------------------  -------------------------------------------------------------------------------  -----
                                           /*********************************************************************           F:\MCP\projects\CAN\canBase\Source\Tick.c
                                            *                                                                               F:\MCP\projects\CAN\canBase\Source\Tick.c
                                            *                  Ticker module service                                        F:\MCP\projects\CAN\canBase\Source\Tick.c
                                            *                                                                               F:\MCP\projects\CAN\canBase\Source\Tick.c
                                            *********************************************************************           F:\MCP\projects\CAN\canBase\Source\Tick.c
                                            * FileName:        $HeadURL$                                                    F:\MCP\projects\CAN\canBase\Source\Tick.c
                                            * Last changed: $LastChangedDate$                                               F:\MCP\projects\CAN\canBase\Source\Tick.c
                                            * By:               $LastChangedBy$                                                        F:\MCP\projects\CAN\canBase\Source\Tick.c
                                            * Revision:     $Revision$                                                         F:\MCP\projects\CAN\canBase\Source\Tick.c
                                            ********************************************************************/           F:\MCP\projects\CAN\canBase\Source\Tick.c
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Tick.c
                                           #define TICK_INCLUDE                                                             F:\MCP\projects\CAN\canBase\Source\Tick.c
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Tick.c
                                           #include <Tick.h>                                                                F:\MCP\projects\CAN\canBase\Source\Tick.c
                                           #include <Compiler.h>                                                            F:\MCP\projects\CAN\canBase\Source\Tick.c
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Tick.c
                                           #define TICK_TEMP_VALUE_1 ((INSTR_FREQ) / (TICKS_PER_SECOND * TICK_PRESCALE_VALUE)) F:\MCP\projects\CAN\canBase\Source\Tick.c
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Tick.c
                                           #if TICK_TEMP_VALUE_1 > 60000                                                    F:\MCP\projects\CAN\canBase\Source\Tick.c
                                           #error TICK_PER_SECOND value cannot be programmed with current CLOCK_FREQ        F:\MCP\projects\CAN\canBase\Source\Tick.c
                                           #error Either lower TICK_PER_SECOND or manually configure the Timer              F:\MCP\projects\CAN\canBase\Source\Tick.c
                                           #endif                                                                           F:\MCP\projects\CAN\canBase\Source\Tick.c
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Tick.c
                                           #define TICK_TEMP_VALUE         (65535 - TICK_TEMP_VALUE_1)                      F:\MCP\projects\CAN\canBase\Source\Tick.c
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Tick.c
                                           #define TICK_COUNTER_HIGH       ((TICK_TEMP_VALUE >> 8) & 0xff)                  F:\MCP\projects\CAN\canBase\Source\Tick.c
                                           #define TICK_COUNTER_LOW        (TICK_TEMP_VALUE & 0xff)                         F:\MCP\projects\CAN\canBase\Source\Tick.c
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Tick.c
                                           #if (TICK_PRESCALE_VALUE == 2)                                                   F:\MCP\projects\CAN\canBase\Source\Tick.c
                                               #define TIMER_PRESCALE  (0)                                                  F:\MCP\projects\CAN\canBase\Source\Tick.c
                                           #elif ( TICK_PRESCALE_VALUE == 4 )                                               F:\MCP\projects\CAN\canBase\Source\Tick.c
                                               #define TIMER_PRESCALE  (1)                                                  F:\MCP\projects\CAN\canBase\Source\Tick.c
                                           #elif ( TICK_PRESCALE_VALUE == 8 )                                               F:\MCP\projects\CAN\canBase\Source\Tick.c
                                               #define TIMER_PRESCALE  (2)                                                  F:\MCP\projects\CAN\canBase\Source\Tick.c
                                           #elif ( TICK_PRESCALE_VALUE == 16 )                                              F:\MCP\projects\CAN\canBase\Source\Tick.c
                                               #define TIMER_PRESCALE  (3)                                                  F:\MCP\projects\CAN\canBase\Source\Tick.c
                                           #elif ( TICK_PRESCALE_VALUE == 32 )                                              F:\MCP\projects\CAN\canBase\Source\Tick.c
                                               #define TIMER_PRESCALE  (4)                                                  F:\MCP\projects\CAN\canBase\Source\Tick.c
                                           #elif ( TICK_PRESCALE_VALUE == 64 )                                              F:\MCP\projects\CAN\canBase\Source\Tick.c
                                               #define TIMER_PRESCALE  (5)                                                  F:\MCP\projects\CAN\canBase\Source\Tick.c
                                           #elif ( TICK_PRESCALE_VALUE == 128 )                                             F:\MCP\projects\CAN\canBase\Source\Tick.c
                                               #define TIMER_PRESCALE  (6)                                                  F:\MCP\projects\CAN\canBase\Source\Tick.c
                                           #elif ( TICK_PRESCALE_VALUE == 256 )                                             F:\MCP\projects\CAN\canBase\Source\Tick.c
                                               #define TIMER_PRESCALE  (7)                                                  F:\MCP\projects\CAN\canBase\Source\Tick.c
                                           #else                                                                            F:\MCP\projects\CAN\canBase\Source\Tick.c
                                               #error Invalid TICK_PRESCALE_VALUE specified.                                F:\MCP\projects\CAN\canBase\Source\Tick.c
                                           #endif                                                                           F:\MCP\projects\CAN\canBase\Source\Tick.c
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Tick.c
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Tick.c
                                           TICK TickCount = 0;  // 10ms/unit                                                 F:\MCP\projects\CAN\canBase\Source\Tick.c
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Tick.c
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Tick.c
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Tick.c
                                           /*                                                                               F:\MCP\projects\CAN\canBase\Source\Tick.c
                                           *    Function: TickInit                                                             F:\MCP\projects\CAN\canBase\Source\Tick.c
                                           *                                                                                F:\MCP\projects\CAN\canBase\Source\Tick.c
                                           *    Input:  none                                                                    F:\MCP\projects\CAN\canBase\Source\Tick.c
                                           *    Output: Tick manager is initialized.                                           F:\MCP\projects\CAN\canBase\Source\Tick.c
                                           *    Pre-conditions: TickInit                                                       F:\MCP\projects\CAN\canBase\Source\Tick.c
                                           *    Affects: none                                                                  F:\MCP\projects\CAN\canBase\Source\Tick.c
                                           *    Depends: none                                                                  F:\MCP\projects\CAN\canBase\Source\Tick.c
                                           */                                                                               F:\MCP\projects\CAN\canBase\Source\Tick.c
                                           #define PERIOD (INSTR_FREQ/256/1000)*TICK_PERIOD_MS                              F:\MCP\projects\CAN\canBase\Source\Tick.c
                                           void tickInit(void)                                                              F:\MCP\projects\CAN\canBase\Source\Tick.c
                                           {                                                                                F:\MCP\projects\CAN\canBase\Source\Tick.c
                                               // Start the timer.                                                          F:\MCP\projects\CAN\canBase\Source\Tick.c
00163c   0e79     MOVLW     0x79               TMR0L = TICK_COUNTER_LOW;                                                    F:\MCP\projects\CAN\canBase\Source\Tick.c
00163e   6ed6     MOVWF     0xd6,0x0                                                                                        
001640   0efe     MOVLW     0xfe               TMR0H = TICK_COUNTER_HIGH;                                                   F:\MCP\projects\CAN\canBase\Source\Tick.c
001642   6ed7     MOVWF     0xd7,0x0                                                                                        
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Tick.c
                                               // 16-BIT, internal timer, PSA set to 1:256                                  F:\MCP\projects\CAN\canBase\Source\Tick.c
001644   0e07     MOVLW     0x7                T0CON = 0b00000000 | TIMER_PRESCALE;                                         F:\MCP\projects\CAN\canBase\Source\Tick.c
001646   6ed5     MOVWF     0xd5,0x0                                                                                        
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Tick.c
                                               // Start the timer.                                                          F:\MCP\projects\CAN\canBase\Source\Tick.c
001648   8ed5     BSF       0xd5,0x7,0x0       T0CONbits.TMR0ON = 1;                                                        F:\MCP\projects\CAN\canBase\Source\Tick.c
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Tick.c
00164a   84f2     BSF       0xf2,0x2,0x0       INTCONbits.TMR0IF = 1;                                                       F:\MCP\projects\CAN\canBase\Source\Tick.c
00164c   8af2     BSF       0xf2,0x5,0x0       INTCONbits.TMR0IE = 1;                                                       F:\MCP\projects\CAN\canBase\Source\Tick.c
00164e   0012     RETURN    0x0            }                                                                                F:\MCP\projects\CAN\canBase\Source\Tick.c
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Tick.c
                                           /*                                                                               F:\MCP\projects\CAN\canBase\Source\Tick.c
                                           *    Function: TickGet                                                              F:\MCP\projects\CAN\canBase\Source\Tick.c
                                           *                                                                                F:\MCP\projects\CAN\canBase\Source\Tick.c
                                           *    Input:  none                                                                    F:\MCP\projects\CAN\canBase\Source\Tick.c
                                           *    Output: Current tick value is given, 1 tick represents approximately 10ms      F:\MCP\projects\CAN\canBase\Source\Tick.c
                                           *    Pre-conditions: TickInit                                                       F:\MCP\projects\CAN\canBase\Source\Tick.c
                                           *    Affects: none                                                                  F:\MCP\projects\CAN\canBase\Source\Tick.c
                                           *    Depends: none                                                                  F:\MCP\projects\CAN\canBase\Source\Tick.c
                                           */                                                                               F:\MCP\projects\CAN\canBase\Source\Tick.c
                                           TICK tickGet(void)                                                               F:\MCP\projects\CAN\canBase\Source\Tick.c
                                           {                                                                                F:\MCP\projects\CAN\canBase\Source\Tick.c
001650   c072     MOVFF     0x72,0x12          return TickCount;                                                            F:\MCP\projects\CAN\canBase\Source\Tick.c
001652   f012                                                                                                               
001654   c073     MOVFF     0x73,0x13                                                                                       
001656   f013                                                                                                               
001658   c074     MOVFF     0x74,0x14                                                                                       
00165a   f014                                                                                                               
00165c   c075     MOVFF     0x75,0x15                                                                                       
00165e   f015                                                                                                               
001660   d000     BRA       0x1662                                                                                          
001662   0012     RETURN    0x0            }                                                                                F:\MCP\projects\CAN\canBase\Source\Tick.c
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Tick.c
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Tick.c
                                           /*                                                                               F:\MCP\projects\CAN\canBase\Source\Tick.c
                                           *    Function: tickUpdate                                                           F:\MCP\projects\CAN\canBase\Source\Tick.c
                                           *                                                                                F:\MCP\projects\CAN\canBase\Source\Tick.c
                                           *    Input:  none                                                                    F:\MCP\projects\CAN\canBase\Source\Tick.c
                                           *    Output: none                                                                   F:\MCP\projects\CAN\canBase\Source\Tick.c
                                           *    Pre-conditions: TickInit                                                       F:\MCP\projects\CAN\canBase\Source\Tick.c
                                           *    Affects: none                                                                  F:\MCP\projects\CAN\canBase\Source\Tick.c
                                           *    Depends: none                                                                  F:\MCP\projects\CAN\canBase\Source\Tick.c
                                           */                                                                               F:\MCP\projects\CAN\canBase\Source\Tick.c
                                           void tickUpdate(void)                                                            F:\MCP\projects\CAN\canBase\Source\Tick.c
                                           {                                                                                F:\MCP\projects\CAN\canBase\Source\Tick.c
001664   a4f2     BTFSS     0xf2,0x2,0x0       if(INTCONbits.TMR0IF)                                                        F:\MCP\projects\CAN\canBase\Source\Tick.c
001666   d00b     BRA       0x167e                                                                                          
                                               {                                                                            F:\MCP\projects\CAN\canBase\Source\Tick.c
001668   0efe     MOVLW     0xfe                   TMR0H = TICK_COUNTER_HIGH;                                               F:\MCP\projects\CAN\canBase\Source\Tick.c
00166a   6ed7     MOVWF     0xd7,0x0                                                                                        
00166c   0e79     MOVLW     0x79                   TMR0L = TICK_COUNTER_LOW;                                                F:\MCP\projects\CAN\canBase\Source\Tick.c
00166e   6ed6     MOVWF     0xd6,0x0                                                                                        
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Tick.c
001670   0100     MOVLB     0x0                    TickCount++;                                                             F:\MCP\projects\CAN\canBase\Source\Tick.c
001672   2b72     INCF      0x72,0x1,0x1                                                                                    
001674   0e00     MOVLW     0x0                                                                                             
001676   2373     ADDWFC    0x73,0x1,0x1                                                                                    
001678   2374     ADDWFC    0x74,0x1,0x1                                                                                    
00167a   2375     ADDWFC    0x75,0x1,0x1                                                                                    
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Tick.c
00167c   94f2     BCF       0xf2,0x2,0x0           INTCONbits.TMR0IF = 0;                                                   F:\MCP\projects\CAN\canBase\Source\Tick.c
                                               }                                                                            F:\MCP\projects\CAN\canBase\Source\Tick.c
00167e   0012     RETURN    0x0            }                                                                                F:\MCP\projects\CAN\canBase\Source\Tick.c
                                           /*********************************************************************           F:\MCP\projects\CAN\canBase\Source\CAN.c
                                            *                                                                               F:\MCP\projects\CAN\canBase\Source\CAN.c
                                            *                  CAN module                                                   F:\MCP\projects\CAN\canBase\Source\CAN.c
                                            *                                                                               F:\MCP\projects\CAN\canBase\Source\CAN.c
                                            *********************************************************************           F:\MCP\projects\CAN\canBase\Source\CAN.c
                                            * FileName:        $HeadURL$                                                    F:\MCP\projects\CAN\canBase\Source\CAN.c
                                            * Last changed: $LastChangedDate$                                               F:\MCP\projects\CAN\canBase\Source\CAN.c
                                            * By:               $LastChangedBy$                                                        F:\MCP\projects\CAN\canBase\Source\CAN.c
                                            * Revision:     $Revision$                                                         F:\MCP\projects\CAN\canBase\Source\CAN.c
                                            ********************************************************************/           F:\MCP\projects\CAN\canBase\Source\CAN.c
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
                                           #include <CANdefs.h>                                                             F:\MCP\projects\CAN\canBase\Source\CAN.c
                                           #include <stackTasks.h>                                                          F:\MCP\projects\CAN\canBase\Source\CAN.c
                                           #include <CAN.h>                                                                 F:\MCP\projects\CAN\canBase\Source\CAN.c
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
                                           static void canGetPacket(void);                                                  F:\MCP\projects\CAN\canBase\Source\CAN.c
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
                                           #ifdef USE_CAN                                                                   F:\MCP\projects\CAN\canBase\Source\CAN.c
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
                                           /*                                                                               F:\MCP\projects\CAN\canBase\Source\CAN.c
                                           *    Function: canInit                                                              F:\MCP\projects\CAN\canBase\Source\CAN.c
                                           *                                                                                F:\MCP\projects\CAN\canBase\Source\CAN.c
                                           *    Input:  none                                                                    F:\MCP\projects\CAN\canBase\Source\CAN.c
                                           *    Output: none                                                                   F:\MCP\projects\CAN\canBase\Source\CAN.c
                                           *    Pre-conditions: none                                                           F:\MCP\projects\CAN\canBase\Source\CAN.c
                                           *    Affects: Changes can registers.                                                F:\MCP\projects\CAN\canBase\Source\CAN.c
                                           *    Depends: none.                                                                 F:\MCP\projects\CAN\canBase\Source\CAN.c
                                           */                                                                               F:\MCP\projects\CAN\canBase\Source\CAN.c
                                           void canInit()                                                                   F:\MCP\projects\CAN\canBase\Source\CAN.c
                                           {                                                                                F:\MCP\projects\CAN\canBase\Source\CAN.c
001044   0e80     MOVLW     0x80            CANCON = 0x80; //request config mode                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
001046   6e6f     MOVWF     0x6f,0x0                                                                                        
001048   0ee0     MOVLW     0xe0            while ((CANSTAT & 0xE0) != 0x80 ); //wait for config mode request               F:\MCP\projects\CAN\canBase\Source\CAN.c
00104a   146e     ANDWF     0x6e,0x0,0x0                                                                                    
00104c   0880     SUBLW     0x80                                                                                            
00104e   e001     BZ        0x1052                                                                                          
001050   d7fb     BRA       0x1048                                                                                          
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
                                            // BAUD AND TQS                                                                 F:\MCP\projects\CAN\canBase\Source\CAN.c
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
001052   6a70     CLRF      0x70,0x0        BRGCON1=0;                                                                      F:\MCP\projects\CAN\canBase\Source\CAN.c
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
                                            // Sync_Seq = 2 x TQ = 1                                                        F:\MCP\projects\CAN\canBase\Source\CAN.c
001054   9e70     BCF       0x70,0x7,0x0    BRGCON1bits.SJW1=0;                                                             F:\MCP\projects\CAN\canBase\Source\CAN.c
001056   8c70     BSF       0x70,0x6,0x0    BRGCON1bits.SJW0=1;                                                             F:\MCP\projects\CAN\canBase\Source\CAN.c
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
                                            // Setting BRP.                                                                 F:\MCP\projects\CAN\canBase\Source\CAN.c
001058   0e04     MOVLW     0x4             BRGCON1=BRGCON1|CAN_BRP;                                                        F:\MCP\projects\CAN\canBase\Source\CAN.c
00105a   1070     IORWF     0x70,0x0,0x0                                                                                    
00105c   6e70     MOVWF     0x70,0x0                                                                                        
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
                                            // Maximum PHEG1                                                                F:\MCP\projects\CAN\canBase\Source\CAN.c
00105e   8e71     BSF       0x71,0x7,0x0    BRGCON2bits.SEG2PHTS = 1;                                                       F:\MCP\projects\CAN\canBase\Source\CAN.c
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
                                            // Phase_Seg1 = 2 x TQ = 1                                                      F:\MCP\projects\CAN\canBase\Source\CAN.c
001060   9a71     BCF       0x71,0x5,0x0    BRGCON2bits.SEG1PH2 = 0;                                                        F:\MCP\projects\CAN\canBase\Source\CAN.c
001062   9871     BCF       0x71,0x4,0x0    BRGCON2bits.SEG1PH1 = 0;                                                        F:\MCP\projects\CAN\canBase\Source\CAN.c
001064   8671     BSF       0x71,0x3,0x0    BRGCON2bits.SEG1PH0 = 1;                                                        F:\MCP\projects\CAN\canBase\Source\CAN.c
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
                                            // Prop_Seq = 2 x TQ = 1                                                        F:\MCP\projects\CAN\canBase\Source\CAN.c
001066   9471     BCF       0x71,0x2,0x0    BRGCON2bits.PRSEG2 = 0;                                                         F:\MCP\projects\CAN\canBase\Source\CAN.c
001068   9271     BCF       0x71,0x1,0x0    BRGCON2bits.PRSEG1 = 0;                                                         F:\MCP\projects\CAN\canBase\Source\CAN.c
00106a   8071     BSF       0x71,0x0,0x0    BRGCON2bits.PRSEG0 = 1;                                                         F:\MCP\projects\CAN\canBase\Source\CAN.c
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
                                            //  Enableing bus wake-up                                                       F:\MCP\projects\CAN\canBase\Source\CAN.c
00106c   9e72     BCF       0x72,0x7,0x0    BRGCON3bits.WAKDIS = 0;                                                         F:\MCP\projects\CAN\canBase\Source\CAN.c
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
                                            // Dont use filter when wakeup                                                  F:\MCP\projects\CAN\canBase\Source\CAN.c
00106e   9c72     BCF       0x72,0x6,0x0    BRGCON3bits.WAKFIL = 0;                                                         F:\MCP\projects\CAN\canBase\Source\CAN.c
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
                                            // Phase_Seg2 = 2 x TQ = 1                                                      F:\MCP\projects\CAN\canBase\Source\CAN.c
001070   9472     BCF       0x72,0x2,0x0    BRGCON3bits.SEG2PH2 = 0;                                                        F:\MCP\projects\CAN\canBase\Source\CAN.c
001072   9272     BCF       0x72,0x1,0x0    BRGCON3bits.SEG2PH1 = 0;                                                        F:\MCP\projects\CAN\canBase\Source\CAN.c
001074   8072     BSF       0x72,0x0,0x0    BRGCON3bits.SEG2PH0 = 1;                                                        F:\MCP\projects\CAN\canBase\Source\CAN.c
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
001076   6a77     CLRF      0x77,0x0        ECANCON=0;                                                                      F:\MCP\projects\CAN\canBase\Source\CAN.c
001078   9e77     BCF       0x77,0x7,0x0    ECANCONbits.MDSEL1 = 0;                                                         F:\MCP\projects\CAN\canBase\Source\CAN.c
00107a   8c77     BSF       0x77,0x6,0x0    ECANCONbits.MDSEL0 = 1;                                                         F:\MCP\projects\CAN\canBase\Source\CAN.c
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
                                            // FILTERS AND MASKS                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
00107c   8c60     BSF       0x60,0x6,0x0    RXB0CONbits.RXM1=1;                                                             F:\MCP\projects\CAN\canBase\Source\CAN.c
00107e   9a60     BCF       0x60,0x5,0x0    RXB0CONbits.RXM0=0;                                                             F:\MCP\projects\CAN\canBase\Source\CAN.c
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
                                            // INTERRUPTS                                                                   F:\MCP\projects\CAN\canBase\Source\CAN.c
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
                                            // Diable transmit interrupt                                                    F:\MCP\projects\CAN\canBase\Source\CAN.c
001080   010d     MOVLB     0xd             TXBIE = 0;                                                                      F:\MCP\projects\CAN\canBase\Source\CAN.c
001082   6bfc     CLRF      0xfc,0x1                                                                                        
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
                                            //rx any interrupt                                                              F:\MCP\projects\CAN\canBase\Source\CAN.c
001084   6aa4     CLRF      0xa4,0x0        PIR3 = 0;                                                                       F:\MCP\projects\CAN\canBase\Source\CAN.c
001086   0e03     MOVLW     0x3             PIE3 = 0b00000011;                                                              F:\MCP\projects\CAN\canBase\Source\CAN.c
001088   6ea3     MOVWF     0xa3,0x0                                                                                        
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
                                            // High interrupt                                                               F:\MCP\projects\CAN\canBase\Source\CAN.c
00108a   6ea5     MOVWF     0xa5,0x0        IPR3 =0b00000011;                                                               F:\MCP\projects\CAN\canBase\Source\CAN.c
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
                                            // Programmable buffers interrupt                                               F:\MCP\projects\CAN\canBase\Source\CAN.c
00108c   69fa     SETF      0xfa,0x1        BIE0  = 0xFF;                                                                     F:\MCP\projects\CAN\canBase\Source\CAN.c
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
                                            //loopback mode or not                                                          F:\MCP\projects\CAN\canBase\Source\CAN.c
                                            #ifdef CAN_LOOPBACK_MODE                                                        F:\MCP\projects\CAN\canBase\Source\CAN.c
                                                CANCON = 0x40;//request loopback mode                                          F:\MCP\projects\CAN\canBase\Source\CAN.c
                                                while ((CANSTAT & 0xE0) != 0x40 );//wait for loopback mode                     F:\MCP\projects\CAN\canBase\Source\CAN.c
                                            #else                                                                           F:\MCP\projects\CAN\canBase\Source\CAN.c
00108e   6a6f     CLRF      0x6f,0x0            CANCON = 0x00;//request normal mode                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
001090   0ee0     MOVLW     0xe0                while ((CANSTAT & 0xE0) != 0x00 );//wait for normal mode                       F:\MCP\projects\CAN\canBase\Source\CAN.c
001092   146e     ANDWF     0x6e,0x0,0x0                                                                                    
001094   e001     BZ        0x1098                                                                                          
001096   d7fc     BRA       0x1090                                                                                          
                                            #endif                                                                          F:\MCP\projects\CAN\canBase\Source\CAN.c
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
001098   0012     RETURN    0x0            }                                                                                F:\MCP\projects\CAN\canBase\Source\CAN.c
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
                                           /*                                                                               F:\MCP\projects\CAN\canBase\Source\CAN.c
                                           *    Function: canISR                                                               F:\MCP\projects\CAN\canBase\Source\CAN.c
                                           *                                                                                F:\MCP\projects\CAN\canBase\Source\CAN.c
                                           *    Input:  none                                                                    F:\MCP\projects\CAN\canBase\Source\CAN.c
                                           *    Output: none                                                                   F:\MCP\projects\CAN\canBase\Source\CAN.c
                                           *    Pre-conditions: a call to canInit()                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
                                           *    Affects: interrupt registers and receive data buffers                          F:\MCP\projects\CAN\canBase\Source\CAN.c
                                           *    Depends: ..                                                                    F:\MCP\projects\CAN\canBase\Source\CAN.c
                                           */                                                                               F:\MCP\projects\CAN\canBase\Source\CAN.c
                                           void canISR()                                                                    F:\MCP\projects\CAN\canBase\Source\CAN.c
                                           {                                                                                F:\MCP\projects\CAN\canBase\Source\CAN.c
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
00109a   50a4     MOVF      0xa4,0x0,0x0    if (PIR3bits.RXBnIF || PIR3bits.RXB1IF || PIR3bits.RXB0IF)                      F:\MCP\projects\CAN\canBase\Source\CAN.c
00109c   0b02     ANDLW     0x2                                                                                             
00109e   e106     BNZ       0x10ac                                                                                          
0010a0   50a4     MOVF      0xa4,0x0,0x0                                                                                    
0010a2   0b02     ANDLW     0x2                                                                                             
0010a4   e103     BNZ       0x10ac                                                                                          
0010a6   50a4     MOVF      0xa4,0x0,0x0                                                                                    
0010a8   0b01     ANDLW     0x1                                                                                             
0010aa   e047     BZ        0x113a                                                                                          
                                            {                                                                               F:\MCP\projects\CAN\canBase\Source\CAN.c
                                                // Get which buffer that is ful.                                               F:\MCP\projects\CAN\canBase\Source\CAN.c
0010ac   ae60     BTFSS     0x60,0x7,0x0             if (RXB0CONbits.RXFUL) { ECANCON=(ECANCON&0b00000)|0b10000; canGetPacket(); } F:\MCP\projects\CAN\canBase\Source\CAN.c
0010ae   d006     BRA       0x10bc                                                                                          
0010b0   0e00     MOVLW     0x0                                                                                             
0010b2   1477     ANDWF     0x77,0x0,0x0                                                                                    
0010b4   0910     IORLW     0x10                                                                                            
0010b6   6e77     MOVWF     0x77,0x0                                                                                        
0010b8   d841     RCALL     0x113c                                                                                          
0010ba   d039     BRA       0x112e              else if (RXB1CONbits.RXFUL) { ECANCON=(ECANCON&0b00000)|0b10001; canGetPacket(); } F:\MCP\projects\CAN\canBase\Source\CAN.c
0010bc   010f     MOVLB     0xf                                                                                             
0010be   af50     BTFSS     0x50,0x7,0x1                                                                                    
0010c0   d006     BRA       0x10ce                                                                                          
0010c2   0e00     MOVLW     0x0                                                                                             
0010c4   1477     ANDWF     0x77,0x0,0x0                                                                                    
0010c6   0911     IORLW     0x11                                                                                            
0010c8   6e77     MOVWF     0x77,0x0                                                                                        
0010ca   d838     RCALL     0x113c                                                                                          
0010cc   d030     BRA       0x112e              else if (B0CONbits.RXFUL)   { ECANCON=(ECANCON&0b00000)|0b10010; canGetPacket(); } F:\MCP\projects\CAN\canBase\Source\CAN.c
0010ce   010e     MOVLB     0xe                                                                                             
0010d0   af20     BTFSS     0x20,0x7,0x1                                                                                    
0010d2   d006     BRA       0x10e0                                                                                          
0010d4   0e00     MOVLW     0x0                                                                                             
0010d6   1477     ANDWF     0x77,0x0,0x0                                                                                    
0010d8   0912     IORLW     0x12                                                                                            
0010da   6e77     MOVWF     0x77,0x0                                                                                        
0010dc   d82f     RCALL     0x113c                                                                                          
0010de   d027     BRA       0x112e              else if (B1CONbits.RXFUL)   { ECANCON=(ECANCON&0b00000)|0b10011; canGetPacket(); } F:\MCP\projects\CAN\canBase\Source\CAN.c
0010e0   af30     BTFSS     0x30,0x7,0x1                                                                                    
0010e2   d006     BRA       0x10f0                                                                                          
0010e4   0e00     MOVLW     0x0                                                                                             
0010e6   1477     ANDWF     0x77,0x0,0x0                                                                                    
0010e8   0913     IORLW     0x13                                                                                            
0010ea   6e77     MOVWF     0x77,0x0                                                                                        
0010ec   d827     RCALL     0x113c                                                                                          
0010ee   d01f     BRA       0x112e              else if (B2CONbits.RXFUL)   { ECANCON=(ECANCON&0b00000)|0b10100; canGetPacket(); } F:\MCP\projects\CAN\canBase\Source\CAN.c
0010f0   af40     BTFSS     0x40,0x7,0x1                                                                                    
0010f2   d006     BRA       0x1100                                                                                          
0010f4   0e00     MOVLW     0x0                                                                                             
0010f6   1477     ANDWF     0x77,0x0,0x0                                                                                    
0010f8   0914     IORLW     0x14                                                                                            
0010fa   6e77     MOVWF     0x77,0x0                                                                                        
0010fc   d81f     RCALL     0x113c                                                                                          
0010fe   d017     BRA       0x112e              else if (B3CONbits.RXFUL)   { ECANCON=(ECANCON&0b00000)|0b10101; canGetPacket(); } F:\MCP\projects\CAN\canBase\Source\CAN.c
001100   af50     BTFSS     0x50,0x7,0x1                                                                                    
001102   d006     BRA       0x1110                                                                                          
001104   0e00     MOVLW     0x0                                                                                             
001106   1477     ANDWF     0x77,0x0,0x0                                                                                    
001108   0915     IORLW     0x15                                                                                            
00110a   6e77     MOVWF     0x77,0x0                                                                                        
00110c   d817     RCALL     0x113c                                                                                          
00110e   d00f     BRA       0x112e              else if (B4CONbits.RXFUL)   { ECANCON=(ECANCON&0b00000)|0b10110; canGetPacket(); } F:\MCP\projects\CAN\canBase\Source\CAN.c
001110   af60     BTFSS     0x60,0x7,0x1                                                                                    
001112   d006     BRA       0x1120                                                                                          
001114   0e00     MOVLW     0x0                                                                                             
001116   1477     ANDWF     0x77,0x0,0x0                                                                                    
001118   0916     IORLW     0x16                                                                                            
00111a   6e77     MOVWF     0x77,0x0                                                                                        
00111c   d80f     RCALL     0x113c                                                                                          
00111e   d007     BRA       0x112e              else if (B5CONbits.RXFUL)   { ECANCON=(ECANCON&0b00000)|0b10111; canGetPacket(); } F:\MCP\projects\CAN\canBase\Source\CAN.c
001120   af70     BTFSS     0x70,0x7,0x1                                                                                    
001122   d005     BRA       0x112e                                                                                          
001124   0e00     MOVLW     0x0                                                                                             
001126   1477     ANDWF     0x77,0x0,0x0                                                                                    
001128   0917     IORLW     0x17                                                                                            
00112a   6e77     MOVWF     0x77,0x0                                                                                        
00112c   d807     RCALL     0x113c                                                                                          
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
00112e   b2a4     BTFSC     0xa4,0x1,0x0        if (PIR3bits.RXBnIF) {PIR3bits.RXBnIF = 0;}                                    F:\MCP\projects\CAN\canBase\Source\CAN.c
001130   92a4     BCF       0xa4,0x1,0x0                                                                                    
001132   b2a4     BTFSC     0xa4,0x1,0x0        if (PIR3bits.RXB1IF) {PIR3bits.RXB1IF = 0;}                                    F:\MCP\projects\CAN\canBase\Source\CAN.c
001134   92a4     BCF       0xa4,0x1,0x0                                                                                    
001136   b0a4     BTFSC     0xa4,0x0,0x0        if (PIR3bits.RXB0IF) {PIR3bits.RXB0IF = 0;}                                    F:\MCP\projects\CAN\canBase\Source\CAN.c
001138   90a4     BCF       0xa4,0x0,0x0                                                                                    
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
                                            }                                                                               F:\MCP\projects\CAN\canBase\Source\CAN.c
00113a   0012     RETURN    0x0            }                                                                                F:\MCP\projects\CAN\canBase\Source\CAN.c
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
                                           /*                                                                               F:\MCP\projects\CAN\canBase\Source\CAN.c
                                           *    Function: canGetPacket                                                         F:\MCP\projects\CAN\canBase\Source\CAN.c
                                           *                                                                                F:\MCP\projects\CAN\canBase\Source\CAN.c
                                           *    Input:  none                                                                    F:\MCP\projects\CAN\canBase\Source\CAN.c
                                           *    Output: none                                                                   F:\MCP\projects\CAN\canBase\Source\CAN.c
                                           *    Pre-conditions: a call to canISR and an packet is available and banked to RXB0 F:\MCP\projects\CAN\canBase\Source\CAN.c
                                           *    Affects: Calls canParse() function in main for parsing received packet.        F:\MCP\projects\CAN\canBase\Source\CAN.c
                                           *    Depends: none.                                                                 F:\MCP\projects\CAN\canBase\Source\CAN.c
                                           */                                                                               F:\MCP\projects\CAN\canBase\Source\CAN.c
00113c   cfd9     MOVFF     0xfd9,0xfe6    void canGetPacket()                                                              F:\MCP\projects\CAN\canBase\Source\CAN.c
00113e   ffe6                                                                                                               
001140   cfe1     MOVFF     0xfe1,0xfd9                                                                                     
001142   ffd9                                                                                                               
001144   0e0f     MOVLW     0xf                                                                                             
001146   26e1     ADDWF     0xe1,0x1,0x0                                                                                    
                                           {                                                                                F:\MCP\projects\CAN\canBase\Source\CAN.c
                                                CAN_MESSAGE cm;                                                                F:\MCP\projects\CAN\canBase\Source\CAN.c
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
                                                //RXB0SIDH 28 27 26 25 24 23 22 21                                             F:\MCP\projects\CAN\canBase\Source\CAN.c
                                                   //RXB0SIDL 20 19 18 xx xx xx 17 16                                       F:\MCP\projects\CAN\canBase\Source\CAN.c
                                                   //RXB0EIDH 15 14 13 12 11 10 09 08                                       F:\MCP\projects\CAN\canBase\Source\CAN.c
                                                   //RXB0EIDL 07 06 05 04 03 02 01 00                                       F:\MCP\projects\CAN\canBase\Source\CAN.c
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
                                                //funct xx xx xx xx 28 27 26 25                                                F:\MCP\projects\CAN\canBase\Source\CAN.c
                                                //funcc xx xx xx xx xx xx 24 23 22 21 20 19 18 17 16 15                        F:\MCP\projects\CAN\canBase\Source\CAN.c
                                                //nid   xx xx 14 13 12 11 10 09                                                F:\MCP\projects\CAN\canBase\Source\CAN.c
                                                //sid   xx xx xx xx xx xx xx 08 07 06 05 04 03 02 01 00                        F:\MCP\projects\CAN\canBase\Source\CAN.c
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
001148   0ef0     MOVLW     0xf0                    cm.funct=((RXB0SIDH & 0xF0)>>4);                                         F:\MCP\projects\CAN\canBase\Source\CAN.c
00114a   1461     ANDWF     0x61,0x0,0x0                                                                                    
00114c   38e8     SWAPF     0xe8,0x0,0x0                                                                                    
00114e   0b0f     ANDLW     0xf                                                                                             
001150   6edf     MOVWF     0xdf,0x0                                                                                        
001152   0e0f     MOVLW     0xf                    cm.funcc=(((WORD)(RXB0SIDH & 0x0F))<<6)+(((WORD)(RXB0SIDL & 0xE0))>>2)+(((WORD)(RXB0SIDL & 0x03))<<1)+(((WORD)(RXB0EIDH & 0x80))>>7); F:\MCP\projects\CAN\canBase\Source\CAN.c
001154   1461     ANDWF     0x61,0x0,0x0                                                                                    
001156   6e06     MOVWF     0x6,0x0                                                                                         
001158   6a07     CLRF      0x7,0x0                                                                                         
00115a   0e06     MOVLW     0x6                                                                                             
00115c   90d8     BCF       0xd8,0x0,0x0                                                                                    
00115e   3606     RLCF      0x6,0x1,0x0                                                                                     
001160   3607     RLCF      0x7,0x1,0x0                                                                                     
001162   04e8     DECF      0xe8,0x0,0x0                                                                                    
001164   e1fb     BNZ       0x115c                                                                                          
001166   0ee0     MOVLW     0xe0                                                                                            
001168   1462     ANDWF     0x62,0x0,0x0                                                                                    
00116a   6e08     MOVWF     0x8,0x0                                                                                         
00116c   6a09     CLRF      0x9,0x0                                                                                         
00116e   90d8     BCF       0xd8,0x0,0x0                                                                                    
001170   3209     RRCF      0x9,0x1,0x0                                                                                     
001172   3208     RRCF      0x8,0x1,0x0                                                                                     
001174   90d8     BCF       0xd8,0x0,0x0                                                                                    
001176   3209     RRCF      0x9,0x1,0x0                                                                                     
001178   3208     RRCF      0x8,0x1,0x0                                                                                     
00117a   5006     MOVF      0x6,0x0,0x0                                                                                     
00117c   2408     ADDWF     0x8,0x0,0x0                                                                                     
00117e   6e04     MOVWF     0x4,0x0                                                                                         
001180   5007     MOVF      0x7,0x0,0x0                                                                                     
001182   2009     ADDWFC    0x9,0x0,0x0                                                                                     
001184   6e05     MOVWF     0x5,0x0                                                                                         
001186   0e03     MOVLW     0x3                                                                                             
001188   1462     ANDWF     0x62,0x0,0x0                                                                                    
00118a   6e0a     MOVWF     0xa,0x0                                                                                         
00118c   6a0b     CLRF      0xb,0x0                                                                                         
00118e   90d8     BCF       0xd8,0x0,0x0                                                                                    
001190   360a     RLCF      0xa,0x1,0x0                                                                                     
001192   360b     RLCF      0xb,0x1,0x0                                                                                     
001194   5004     MOVF      0x4,0x0,0x0                                                                                     
001196   240a     ADDWF     0xa,0x0,0x0                                                                                     
001198   6e02     MOVWF     0x2,0x0                                                                                         
00119a   5005     MOVF      0x5,0x0,0x0                                                                                     
00119c   200b     ADDWFC    0xb,0x0,0x0                                                                                     
00119e   6e03     MOVWF     0x3,0x0                                                                                         
0011a0   0e80     MOVLW     0x80                                                                                            
0011a2   1463     ANDWF     0x63,0x0,0x0                                                                                    
0011a4   6e0c     MOVWF     0xc,0x0                                                                                         
0011a6   6a0d     CLRF      0xd,0x0                                                                                         
0011a8   0e07     MOVLW     0x7                                                                                             
0011aa   90d8     BCF       0xd8,0x0,0x0                                                                                    
0011ac   320d     RRCF      0xd,0x1,0x0                                                                                     
0011ae   320c     RRCF      0xc,0x1,0x0                                                                                     
0011b0   04e8     DECF      0xe8,0x0,0x0                                                                                    
0011b2   e1fb     BNZ       0x11aa                                                                                          
0011b4   5002     MOVF      0x2,0x0,0x0                                                                                     
0011b6   240c     ADDWF     0xc,0x0,0x0                                                                                     
0011b8   6e00     MOVWF     0x0,0x0                                                                                         
0011ba   5003     MOVF      0x3,0x0,0x0                                                                                     
0011bc   200d     ADDWFC    0xd,0x0,0x0                                                                                     
0011be   6e01     MOVWF     0x1,0x0                                                                                         
0011c0   0e01     MOVLW     0x1                                                                                             
0011c2   c000     MOVFF     0x0,0xfdb                                                                                       
0011c4   ffdb                                                                                                               
0011c6   0e02     MOVLW     0x2                                                                                             
0011c8   c001     MOVFF     0x1,0xfdb                                                                                       
0011ca   ffdb                                                                                                               
0011cc   0e7e     MOVLW     0x7e                   cm.nid=((RXB0EIDH & 0x7E)>>1);                                           F:\MCP\projects\CAN\canBase\Source\CAN.c
0011ce   1463     ANDWF     0x63,0x0,0x0                                                                                    
0011d0   40e8     RRNCF     0xe8,0x0,0x0                                                                                    
0011d2   0b7f     ANDLW     0x7f                                                                                            
0011d4   6ee7     MOVWF     0xe7,0x0                                                                                        
0011d6   0e03     MOVLW     0x3                                                                                             
0011d8   cfe7     MOVFF     0xfe7,0xfdb                                                                                     
0011da   ffdb                                                                                                               
0011dc   0e01     MOVLW     0x1                    cm.sid=(((WORD)(RXB0EIDH & 0x01))<<8)+RXB0EIDL;                          F:\MCP\projects\CAN\canBase\Source\CAN.c
0011de   1463     ANDWF     0x63,0x0,0x0                                                                                    
0011e0   6e02     MOVWF     0x2,0x0                                                                                         
0011e2   c002     MOVFF     0x2,0x3                                                                                         
0011e4   f003                                                                                                               
0011e6   6a02     CLRF      0x2,0x0                                                                                         
0011e8   5064     MOVF      0x64,0x0,0x0                                                                                    
0011ea   0100     MOVLB     0x0                                                                                             
0011ec   2402     ADDWF     0x2,0x0,0x0                                                                                     
0011ee   6e00     MOVWF     0x0,0x0                                                                                         
0011f0   0e00     MOVLW     0x0                                                                                             
0011f2   2003     ADDWFC    0x3,0x0,0x0                                                                                     
0011f4   6e01     MOVWF     0x1,0x0                                                                                         
0011f6   0e04     MOVLW     0x4                                                                                             
0011f8   c000     MOVFF     0x0,0xfdb                                                                                       
0011fa   ffdb                                                                                                               
0011fc   0e05     MOVLW     0x5                                                                                             
0011fe   c001     MOVFF     0x1,0xfdb                                                                                       
001200   ffdb                                                                                                               
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
                                                // Data length                                                                 F:\MCP\projects\CAN\canBase\Source\CAN.c
001202   5065     MOVF      0x65,0x0,0x0        cm.data_length=(RXB0DLCbits.DLC3<<3)+(RXB0DLCbits.DLC2<<2)+(RXB0DLCbits.DLC1<<1)+RXB0DLCbits.DLC0; F:\MCP\projects\CAN\canBase\Source\CAN.c
001204   0b01     ANDLW     0x1                                                                                             
001206   6e02     MOVWF     0x2,0x0                                                                                         
001208   5065     MOVF      0x65,0x0,0x0                                                                                    
00120a   0b02     ANDLW     0x2                                                                                             
00120c   e001     BZ        0x1210                                                                                          
00120e   0e01     MOVLW     0x1                                                                                             
001210   24e8     ADDWF     0xe8,0x0,0x0                                                                                    
001212   6e01     MOVWF     0x1,0x0                                                                                         
001214   5065     MOVF      0x65,0x0,0x0                                                                                    
001216   0b04     ANDLW     0x4                                                                                             
001218   e001     BZ        0x121c                                                                                          
00121a   0e01     MOVLW     0x1                                                                                             
00121c   0d04     MULLW     0x4                                                                                             
00121e   cff3     MOVFF     0xff3,0x0                                                                                       
001220   f000                                                                                                               
001222   5065     MOVF      0x65,0x0,0x0                                                                                    
001224   0b08     ANDLW     0x8                                                                                             
001226   e001     BZ        0x122a                                                                                          
001228   0e01     MOVLW     0x1                                                                                             
00122a   0d08     MULLW     0x8                                                                                             
00122c   50f3     MOVF      0xf3,0x0,0x0                                                                                    
00122e   2400     ADDWF     0x0,0x0,0x0                                                                                     
001230   2401     ADDWF     0x1,0x0,0x0                                                                                     
001232   2402     ADDWF     0x2,0x0,0x0                                                                                     
001234   6ee7     MOVWF     0xe7,0x0                                                                                        
001236   0e06     MOVLW     0x6                                                                                             
001238   cfe7     MOVFF     0xfe7,0xfdb                                                                                     
00123a   ffdb                                                                                                               
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
                                                // Data one bye one, for speed                                                 F:\MCP\projects\CAN\canBase\Source\CAN.c
00123c   0e07     MOVLW     0x7                 cm.data[0]=RXB0D0;  cm.data[1]=RXB0D1;                                          F:\MCP\projects\CAN\canBase\Source\CAN.c
00123e   cf66     MOVFF     0xf66,0xfdb                                                                                     
001240   ffdb                                                                                                               
001242   0e08     MOVLW     0x8                                                                                             
001244   cf67     MOVFF     0xf67,0xfdb                                                                                     
001246   ffdb                                                                                                               
001248   0e09     MOVLW     0x9                 cm.data[2]=RXB0D2;  cm.data[3]=RXB0D3;                                         F:\MCP\projects\CAN\canBase\Source\CAN.c
00124a   cf68     MOVFF     0xf68,0xfdb                                                                                     
00124c   ffdb                                                                                                               
00124e   0e0a     MOVLW     0xa                                                                                             
001250   cf69     MOVFF     0xf69,0xfdb                                                                                     
001252   ffdb                                                                                                               
001254   0e0b     MOVLW     0xb                 cm.data[4]=RXB0D4;  cm.data[5]=RXB0D5;                                         F:\MCP\projects\CAN\canBase\Source\CAN.c
001256   cf6a     MOVFF     0xf6a,0xfdb                                                                                     
001258   ffdb                                                                                                               
00125a   0e0c     MOVLW     0xc                                                                                             
00125c   cf6b     MOVFF     0xf6b,0xfdb                                                                                     
00125e   ffdb                                                                                                               
001260   0e0d     MOVLW     0xd                 cm.data[6]=RXB0D6;  cm.data[7]=RXB0D7;                                         F:\MCP\projects\CAN\canBase\Source\CAN.c
001262   cf6c     MOVFF     0xf6c,0xfdb                                                                                     
001264   ffdb                                                                                                               
001266   0e0e     MOVLW     0xe                                                                                             
001268   cf6d     MOVFF     0xf6d,0xfdb                                                                                     
00126a   ffdb                                                                                                               
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
                                                // Clear ful status                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
00126c   9e60     BCF       0x60,0x7,0x0        RXB0CONbits.RXFUL=0;                                                           F:\MCP\projects\CAN\canBase\Source\CAN.c
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
                                                //Call main parser                                                             F:\MCP\projects\CAN\canBase\Source\CAN.c
00126e   cfd9     MOVFF     0xfd9,0xfe9         canParse(cm);                                                                  F:\MCP\projects\CAN\canBase\Source\CAN.c
001270   ffe9                                                                                                               
001272   cfda     MOVFF     0xfda,0xfea                                                                                     
001274   ffea                                                                                                               
001276   cfee     MOVFF     0xfee,0xfe6                                                                                     
001278   ffe6                                                                                                               
00127a   cfee     MOVFF     0xfee,0xfe6                                                                                     
00127c   ffe6                                                                                                               
00127e   cfee     MOVFF     0xfee,0xfe6                                                                                     
001280   ffe6                                                                                                               
001282   cfee     MOVFF     0xfee,0xfe6                                                                                     
001284   ffe6                                                                                                               
001286   cfee     MOVFF     0xfee,0xfe6                                                                                     
001288   ffe6                                                                                                               
00128a   cfee     MOVFF     0xfee,0xfe6                                                                                     
00128c   ffe6                                                                                                               
00128e   cfee     MOVFF     0xfee,0xfe6                                                                                     
001290   ffe6                                                                                                               
001292   cfee     MOVFF     0xfee,0xfe6                                                                                     
001294   ffe6                                                                                                               
001296   cfee     MOVFF     0xfee,0xfe6                                                                                     
001298   ffe6                                                                                                               
00129a   cfee     MOVFF     0xfee,0xfe6                                                                                     
00129c   ffe6                                                                                                               
00129e   cfee     MOVFF     0xfee,0xfe6                                                                                     
0012a0   ffe6                                                                                                               
0012a2   cfee     MOVFF     0xfee,0xfe6                                                                                     
0012a4   ffe6                                                                                                               
0012a6   cfee     MOVFF     0xfee,0xfe6                                                                                     
0012a8   ffe6                                                                                                               
0012aa   cfee     MOVFF     0xfee,0xfe6                                                                                     
0012ac   ffe6                                                                                                               
0012ae   cfee     MOVFF     0xfee,0xfe6                                                                                     
0012b0   ffe6                                                                                                               
0012b2   ecb5     CALL      0x156a,0x0                                                                                      
0012b4   f00a                                                                                                               
0012b6   6e00     MOVWF     0x0,0x0                                                                                         
0012b8   0e0f     MOVLW     0xf                                                                                             
0012ba   5ee1     SUBWF     0xe1,0x1,0x0                                                                                    
0012bc   5000     MOVF      0x0,0x0,0x0                                                                                     
0012be   0e0f     MOVLW     0xf            }                                                                                F:\MCP\projects\CAN\canBase\Source\CAN.c
0012c0   5ce1     SUBWF     0xe1,0x0,0x0                                                                                    
0012c2   e202     BC        0x12c8                                                                                          
0012c4   6ae1     CLRF      0xe1,0x0                                                                                        
0012c6   52e5     MOVF      0xe5,0x1,0x0                                                                                    
0012c8   6ee1     MOVWF     0xe1,0x0                                                                                        
0012ca   52e5     MOVF      0xe5,0x1,0x0                                                                                    
0012cc   cfe7     MOVFF     0xfe7,0xfd9                                                                                     
0012ce   ffd9                                                                                                               
0012d0   0012     RETURN    0x0                                                                                             
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
                                           /*                                                                               F:\MCP\projects\CAN\canBase\Source\CAN.c
                                           *    Function: canSendMessage                                                       F:\MCP\projects\CAN\canBase\Source\CAN.c
                                           *                                                                                F:\MCP\projects\CAN\canBase\Source\CAN.c
                                           *    Input:  CAN_MESSAGE to send                                                     F:\MCP\projects\CAN\canBase\Source\CAN.c
                                           *    Output: True if packet scheduled sucess, false otherwise.                      F:\MCP\projects\CAN\canBase\Source\CAN.c
                                           *    Pre-conditions: canInit                                                        F:\MCP\projects\CAN\canBase\Source\CAN.c
                                           *    Affects: ..                                                                    F:\MCP\projects\CAN\canBase\Source\CAN.c
                                           *    Depends: ..                                                                    F:\MCP\projects\CAN\canBase\Source\CAN.c
                                           */                                                                               F:\MCP\projects\CAN\canBase\Source\CAN.c
0012d2   cfd9     MOVFF     0xfd9,0xfe6    BOOL canSendMessage(CAN_MESSAGE cm,CAN_PRIORITY prio)                            F:\MCP\projects\CAN\canBase\Source\CAN.c
0012d4   ffe6                                                                                                               
0012d6   cfe1     MOVFF     0xfe1,0xfd9                                                                                     
0012d8   ffd9                                                                                                               
                                           {                                                                                F:\MCP\projects\CAN\canBase\Source\CAN.c
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
0012da   010f     MOVLB     0xf             if ( TXB0CONbits.TXREQ == 0 )  { ECANCON=(ECANCON&0b00000)|0b00011; }           F:\MCP\projects\CAN\canBase\Source\CAN.c
0012dc   b740     BTFSC     0x40,0x3,0x1                                                                                    
0012de   d004     BRA       0x12e8                                                                                          
0012e0   0e00     MOVLW     0x0                                                                                             
0012e2   1477     ANDWF     0x77,0x0,0x0                                                                                    
0012e4   0903     IORLW     0x3                                                                                             
0012e6   6e77     MOVWF     0x77,0x0                                                                                        
0012e8   010f     MOVLB     0xf             if ( TXB1CONbits.TXREQ == 0 )  { ECANCON=(ECANCON&0b00000)|0b00100; }           F:\MCP\projects\CAN\canBase\Source\CAN.c
0012ea   b730     BTFSC     0x30,0x3,0x1                                                                                    
0012ec   d004     BRA       0x12f6                                                                                          
0012ee   0e00     MOVLW     0x0                                                                                             
0012f0   1477     ANDWF     0x77,0x0,0x0                                                                                    
0012f2   0904     IORLW     0x4                                                                                             
0012f4   6e77     MOVWF     0x77,0x0                                                                                        
0012f6   010f     MOVLB     0xf             if ( TXB2CONbits.TXREQ == 0 )  { ECANCON=(ECANCON&0b00000)|0b00101; }           F:\MCP\projects\CAN\canBase\Source\CAN.c
0012f8   b720     BTFSC     0x20,0x3,0x1                                                                                    
0012fa   d005     BRA       0x1306                                                                                          
0012fc   0e00     MOVLW     0x0                                                                                             
0012fe   1477     ANDWF     0x77,0x0,0x0                                                                                    
001300   0905     IORLW     0x5                                                                                             
001302   6e77     MOVWF     0x77,0x0                                                                                        
                                            // None of the transmit buffers were empty.                                     F:\MCP\projects\CAN\canBase\Source\CAN.c
001304   d002     BRA       0x130a          else { return FALSE;}                                                           F:\MCP\projects\CAN\canBase\Source\CAN.c
001306   0e00     MOVLW     0x0                                                                                             
001308   d0b0     BRA       0x146a                                                                                          
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
00130a   0eef     MOVLW     0xef            if (prio<0 || prio>3) prio = 0;                                                 F:\MCP\projects\CAN\canBase\Source\CAN.c
00130c   cfdb     MOVFF     0xfdb,0x0                                                                                       
00130e   f000                                                                                                               
001310   3400     RLCF      0x0,0x0,0x0                                                                                     
001312   e20e     BC        0x1330                                                                                          
001314   0eef     MOVLW     0xef                                                                                            
001316   cfdb     MOVFF     0xfdb,0x1                                                                                       
001318   f001                                                                                                               
00131a   0e03     MOVLW     0x3                                                                                             
00131c   6ee7     MOVWF     0xe7,0x0                                                                                        
00131e   1801     XORWF     0x1,0x0,0x0                                                                                     
001320   aee8     BTFSS     0xe8,0x7,0x0                                                                                    
001322   d002     BRA       0x1328                                                                                          
001324   3401     RLCF      0x1,0x0,0x0                                                                                     
001326   d003     BRA       0x132e                                                                                          
001328   50e7     MOVF      0xe7,0x0,0x0                                                                                    
00132a   80d8     BSF       0xd8,0x0,0x0                                                                                    
00132c   5401     SUBFWB    0x1,0x0,0x0                                                                                     
00132e   e202     BC        0x1334                                                                                          
001330   0eef     MOVLW     0xef                                                                                            
001332   6adb     CLRF      0xdb,0x0                                                                                        
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
                                                //RXB0SIDH 28 27 26 25 24 23 22 21                                             F:\MCP\projects\CAN\canBase\Source\CAN.c
                                                   //RXB0SIDL 20 19 18 xx xx xx 17 16                                       F:\MCP\projects\CAN\canBase\Source\CAN.c
                                                   //RXB0EIDH 15 14 13 12 11 10 09 08                                       F:\MCP\projects\CAN\canBase\Source\CAN.c
                                                   //RXB0EIDL 07 06 05 04 03 02 01 00                                       F:\MCP\projects\CAN\canBase\Source\CAN.c
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
                                                //funct xx xx xx xx 28 27 26 25                                                F:\MCP\projects\CAN\canBase\Source\CAN.c
                                                //funcc xx xx xx xx xx xx 24 23 22 21 20 19 18 17 16 15                        F:\MCP\projects\CAN\canBase\Source\CAN.c
                                                //nid   xx xx 14 13 12 11 10 09                                                F:\MCP\projects\CAN\canBase\Source\CAN.c
                                                //sid   xx xx xx xx xx xx xx 08 07 06 05 04 03 02 01 00                        F:\MCP\projects\CAN\canBase\Source\CAN.c
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
001334   0ef1     MOVLW     0xf1                RXB0SIDH = (BYTE)((cm.funct & 0x0F)<<4)+(BYTE)((cm.funcc & 0x03C0)>>6);        F:\MCP\projects\CAN\canBase\Source\CAN.c
001336   cfdb     MOVFF     0xfdb,0x0                                                                                       
001338   f000                                                                                                               
00133a   0ef2     MOVLW     0xf2                                                                                            
00133c   cfdb     MOVFF     0xfdb,0x1                                                                                       
00133e   f001                                                                                                               
001340   0ec0     MOVLW     0xc0                                                                                            
001342   1600     ANDWF     0x0,0x1,0x0                                                                                     
001344   0e03     MOVLW     0x3                                                                                             
001346   1601     ANDWF     0x1,0x1,0x0                                                                                     
001348   0e06     MOVLW     0x6                                                                                             
00134a   90d8     BCF       0xd8,0x0,0x0                                                                                    
00134c   3201     RRCF      0x1,0x1,0x0                                                                                     
00134e   3200     RRCF      0x0,0x1,0x0                                                                                     
001350   04e8     DECF      0xe8,0x0,0x0                                                                                    
001352   e1fb     BNZ       0x134a                                                                                          
001354   0ef0     MOVLW     0xf0                                                                                            
001356   50db     MOVF      0xdb,0x0,0x0                                                                                    
001358   0b0f     ANDLW     0xf                                                                                             
00135a   0d10     MULLW     0x10                                                                                            
00135c   50f3     MOVF      0xf3,0x0,0x0                                                                                    
00135e   2400     ADDWF     0x0,0x0,0x0                                                                                     
001360   6e61     MOVWF     0x61,0x0                                                                                        
001362   0e06     MOVLW     0x6                 RXB0SIDL = (BYTE)((cm.funcc & 0x003F)<<2)+(BYTE)((cm.funcc & 0x0006)>>1);      F:\MCP\projects\CAN\canBase\Source\CAN.c
001364   6ee7     MOVWF     0xe7,0x0                                                                                        
001366   0ef1     MOVLW     0xf1                                                                                            
001368   cfdb     MOVFF     0xfdb,0x2                                                                                       
00136a   f002                                                                                                               
00136c   0ef2     MOVLW     0xf2                                                                                            
00136e   cfdb     MOVFF     0xfdb,0x3                                                                                       
001370   f003                                                                                                               
001372   50e7     MOVF      0xe7,0x0,0x0                                                                                    
001374   1602     ANDWF     0x2,0x1,0x0                                                                                     
001376   6a03     CLRF      0x3,0x0                                                                                         
001378   90d8     BCF       0xd8,0x0,0x0                                                                                    
00137a   3203     RRCF      0x3,0x1,0x0                                                                                     
00137c   3202     RRCF      0x2,0x1,0x0                                                                                     
00137e   0e3f     MOVLW     0x3f                                                                                            
001380   6ee7     MOVWF     0xe7,0x0                                                                                        
001382   0ef1     MOVLW     0xf1                                                                                            
001384   cfdb     MOVFF     0xfdb,0x0                                                                                       
001386   f000                                                                                                               
001388   0ef2     MOVLW     0xf2                                                                                            
00138a   cfdb     MOVFF     0xfdb,0x1                                                                                       
00138c   f001                                                                                                               
00138e   50e7     MOVF      0xe7,0x0,0x0                                                                                    
001390   1600     ANDWF     0x0,0x1,0x0                                                                                     
001392   6a01     CLRF      0x1,0x0                                                                                         
001394   90d8     BCF       0xd8,0x0,0x0                                                                                    
001396   3600     RLCF      0x0,0x1,0x0                                                                                     
001398   3601     RLCF      0x1,0x1,0x0                                                                                     
00139a   90d8     BCF       0xd8,0x0,0x0                                                                                    
00139c   3600     RLCF      0x0,0x1,0x0                                                                                     
00139e   3601     RLCF      0x1,0x1,0x0                                                                                     
0013a0   5000     MOVF      0x0,0x0,0x0                                                                                     
0013a2   2402     ADDWF     0x2,0x0,0x0                                                                                     
0013a4   6e62     MOVWF     0x62,0x0                                                                                        
0013a6   0ef4     MOVLW     0xf4                RXB0EIDH = (BYTE)((cm.funcc & 0x0001)<<7)+(BYTE)((cm.nid & 0x3F)<<1)+(BYTE)((cm.sid & 0x0100)>>8); F:\MCP\projects\CAN\canBase\Source\CAN.c
0013a8   cfdb     MOVFF     0xfdb,0x2                                                                                       
0013aa   f002                                                                                                               
0013ac   0ef5     MOVLW     0xf5                                                                                            
0013ae   cfdb     MOVFF     0xfdb,0x3                                                                                       
0013b0   f003                                                                                                               
0013b2   0e00     MOVLW     0x0                                                                                             
0013b4   1602     ANDWF     0x2,0x1,0x0                                                                                     
0013b6   0e01     MOVLW     0x1                                                                                             
0013b8   1603     ANDWF     0x3,0x1,0x0                                                                                     
0013ba   c003     MOVFF     0x3,0x2                                                                                         
0013bc   f002                                                                                                               
0013be   6a03     CLRF      0x3,0x0                                                                                         
0013c0   0e01     MOVLW     0x1                                                                                             
0013c2   6ee7     MOVWF     0xe7,0x0                                                                                        
0013c4   0ef1     MOVLW     0xf1                                                                                            
0013c6   cfdb     MOVFF     0xfdb,0x0                                                                                       
0013c8   f000                                                                                                               
0013ca   0ef2     MOVLW     0xf2                                                                                            
0013cc   cfdb     MOVFF     0xfdb,0x1                                                                                       
0013ce   f001                                                                                                               
0013d0   50e7     MOVF      0xe7,0x0,0x0                                                                                    
0013d2   1600     ANDWF     0x0,0x1,0x0                                                                                     
0013d4   6a01     CLRF      0x1,0x0                                                                                         
0013d6   0e07     MOVLW     0x7                                                                                             
0013d8   90d8     BCF       0xd8,0x0,0x0                                                                                    
0013da   3600     RLCF      0x0,0x1,0x0                                                                                     
0013dc   3601     RLCF      0x1,0x1,0x0                                                                                     
0013de   04e8     DECF      0xe8,0x0,0x0                                                                                    
0013e0   e1fb     BNZ       0x13d8                                                                                          
0013e2   0ef3     MOVLW     0xf3                                                                                            
0013e4   50db     MOVF      0xdb,0x0,0x0                                                                                    
0013e6   0b3f     ANDLW     0x3f                                                                                            
0013e8   24e8     ADDWF     0xe8,0x0,0x0                                                                                    
0013ea   2400     ADDWF     0x0,0x0,0x0                                                                                     
0013ec   2402     ADDWF     0x2,0x0,0x0                                                                                     
0013ee   6e63     MOVWF     0x63,0x0                                                                                        
0013f0   0eff     MOVLW     0xff                RXB0EIDL = (BYTE)((cm.sid & 0x00FF));                                          F:\MCP\projects\CAN\canBase\Source\CAN.c
0013f2   6ee7     MOVWF     0xe7,0x0                                                                                        
0013f4   0ef4     MOVLW     0xf4                                                                                            
0013f6   cfdb     MOVFF     0xfdb,0x0                                                                                       
0013f8   f000                                                                                                               
0013fa   0ef5     MOVLW     0xf5                                                                                            
0013fc   cfdb     MOVFF     0xfdb,0x1                                                                                       
0013fe   f001                                                                                                               
001400   50e7     MOVF      0xe7,0x0,0x0                                                                                    
001402   1600     ANDWF     0x0,0x1,0x0                                                                                     
001404   6a01     CLRF      0x1,0x0                                                                                         
001406   5000     MOVF      0x0,0x0,0x0                                                                                     
001408   6e64     MOVWF     0x64,0x0                                                                                        
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
                                                // Data length                                                                 F:\MCP\projects\CAN\canBase\Source\CAN.c
00140a   6a65     CLRF      0x65,0x0            RXB0DLC = 0;                                                                   F:\MCP\projects\CAN\canBase\Source\CAN.c
00140c   0ef6     MOVLW     0xf6                if (cm.data_length>8) RXB0DLC=8; else RXB0DLC=cm.data_length;                  F:\MCP\projects\CAN\canBase\Source\CAN.c
00140e   50db     MOVF      0xdb,0x0,0x0                                                                                    
001410   0808     SUBLW     0x8                                                                                             
001412   e203     BC        0x141a                                                                                          
001414   0e08     MOVLW     0x8                                                                                             
001416   6e65     MOVWF     0x65,0x0                                                                                        
001418   d003     BRA       0x1420                                                                                          
00141a   0ef6     MOVLW     0xf6                                                                                            
00141c   50db     MOVF      0xdb,0x0,0x0                                                                                    
00141e   6e65     MOVWF     0x65,0x0                                                                                        
                                                                                                                               F:\MCP\projects\CAN\canBase\Source\CAN.c
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
                                                // NOT Remote request                                                          F:\MCP\projects\CAN\canBase\Source\CAN.c
                                                _asm                                                                           F:\MCP\projects\CAN\canBase\Source\CAN.c
001420   9c65     BCF       0x65,0x6,0x0            bcf RXB0DLC, 6, 0                                                             F:\MCP\projects\CAN\canBase\Source\CAN.c
                                                _endasm                                                                        F:\MCP\projects\CAN\canBase\Source\CAN.c
                                                                                                                               F:\MCP\projects\CAN\canBase\Source\CAN.c
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
                                                // Data one bye one, for speed                                                 F:\MCP\projects\CAN\canBase\Source\CAN.c
001422   0ef7     MOVLW     0xf7                RXB0D0=cm.data[0];  RXB0D1=cm.data[1];                                          F:\MCP\projects\CAN\canBase\Source\CAN.c
001424   50db     MOVF      0xdb,0x0,0x0                                                                                    
001426   6e66     MOVWF     0x66,0x0                                                                                        
001428   0ef8     MOVLW     0xf8                                                                                            
00142a   50db     MOVF      0xdb,0x0,0x0                                                                                    
00142c   6e67     MOVWF     0x67,0x0                                                                                        
00142e   0ef9     MOVLW     0xf9                RXB0D2=cm.data[2];  RXB0D3=cm.data[3];                                         F:\MCP\projects\CAN\canBase\Source\CAN.c
001430   50db     MOVF      0xdb,0x0,0x0                                                                                    
001432   6e68     MOVWF     0x68,0x0                                                                                        
001434   0efa     MOVLW     0xfa                                                                                            
001436   50db     MOVF      0xdb,0x0,0x0                                                                                    
001438   6e69     MOVWF     0x69,0x0                                                                                        
00143a   0efb     MOVLW     0xfb                RXB0D4=cm.data[4];  RXB0D5=cm.data[5];                                         F:\MCP\projects\CAN\canBase\Source\CAN.c
00143c   50db     MOVF      0xdb,0x0,0x0                                                                                    
00143e   6e6a     MOVWF     0x6a,0x0                                                                                        
001440   0efc     MOVLW     0xfc                                                                                            
001442   50db     MOVF      0xdb,0x0,0x0                                                                                    
001444   6e6b     MOVWF     0x6b,0x0                                                                                        
001446   0efd     MOVLW     0xfd                RXB0D6=cm.data[6];  RXB0D7=cm.data[7];                                         F:\MCP\projects\CAN\canBase\Source\CAN.c
001448   50db     MOVF      0xdb,0x0,0x0                                                                                    
00144a   6e6c     MOVWF     0x6c,0x0                                                                                        
00144c   0efe     MOVLW     0xfe                                                                                            
00144e   50db     MOVF      0xdb,0x0,0x0                                                                                    
001450   6e6d     MOVWF     0x6d,0x0                                                                                        
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
                                                // set extended                                                                F:\MCP\projects\CAN\canBase\Source\CAN.c
001452   8662     BSF       0x62,0x3,0x0        RXB0SIDLbits.EXID=1;                                                           F:\MCP\projects\CAN\canBase\Source\CAN.c
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
                                                // Priority                                                                    F:\MCP\projects\CAN\canBase\Source\CAN.c
001454   0eef     MOVLW     0xef                RXB0CON = (RXB0CON & 0b11111100) | prio;                                       F:\MCP\projects\CAN\canBase\Source\CAN.c
001456   cfdb     MOVFF     0xfdb,0xfe6                                                                                     
001458   ffe6                                                                                                               
00145a   0efc     MOVLW     0xfc                                                                                            
00145c   1460     ANDWF     0x60,0x0,0x0                                                                                    
00145e   52e5     MOVF      0xe5,0x1,0x0                                                                                    
001460   10e7     IORWF     0xe7,0x0,0x0                                                                                    
001462   6e60     MOVWF     0x60,0x0                                                                                        
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
                                                // mark as redy to transmit                                                    F:\MCP\projects\CAN\canBase\Source\CAN.c
                                                _asm                                                                           F:\MCP\projects\CAN\canBase\Source\CAN.c
001464   8660     BSF       0x60,0x3,0x0            bsf RXB0CON, 3, 0                                                             F:\MCP\projects\CAN\canBase\Source\CAN.c
                                                _endasm                                                                        F:\MCP\projects\CAN\canBase\Source\CAN.c
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
001466   0e01     MOVLW     0x1                 return TRUE;                                                                   F:\MCP\projects\CAN\canBase\Source\CAN.c
001468   d000     BRA       0x146a                                                                                          
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
00146a   52e5     MOVF      0xe5,0x1,0x0   }                                                                                F:\MCP\projects\CAN\canBase\Source\CAN.c
00146c   cfe7     MOVFF     0xfe7,0xfd9                                                                                     
00146e   ffd9                                                                                                               
001470   0012     RETURN    0x0                                                                                             
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
                                           #endif //USE_CAN                                                                 F:\MCP\projects\CAN\canBase\Source\CAN.c
                                           /*********************************************************************           F:\MCP\projects\CAN\canBase\Source\Main.c
                                            *                                                                               F:\MCP\projects\CAN\canBase\Source\Main.c
                                            *                  Main application                                             F:\MCP\projects\CAN\canBase\Source\Main.c
                                            *                                                                               F:\MCP\projects\CAN\canBase\Source\Main.c
                                            *********************************************************************           F:\MCP\projects\CAN\canBase\Source\Main.c
                                            * FileName:        $HeadURL$                                                    F:\MCP\projects\CAN\canBase\Source\Main.c
                                            * Last changed: $LastChangedDate$                                               F:\MCP\projects\CAN\canBase\Source\Main.c
                                            * By:               $LastChangedBy$                                                        F:\MCP\projects\CAN\canBase\Source\Main.c
                                            * Revision:     $Revision$                                                         F:\MCP\projects\CAN\canBase\Source\Main.c
                                            ********************************************************************/           F:\MCP\projects\CAN\canBase\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Main.c
                                           #include <compiler.h>                                                            F:\MCP\projects\CAN\canBase\Source\Main.c
                                           #include <stackTasks.h>                                                          F:\MCP\projects\CAN\canBase\Source\Main.c
                                           #include <Tick.h>                                                                F:\MCP\projects\CAN\canBase\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Main.c
                                           #ifdef USE_CAN                                                                   F:\MCP\projects\CAN\canBase\Source\Main.c
                                            #include <CAN.h>                                                                F:\MCP\projects\CAN\canBase\Source\Main.c
                                           #endif                                                                           F:\MCP\projects\CAN\canBase\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Main.c
                                           static void mainInit(void);                                                      F:\MCP\projects\CAN\canBase\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Main.c
                                           void main()                                                                      F:\MCP\projects\CAN\canBase\Source\Main.c
                                           {                                                                                F:\MCP\projects\CAN\canBase\Source\Main.c
                                            static TICK t = 0;                                                              F:\MCP\projects\CAN\canBase\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Main.c
                                            // Inits                                                                        F:\MCP\projects\CAN\canBase\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Main.c
001472   d876     RCALL     0x1560          mainInit();                                                                     F:\MCP\projects\CAN\canBase\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Main.c
                                            #ifdef USE_CAN                                                                  F:\MCP\projects\CAN\canBase\Source\Main.c
001474   ec22     CALL      0x1044,0x0          canInit();                                                                     F:\MCP\projects\CAN\canBase\Source\Main.c
001476   f008                                                                                                               
                                            #endif                                                                          F:\MCP\projects\CAN\canBase\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Main.c
001478   ec1e     CALL      0x163c,0x0      tickInit();                                                                     F:\MCP\projects\CAN\canBase\Source\Main.c
00147a   f00b                                                                                                               
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Main.c
0014b0   d7e5     BRA       0x147c          while(1)                                                                        F:\MCP\projects\CAN\canBase\Source\Main.c
                                            {                                                                               F:\MCP\projects\CAN\canBase\Source\Main.c
                                                static TICK t = 0;                                                             F:\MCP\projects\CAN\canBase\Source\Main.c
00147c   ec28     CALL      0x1650,0x0          if ((tickGet()-t)>TICK_SECOND/2)                                               F:\MCP\projects\CAN\canBase\Source\Main.c
00147e   f00b                                                                                                               
001480   0100     MOVLB     0x0                                                                                             
001482   516e     MOVF      0x6e,0x0,0x1                                                                                    
001484   5c12     SUBWF     0x12,0x0,0x0                                                                                    
001486   6e00     MOVWF     0x0,0x0                                                                                         
001488   516f     MOVF      0x6f,0x0,0x1                                                                                    
00148a   5813     SUBWFB    0x13,0x0,0x0                                                                                    
00148c   6e01     MOVWF     0x1,0x0                                                                                         
00148e   5170     MOVF      0x70,0x0,0x1                                                                                    
001490   5814     SUBWFB    0x14,0x0,0x0                                                                                    
001492   6e02     MOVWF     0x2,0x0                                                                                         
001494   5171     MOVF      0x71,0x0,0x1                                                                                    
001496   5815     SUBWFB    0x15,0x0,0x0                                                                                    
001498   6e03     MOVWF     0x3,0x0                                                                                         
00149a   80d8     BSF       0xd8,0x0,0x0                                                                                    
00149c   0e32     MOVLW     0x32                                                                                            
00149e   5400     SUBFWB    0x0,0x0,0x0                                                                                     
0014a0   0e00     MOVLW     0x0                                                                                             
0014a2   5401     SUBFWB    0x1,0x0,0x0                                                                                     
0014a4   0e00     MOVLW     0x0                                                                                             
0014a6   5402     SUBFWB    0x2,0x0,0x0                                                                                     
0014a8   0e00     MOVLW     0x0                                                                                             
0014aa   5403     SUBFWB    0x3,0x0,0x0                                                                                     
0014ac   e201     BC        0x14b0                                                                                          
                                                {                                                                              F:\MCP\projects\CAN\canBase\Source\Main.c
0014ae   7282     BTG       0x82,0x1,0x0            LED0_IO=~LED0_IO;                                                             F:\MCP\projects\CAN\canBase\Source\Main.c
                                                }                                                                              F:\MCP\projects\CAN\canBase\Source\Main.c
                                            }                                                                               F:\MCP\projects\CAN\canBase\Source\Main.c
0014b2   0012     RETURN    0x0            }                                                                                F:\MCP\projects\CAN\canBase\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Main.c
                                           #pragma interrupt high_isr                                                       F:\MCP\projects\CAN\canBase\Source\Main.c
0014b4   cfda     MOVFF     0xfda,0xfe4    void high_isr(void)                                                              F:\MCP\projects\CAN\canBase\Source\Main.c
0014b6   ffe4                                                                                                               
0014b8   cfe2     MOVFF     0xfe2,0xfda                                                                                     
0014ba   ffda                                                                                                               
0014bc   cfe9     MOVFF     0xfe9,0xfe4                                                                                     
0014be   ffe4                                                                                                               
0014c0   cfea     MOVFF     0xfea,0xfe4                                                                                     
0014c2   ffe4                                                                                                               
0014c4   cff6     MOVFF     0xff6,0xfe4                                                                                     
0014c6   ffe4                                                                                                               
0014c8   cff7     MOVFF     0xff7,0xfe4                                                                                     
0014ca   ffe4                                                                                                               
0014cc   cff5     MOVFF     0xff5,0xfe4                                                                                     
0014ce   ffe4                                                                                                               
0014d0   cff3     MOVFF     0xff3,0xfe4                                                                                     
0014d2   ffe4                                                                                                               
0014d4   cff4     MOVFF     0xff4,0xfe4                                                                                     
0014d6   ffe4                                                                                                               
0014d8   cffa     MOVFF     0xffa,0xfe4                                                                                     
0014da   ffe4                                                                                                               
0014dc   ee00     LFSR      0x0,0xe                                                                                         
0014de   f00e                                                                                                               
0014e0   0e0b     MOVLW     0xb                                                                                             
0014e2   04e8     DECF      0xe8,0x0,0x0                                                                                    
0014e4   e303     BNC       0x14ec                                                                                          
0014e6   cfee     MOVFF     0xfee,0xfe4                                                                                     
0014e8   ffe4                                                                                                               
0014ea   d7fb     BRA       0x14e2                                                                                          
0014ec   ee00     LFSR      0x0,0x0                                                                                         
0014ee   f000                                                                                                               
0014f0   0e0e     MOVLW     0xe                                                                                             
0014f2   04e8     DECF      0xe8,0x0,0x0                                                                                    
0014f4   e303     BNC       0x14fc                                                                                          
0014f6   cfee     MOVFF     0xfee,0xfe4                                                                                     
0014f8   ffe4                                                                                                               
0014fa   d7fb     BRA       0x14f2                                                                                          
0014fc   52e6     MOVF      0xe6,0x1,0x0                                                                                    
                                           {                                                                                F:\MCP\projects\CAN\canBase\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Main.c
                                            #ifdef USE_CAN                                                                  F:\MCP\projects\CAN\canBase\Source\Main.c
0014fe   ec4d     CALL      0x109a,0x0          canISR();                                                                      F:\MCP\projects\CAN\canBase\Source\Main.c
001500   f008                                                                                                               
                                            #endif                                                                          F:\MCP\projects\CAN\canBase\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Main.c
001502   ec32     CALL      0x1664,0x0      tickUpdate();                                                                   F:\MCP\projects\CAN\canBase\Source\Main.c
001504   f00b                                                                                                               
001506   52e5     MOVF      0xe5,0x1,0x0   }                                                                                F:\MCP\projects\CAN\canBase\Source\Main.c
001508   ee00     LFSR      0x0,0xd                                                                                         
00150a   f00d                                                                                                               
00150c   0e0e     MOVLW     0xe                                                                                             
00150e   04e8     DECF      0xe8,0x0,0x0                                                                                    
001510   e303     BNC       0x1518                                                                                          
001512   cfe5     MOVFF     0xfe5,0xfed                                                                                     
001514   ffed                                                                                                               
001516   d7fb     BRA       0x150e                                                                                          
001518   ee00     LFSR      0x0,0x18                                                                                        
00151a   f018                                                                                                               
00151c   0e0b     MOVLW     0xb                                                                                             
00151e   04e8     DECF      0xe8,0x0,0x0                                                                                    
001520   e303     BNC       0x1528                                                                                          
001522   cfe5     MOVFF     0xfe5,0xfed                                                                                     
001524   ffed                                                                                                               
001526   d7fb     BRA       0x151e                                                                                          
001528   cfe5     MOVFF     0xfe5,0xffa                                                                                     
00152a   fffa                                                                                                               
00152c   cfe5     MOVFF     0xfe5,0xff4                                                                                     
00152e   fff4                                                                                                               
001530   cfe5     MOVFF     0xfe5,0xff3                                                                                     
001532   fff3                                                                                                               
001534   cfe5     MOVFF     0xfe5,0xff5                                                                                     
001536   fff5                                                                                                               
001538   cfe5     MOVFF     0xfe5,0xff7                                                                                     
00153a   fff7                                                                                                               
00153c   cfe5     MOVFF     0xfe5,0xff6                                                                                     
00153e   fff6                                                                                                               
001540   cfe5     MOVFF     0xfe5,0xfea                                                                                     
001542   ffea                                                                                                               
001544   cfe5     MOVFF     0xfe5,0xfe9                                                                                     
001546   ffe9                                                                                                               
001548   cfe5     MOVFF     0xfe5,0xfda                                                                                     
00154a   ffda                                                                                                               
00154c   0011     RETFIE    0x1                                                                                             
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Main.c
                                           #pragma interrupt low_isr                                                        F:\MCP\projects\CAN\canBase\Source\Main.c
00154e   cfda     MOVFF     0xfda,0xfe4    void low_isr(void)                                                               F:\MCP\projects\CAN\canBase\Source\Main.c
001550   ffe4                                                                                                               
001552   cfe2     MOVFF     0xfe2,0xfda                                                                                     
001554   ffda                                                                                                               
001556   52e6     MOVF      0xe6,0x1,0x0                                                                                    
                                           {                                                                                F:\MCP\projects\CAN\canBase\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Main.c
001558   52e5     MOVF      0xe5,0x1,0x0   }                                                                                F:\MCP\projects\CAN\canBase\Source\Main.c
00155a   cfe5     MOVFF     0xfe5,0xfda                                                                                     
00155c   ffda                                                                                                               
00155e   0011     RETFIE    0x1                                                                                             
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Main.c
                                           /*                                                                               F:\MCP\projects\CAN\canBase\Source\Main.c
                                           *    Function: mainInit                                                             F:\MCP\projects\CAN\canBase\Source\Main.c
                                           *                                                                                F:\MCP\projects\CAN\canBase\Source\Main.c
                                           *    Input:  none                                                                    F:\MCP\projects\CAN\canBase\Source\Main.c
                                           *    Output: none                                                                   F:\MCP\projects\CAN\canBase\Source\Main.c
                                           *    Pre-conditions: none                                                           F:\MCP\projects\CAN\canBase\Source\Main.c
                                           *    Affects: Se code                                                               F:\MCP\projects\CAN\canBase\Source\Main.c
                                           *    Depends: none.                                                                 F:\MCP\projects\CAN\canBase\Source\Main.c
                                           */                                                                               F:\MCP\projects\CAN\canBase\Source\Main.c
                                           void mainInit()                                                                  F:\MCP\projects\CAN\canBase\Source\Main.c
                                           {                                                                                F:\MCP\projects\CAN\canBase\Source\Main.c
001560   9294     BCF       0x94,0x1,0x0    LED0_TRIS=0;                                                                       F:\MCP\projects\CAN\canBase\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Main.c
                                            // Enable Interrupts                                                            F:\MCP\projects\CAN\canBase\Source\Main.c
001562   8ef2     BSF       0xf2,0x7,0x0       INTCONbits.GIEH = 1;                                                         F:\MCP\projects\CAN\canBase\Source\Main.c
001564   8cf2     BSF       0xf2,0x6,0x0       INTCONbits.GIEL = 1;                                                         F:\MCP\projects\CAN\canBase\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Main.c
                                            // Enable interrupt prirority                                                   F:\MCP\projects\CAN\canBase\Source\Main.c
001566   8ed0     BSF       0xd0,0x7,0x0    RCONbits.IPEN=1;                                                                F:\MCP\projects\CAN\canBase\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Main.c
001568   0012     RETURN    0x0            }                                                                                F:\MCP\projects\CAN\canBase\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Main.c
                                           /*                                                                               F:\MCP\projects\CAN\canBase\Source\Main.c
                                           *    Function: canParse                                                             F:\MCP\projects\CAN\canBase\Source\Main.c
                                           *                                                                                F:\MCP\projects\CAN\canBase\Source\Main.c
                                           *    Input:  Received can message                                                    F:\MCP\projects\CAN\canBase\Source\Main.c
                                           *    Output: none                                                                   F:\MCP\projects\CAN\canBase\Source\Main.c
                                           *    Pre-conditions: canInit and received packet.                                   F:\MCP\projects\CAN\canBase\Source\Main.c
                                           *    Affects: Sensors/actuators/etc. See code.                                      F:\MCP\projects\CAN\canBase\Source\Main.c
                                           *    Depends: none.                                                                 F:\MCP\projects\CAN\canBase\Source\Main.c
                                           */                                                                               F:\MCP\projects\CAN\canBase\Source\Main.c
                                           #ifdef USE_CAN                                                                   F:\MCP\projects\CAN\canBase\Source\Main.c
00156a   cfd9     MOVFF     0xfd9,0xfe6    void canParse(CAN_MESSAGE cm)                                                    F:\MCP\projects\CAN\canBase\Source\Main.c
00156c   ffe6                                                                                                               
00156e   cfe1     MOVFF     0xfe1,0xfd9                                                                                     
001570   ffd9                                                                                                               
                                           {                                                                                F:\MCP\projects\CAN\canBase\Source\Main.c
001572   0ef0     MOVLW     0xf0            switch(cm.funct)                                                                F:\MCP\projects\CAN\canBase\Source\Main.c
001574   50db     MOVF      0xdb,0x0,0x0                                                                                    
001576   e001     BZ        0x157a                                                                                          
001578   d00e     BRA       0x1596                                                                                          
                                            {                                                                               F:\MCP\projects\CAN\canBase\Source\Main.c
                                                case FUNCT_BOOTLOADER:                                                         F:\MCP\projects\CAN\canBase\Source\Main.c
00157a   50d9     MOVF      0xd9,0x0,0x0            if (cm.funcc==FUNCC_BOOT_INIT) { _asm goto 0x0 _endasm }                      F:\MCP\projects\CAN\canBase\Source\Main.c
00157c   0ff1     ADDLW     0xf1                                                                                            
00157e   6ee9     MOVWF     0xe9,0x0                                                                                        
001580   0eff     MOVLW     0xff                                                                                            
001582   20da     ADDWFC    0xda,0x0,0x0                                                                                    
001584   6eea     MOVWF     0xea,0x0                                                                                        
001586   0e01     MOVLW     0x1                                                                                             
001588   18ee     XORWF     0xee,0x0,0x0                                                                                    
00158a   e101     BNZ       0x158e                                                                                          
00158c   50ed     MOVF      0xed,0x0,0x0                                                                                    
00158e   e102     BNZ       0x1594                                                                                          
001590   ef00     GOTO      0x0                                                                                             
001592   f000                                                                                                               
001594   d000     BRA       0x1596              break;                                                                         F:\MCP\projects\CAN\canBase\Source\Main.c
                                            }                                                                               F:\MCP\projects\CAN\canBase\Source\Main.c
001596   52e5     MOVF      0xe5,0x1,0x0   }                                                                                F:\MCP\projects\CAN\canBase\Source\Main.c
001598   cfe7     MOVFF     0xfe7,0xfd9                                                                                     
00159a   ffd9                                                                                                               
00159c   0012     RETURN    0x0                                                                                             
                                           #endif                                                                           F:\MCP\projects\CAN\canBase\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Main.c
                                           // Below are mandantory when using bootloader                                    F:\MCP\projects\CAN\canBase\Source\Main.c
                                           // define DEBUG_MODE to use without bootloader.                                  F:\MCP\projects\CAN\canBase\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Main.c
                                           #ifndef DEBUG_MODE                                                               F:\MCP\projects\CAN\canBase\Source\Main.c
                                           extern void _startup (void);                                                     F:\MCP\projects\CAN\canBase\Source\Main.c
                                           #pragma code _RESET_INTERRUPT_VECTOR = 0x001000                                  F:\MCP\projects\CAN\canBase\Source\Main.c
                                           void _reset (void)                                                               F:\MCP\projects\CAN\canBase\Source\Main.c
                                           {                                                                                F:\MCP\projects\CAN\canBase\Source\Main.c
001000   ef40     GOTO      0x1680             _asm goto _startup _endasm                                                   F:\MCP\projects\CAN\canBase\Source\Main.c
001002   f00b                                                                                                               
001004   0012     RETURN    0x0            }                                                                                F:\MCP\projects\CAN\canBase\Source\Main.c
                                           #pragma code                                                                     F:\MCP\projects\CAN\canBase\Source\Main.c
                                           #endif                                                                           F:\MCP\projects\CAN\canBase\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Main.c
                                           #pragma code _HIGH_INTERRUPT_VECTOR = 0x001008                                   F:\MCP\projects\CAN\canBase\Source\Main.c
                                           void _high_ISR (void)                                                            F:\MCP\projects\CAN\canBase\Source\Main.c
                                           {                                                                                F:\MCP\projects\CAN\canBase\Source\Main.c
001008   ef5a     GOTO      0x14b4          _asm GOTO high_isr _endasm                                                      F:\MCP\projects\CAN\canBase\Source\Main.c
00100a   f00a                                                                                                               
00100c   0012     RETURN    0x0            }                                                                                F:\MCP\projects\CAN\canBase\Source\Main.c
                                           #pragma code                                                                     F:\MCP\projects\CAN\canBase\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Main.c
                                           #pragma code _LOW_INTERRUPT_VECTOR = 0x001018                                    F:\MCP\projects\CAN\canBase\Source\Main.c
                                           void _low_ISR (void)                                                             F:\MCP\projects\CAN\canBase\Source\Main.c
                                           {                                                                                F:\MCP\projects\CAN\canBase\Source\Main.c
001018   efa7     GOTO      0x154e             _asm GOTO low_isr _endasm                                                    F:\MCP\projects\CAN\canBase\Source\Main.c
00101a   f00a                                                                                                               
00101c   0012     RETURN    0x0            }                                                                                F:\MCP\projects\CAN\canBase\Source\Main.c
                                           #pragma code                                                                     F:\MCP\projects\CAN\canBase\Source\Main.c