Subversion Repositories HomeAutomation

Rev

Rev 87 | 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 11:41:55 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: http://svn.arune.se/svn/HomeAutomation/trunk/EmbeddedSoftware/PIC/canBase/Source/Tick.c $ F:\MCP\projects\CAN\canBase\Source\Tick.c
                                            * Last changed: $LastChangedDate: 2006-11-14 10:55:38 +0100 (ti, 14 nov 2006) $ F:\MCP\projects\CAN\canBase\Source\Tick.c
                                            * By:               $LastChangedBy: johboh $                                               F:\MCP\projects\CAN\canBase\Source\Tick.c
                                            * Revision:     $Revision: 86 $                                                    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
0016d8   0e79     MOVLW     0x79               TMR0L = TICK_COUNTER_LOW;                                                    F:\MCP\projects\CAN\canBase\Source\Tick.c
0016da   6ed6     MOVWF     0xd6,0x0                                                                                        
0016dc   0efe     MOVLW     0xfe               TMR0H = TICK_COUNTER_HIGH;                                                   F:\MCP\projects\CAN\canBase\Source\Tick.c
0016de   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
0016e0   0e07     MOVLW     0x7                T0CON = 0b00000000 | TIMER_PRESCALE;                                         F:\MCP\projects\CAN\canBase\Source\Tick.c
0016e2   6ed5     MOVWF     0xd5,0x0                                                                                        
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Tick.c
                                               // Start the timer.                                                          F:\MCP\projects\CAN\canBase\Source\Tick.c
0016e4   8ed5     BSF       0xd5,0x7,0x0       T0CONbits.TMR0ON = 1;                                                        F:\MCP\projects\CAN\canBase\Source\Tick.c
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Tick.c
0016e6   84f2     BSF       0xf2,0x2,0x0       INTCONbits.TMR0IF = 1;                                                       F:\MCP\projects\CAN\canBase\Source\Tick.c
0016e8   8af2     BSF       0xf2,0x5,0x0       INTCONbits.TMR0IE = 1;                                                       F:\MCP\projects\CAN\canBase\Source\Tick.c
0016ea   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
0016ec   c072     MOVFF     0x72,0x12          return TickCount;                                                            F:\MCP\projects\CAN\canBase\Source\Tick.c
0016ee   f012                                                                                                               
0016f0   c073     MOVFF     0x73,0x13                                                                                       
0016f2   f013                                                                                                               
0016f4   c074     MOVFF     0x74,0x14                                                                                       
0016f6   f014                                                                                                               
0016f8   c075     MOVFF     0x75,0x15                                                                                       
0016fa   f015                                                                                                               
0016fc   d000     BRA       0x16fe                                                                                          
0016fe   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
001700   a4f2     BTFSS     0xf2,0x2,0x0       if(INTCONbits.TMR0IF)                                                        F:\MCP\projects\CAN\canBase\Source\Tick.c
001702   d00b     BRA       0x171a                                                                                          
                                               {                                                                            F:\MCP\projects\CAN\canBase\Source\Tick.c
001704   0efe     MOVLW     0xfe                   TMR0H = TICK_COUNTER_HIGH;                                               F:\MCP\projects\CAN\canBase\Source\Tick.c
001706   6ed7     MOVWF     0xd7,0x0                                                                                        
001708   0e79     MOVLW     0x79                   TMR0L = TICK_COUNTER_LOW;                                                F:\MCP\projects\CAN\canBase\Source\Tick.c
00170a   6ed6     MOVWF     0xd6,0x0                                                                                        
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Tick.c
00170c   0100     MOVLB     0x0                    TickCount++;                                                             F:\MCP\projects\CAN\canBase\Source\Tick.c
00170e   2b72     INCF      0x72,0x1,0x1                                                                                    
001710   0e00     MOVLW     0x0                                                                                             
001712   2373     ADDWFC    0x73,0x1,0x1                                                                                    
001714   2374     ADDWFC    0x74,0x1,0x1                                                                                    
001716   2375     ADDWFC    0x75,0x1,0x1                                                                                    
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Tick.c
001718   94f2     BCF       0xf2,0x2,0x0           INTCONbits.TMR0IF = 0;                                                   F:\MCP\projects\CAN\canBase\Source\Tick.c
                                               }                                                                            F:\MCP\projects\CAN\canBase\Source\Tick.c
00171a   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: http://svn.arune.se/svn/HomeAutomation/trunk/EmbeddedSoftware/PIC/canBase/Source/CAN.c $ F:\MCP\projects\CAN\canBase\Source\CAN.c
                                            * Last changed: $LastChangedDate: 2006-11-14 11:20:48 +0100 (ti, 14 nov 2006) $ F:\MCP\projects\CAN\canBase\Source\CAN.c
                                            * By:               $LastChangedBy: johboh $                                               F:\MCP\projects\CAN\canBase\Source\CAN.c
                                            * Revision:     $Revision: 87 $                                                    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
                                                                                                                                        F:\MCP\projects\CAN\canBase\Source\CAN.c
                                                                                                                            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   ec03     CALL      0x1606,0x0                                                                                      
0012b4   f00b                                                                                                               
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: http://svn.arune.se/svn/HomeAutomation/trunk/EmbeddedSoftware/PIC/canBase/Source/Main.c $ F:\MCP\projects\CAN\canBase\Source\Main.c
                                            * Last changed: $LastChangedDate: 2006-11-14 11:20:48 +0100 (ti, 14 nov 2006) $ F:\MCP\projects\CAN\canBase\Source\Main.c
                                            * By:               $LastChangedBy: johboh $                                               F:\MCP\projects\CAN\canBase\Source\Main.c
                                            * Revision:     $Revision: 87 $                                                    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
001472   cfd9     MOVFF     0xfd9,0xfe6    void main()                                                                      F:\MCP\projects\CAN\canBase\Source\Main.c
001474   ffe6                                                                                                               
001476   cfe1     MOVFF     0xfe1,0xfd9                                                                                     
001478   ffd9                                                                                                               
00147a   0e0f     MOVLW     0xf                                                                                             
00147c   26e1     ADDWF     0xe1,0x1,0x0                                                                                    
                                           {                                                                                F:\MCP\projects\CAN\canBase\Source\Main.c
                                            static TICK t = 0;                                                              F:\MCP\projects\CAN\canBase\Source\Main.c
                                            CAN_MESSAGE cm2;                                                                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
00147e   d8be     RCALL     0x15fc          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
001480   ec22     CALL      0x1044,0x0          canInit();                                                                     F:\MCP\projects\CAN\canBase\Source\Main.c
001482   f008                                                                                                               
                                            #endif                                                                          F:\MCP\projects\CAN\canBase\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Main.c
001484   ec6c     CALL      0x16d8,0x0      tickInit();                                                                     F:\MCP\projects\CAN\canBase\Source\Main.c
001486   f00b                                                                                                               
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Main.c
                                            // Dummy bootmessage                                                            F:\MCP\projects\CAN\canBase\Source\Main.c
001488   0e91     MOVLW     0x91            cm2.data[0]=0x91;                                                               F:\MCP\projects\CAN\canBase\Source\Main.c
00148a   6ef3     MOVWF     0xf3,0x0                                                                                        
00148c   0e07     MOVLW     0x7                                                                                             
00148e   cff3     MOVFF     0xff3,0xfdb                                                                                     
001490   ffdb                                                                                                               
001492   0e01     MOVLW     0x1             cm2.data_length=1;                                                              F:\MCP\projects\CAN\canBase\Source\Main.c
001494   6ef3     MOVWF     0xf3,0x0                                                                                        
001496   0e06     MOVLW     0x6                                                                                             
001498   cff3     MOVFF     0xff3,0xfdb                                                                                     
00149a   ffdb                                                                                                               
00149c   0e02     MOVLW     0x2             canSendMessage(cm2,PRIO_HIGH);                                                  F:\MCP\projects\CAN\canBase\Source\Main.c
00149e   6ee6     MOVWF     0xe6,0x0                                                                                        
0014a0   cfd9     MOVFF     0xfd9,0xfe9                                                                                     
0014a2   ffe9                                                                                                               
0014a4   cfda     MOVFF     0xfda,0xfea                                                                                     
0014a6   ffea                                                                                                               
0014a8   cfee     MOVFF     0xfee,0xfe6                                                                                     
0014aa   ffe6                                                                                                               
0014ac   cfee     MOVFF     0xfee,0xfe6                                                                                     
0014ae   ffe6                                                                                                               
0014b0   cfee     MOVFF     0xfee,0xfe6                                                                                     
0014b2   ffe6                                                                                                               
0014b4   cfee     MOVFF     0xfee,0xfe6                                                                                     
0014b6   ffe6                                                                                                               
0014b8   cfee     MOVFF     0xfee,0xfe6                                                                                     
0014ba   ffe6                                                                                                               
0014bc   cfee     MOVFF     0xfee,0xfe6                                                                                     
0014be   ffe6                                                                                                               
0014c0   cfee     MOVFF     0xfee,0xfe6                                                                                     
0014c2   ffe6                                                                                                               
0014c4   cfee     MOVFF     0xfee,0xfe6                                                                                     
0014c6   ffe6                                                                                                               
0014c8   cfee     MOVFF     0xfee,0xfe6                                                                                     
0014ca   ffe6                                                                                                               
0014cc   cfee     MOVFF     0xfee,0xfe6                                                                                     
0014ce   ffe6                                                                                                               
0014d0   cfee     MOVFF     0xfee,0xfe6                                                                                     
0014d2   ffe6                                                                                                               
0014d4   cfee     MOVFF     0xfee,0xfe6                                                                                     
0014d6   ffe6                                                                                                               
0014d8   cfee     MOVFF     0xfee,0xfe6                                                                                     
0014da   ffe6                                                                                                               
0014dc   cfee     MOVFF     0xfee,0xfe6                                                                                     
0014de   ffe6                                                                                                               
0014e0   cfee     MOVFF     0xfee,0xfe6                                                                                     
0014e2   ffe6                                                                                                               
0014e4   ec69     CALL      0x12d2,0x0                                                                                      
0014e6   f009                                                                                                               
0014e8   6e00     MOVWF     0x0,0x0                                                                                         
0014ea   0e10     MOVLW     0x10                                                                                            
0014ec   5ee1     SUBWF     0xe1,0x1,0x0                                                                                    
0014ee   5000     MOVF      0x0,0x0,0x0                                                                                     
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Main.c
001538   d7db     BRA       0x14f0          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
0014f0   ec76     CALL      0x16ec,0x0          if ((tickGet()-t)>TICK_SECOND)                                                 F:\MCP\projects\CAN\canBase\Source\Main.c
0014f2   f00b                                                                                                               
0014f4   0100     MOVLB     0x0                                                                                             
0014f6   516e     MOVF      0x6e,0x0,0x1                                                                                    
0014f8   5c12     SUBWF     0x12,0x0,0x0                                                                                    
0014fa   6e00     MOVWF     0x0,0x0                                                                                         
0014fc   516f     MOVF      0x6f,0x0,0x1                                                                                    
0014fe   5813     SUBWFB    0x13,0x0,0x0                                                                                    
001500   6e01     MOVWF     0x1,0x0                                                                                         
001502   5170     MOVF      0x70,0x0,0x1                                                                                    
001504   5814     SUBWFB    0x14,0x0,0x0                                                                                    
001506   6e02     MOVWF     0x2,0x0                                                                                         
001508   5171     MOVF      0x71,0x0,0x1                                                                                    
00150a   5815     SUBWFB    0x15,0x0,0x0                                                                                    
00150c   6e03     MOVWF     0x3,0x0                                                                                         
00150e   80d8     BSF       0xd8,0x0,0x0                                                                                    
001510   0e64     MOVLW     0x64                                                                                            
001512   5400     SUBFWB    0x0,0x0,0x0                                                                                     
001514   0e00     MOVLW     0x0                                                                                             
001516   5401     SUBFWB    0x1,0x0,0x0                                                                                     
001518   0e00     MOVLW     0x0                                                                                             
00151a   5402     SUBFWB    0x2,0x0,0x0                                                                                     
00151c   0e00     MOVLW     0x0                                                                                             
00151e   5403     SUBFWB    0x3,0x0,0x0                                                                                     
001520   e20b     BC        0x1538                                                                                          
                                                {                                                                              F:\MCP\projects\CAN\canBase\Source\Main.c
001522   7282     BTG       0x82,0x1,0x0            LED0_IO=~LED0_IO;                                                             F:\MCP\projects\CAN\canBase\Source\Main.c
001524   ec76     CALL      0x16ec,0x0              t = tickGet();                                                                F:\MCP\projects\CAN\canBase\Source\Main.c
001526   f00b                                                                                                               
001528   c012     MOVFF     0x12,0x6e                                                                                       
00152a   f06e                                                                                                               
00152c   c013     MOVFF     0x13,0x6f                                                                                       
00152e   f06f                                                                                                               
001530   c014     MOVFF     0x14,0x70                                                                                       
001532   f070                                                                                                               
001534   c015     MOVFF     0x15,0x71                                                                                       
001536   f071                                                                                                               
                                                }                                                                              F:\MCP\projects\CAN\canBase\Source\Main.c
                                            }                                                                               F:\MCP\projects\CAN\canBase\Source\Main.c
00153a   0e0f     MOVLW     0xf            }                                                                                F:\MCP\projects\CAN\canBase\Source\Main.c
00153c   5ce1     SUBWF     0xe1,0x0,0x0                                                                                    
00153e   e202     BC        0x1544                                                                                          
001540   6ae1     CLRF      0xe1,0x0                                                                                        
001542   52e5     MOVF      0xe5,0x1,0x0                                                                                    
001544   6ee1     MOVWF     0xe1,0x0                                                                                        
001546   52e5     MOVF      0xe5,0x1,0x0                                                                                    
001548   cfe7     MOVFF     0xfe7,0xfd9                                                                                     
00154a   ffd9                                                                                                               
00154c   0012     RETURN    0x0                                                                                             
                                                                                                                            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
00154e   cfda     MOVFF     0xfda,0xfe4    void high_isr(void)                                                              F:\MCP\projects\CAN\canBase\Source\Main.c
001550   ffe4                                                                                                               
001552   cfe2     MOVFF     0xfe2,0xfda                                                                                     
001554   ffda                                                                                                               
001556   cfe9     MOVFF     0xfe9,0xfe4                                                                                     
001558   ffe4                                                                                                               
00155a   cfea     MOVFF     0xfea,0xfe4                                                                                     
00155c   ffe4                                                                                                               
00155e   cff6     MOVFF     0xff6,0xfe4                                                                                     
001560   ffe4                                                                                                               
001562   cff7     MOVFF     0xff7,0xfe4                                                                                     
001564   ffe4                                                                                                               
001566   cff5     MOVFF     0xff5,0xfe4                                                                                     
001568   ffe4                                                                                                               
00156a   cff3     MOVFF     0xff3,0xfe4                                                                                     
00156c   ffe4                                                                                                               
00156e   cff4     MOVFF     0xff4,0xfe4                                                                                     
001570   ffe4                                                                                                               
001572   cffa     MOVFF     0xffa,0xfe4                                                                                     
001574   ffe4                                                                                                               
001576   ee00     LFSR      0x0,0xe                                                                                         
001578   f00e                                                                                                               
00157a   0e0b     MOVLW     0xb                                                                                             
00157c   04e8     DECF      0xe8,0x0,0x0                                                                                    
00157e   e303     BNC       0x1586                                                                                          
001580   cfee     MOVFF     0xfee,0xfe4                                                                                     
001582   ffe4                                                                                                               
001584   d7fb     BRA       0x157c                                                                                          
001586   ee00     LFSR      0x0,0x0                                                                                         
001588   f000                                                                                                               
00158a   0e0e     MOVLW     0xe                                                                                             
00158c   04e8     DECF      0xe8,0x0,0x0                                                                                    
00158e   e303     BNC       0x1596                                                                                          
001590   cfee     MOVFF     0xfee,0xfe4                                                                                     
001592   ffe4                                                                                                               
001594   d7fb     BRA       0x158c                                                                                          
001596   52e6     MOVF      0xe6,0x1,0x0                                                                                    
                                           {                                                                                F:\MCP\projects\CAN\canBase\Source\Main.c
001598   0004     CLRWDT                    ClrWdt();                                                                       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
00159a   ec4d     CALL      0x109a,0x0          canISR();                                                                      F:\MCP\projects\CAN\canBase\Source\Main.c
00159c   f008                                                                                                               
                                            #endif                                                                          F:\MCP\projects\CAN\canBase\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Main.c
00159e   ec80     CALL      0x1700,0x0      tickUpdate();                                                                   F:\MCP\projects\CAN\canBase\Source\Main.c
0015a0   f00b                                                                                                               
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Main.c
0015a2   52e5     MOVF      0xe5,0x1,0x0   }                                                                                F:\MCP\projects\CAN\canBase\Source\Main.c
0015a4   ee00     LFSR      0x0,0xd                                                                                         
0015a6   f00d                                                                                                               
0015a8   0e0e     MOVLW     0xe                                                                                             
0015aa   04e8     DECF      0xe8,0x0,0x0                                                                                    
0015ac   e303     BNC       0x15b4                                                                                          
0015ae   cfe5     MOVFF     0xfe5,0xfed                                                                                     
0015b0   ffed                                                                                                               
0015b2   d7fb     BRA       0x15aa                                                                                          
0015b4   ee00     LFSR      0x0,0x18                                                                                        
0015b6   f018                                                                                                               
0015b8   0e0b     MOVLW     0xb                                                                                             
0015ba   04e8     DECF      0xe8,0x0,0x0                                                                                    
0015bc   e303     BNC       0x15c4                                                                                          
0015be   cfe5     MOVFF     0xfe5,0xfed                                                                                     
0015c0   ffed                                                                                                               
0015c2   d7fb     BRA       0x15ba                                                                                          
0015c4   cfe5     MOVFF     0xfe5,0xffa                                                                                     
0015c6   fffa                                                                                                               
0015c8   cfe5     MOVFF     0xfe5,0xff4                                                                                     
0015ca   fff4                                                                                                               
0015cc   cfe5     MOVFF     0xfe5,0xff3                                                                                     
0015ce   fff3                                                                                                               
0015d0   cfe5     MOVFF     0xfe5,0xff5                                                                                     
0015d2   fff5                                                                                                               
0015d4   cfe5     MOVFF     0xfe5,0xff7                                                                                     
0015d6   fff7                                                                                                               
0015d8   cfe5     MOVFF     0xfe5,0xff6                                                                                     
0015da   fff6                                                                                                               
0015dc   cfe5     MOVFF     0xfe5,0xfea                                                                                     
0015de   ffea                                                                                                               
0015e0   cfe5     MOVFF     0xfe5,0xfe9                                                                                     
0015e2   ffe9                                                                                                               
0015e4   cfe5     MOVFF     0xfe5,0xfda                                                                                     
0015e6   ffda                                                                                                               
0015e8   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
0015ea   cfda     MOVFF     0xfda,0xfe4    void low_isr(void)                                                               F:\MCP\projects\CAN\canBase\Source\Main.c
0015ec   ffe4                                                                                                               
0015ee   cfe2     MOVFF     0xfe2,0xfda                                                                                     
0015f0   ffda                                                                                                               
0015f2   52e6     MOVF      0xe6,0x1,0x0                                                                                    
                                           {                                                                                F:\MCP\projects\CAN\canBase\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Main.c
0015f4   52e5     MOVF      0xe5,0x1,0x0   }                                                                                F:\MCP\projects\CAN\canBase\Source\Main.c
0015f6   cfe5     MOVFF     0xfe5,0xfda                                                                                     
0015f8   ffda                                                                                                               
0015fa   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
0015fc   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
0015fe   8ef2     BSF       0xf2,0x7,0x0       INTCONbits.GIEH = 1;                                                         F:\MCP\projects\CAN\canBase\Source\Main.c
001600   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
001602   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
001604   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
001606   cfd9     MOVFF     0xfd9,0xfe6    void canParse(CAN_MESSAGE cm)                                                    F:\MCP\projects\CAN\canBase\Source\Main.c
001608   ffe6                                                                                                               
00160a   cfe1     MOVFF     0xfe1,0xfd9                                                                                     
00160c   ffd9                                                                                                               
                                           {                                                                                F:\MCP\projects\CAN\canBase\Source\Main.c
00160e   0004     CLRWDT                    ClrWdt();                                                                       F:\MCP\projects\CAN\canBase\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Main.c
001610   0ef0     MOVLW     0xf0            switch(cm.funct)                                                                F:\MCP\projects\CAN\canBase\Source\Main.c
001612   50db     MOVF      0xdb,0x0,0x0                                                                                    
001614   e001     BZ        0x1618                                                                                          
001616   d00d     BRA       0x1632                                                                                          
                                            {                                                                               F:\MCP\projects\CAN\canBase\Source\Main.c
                                                case FUNCT_BOOTLOADER:                                                         F:\MCP\projects\CAN\canBase\Source\Main.c
001618   50d9     MOVF      0xd9,0x0,0x0            if (cm.funcc==FUNCC_BOOT_INIT) { Reset(); }                                   F:\MCP\projects\CAN\canBase\Source\Main.c
00161a   0ff1     ADDLW     0xf1                                                                                            
00161c   6ee9     MOVWF     0xe9,0x0                                                                                        
00161e   0eff     MOVLW     0xff                                                                                            
001620   20da     ADDWFC    0xda,0x0,0x0                                                                                    
001622   6eea     MOVWF     0xea,0x0                                                                                        
001624   0e01     MOVLW     0x1                                                                                             
001626   18ee     XORWF     0xee,0x0,0x0                                                                                    
001628   e101     BNZ       0x162c                                                                                          
00162a   50ed     MOVF      0xed,0x0,0x0                                                                                    
00162c   e101     BNZ       0x1630                                                                                          
00162e   00ff     RESET                                                                                                     
001630   d000     BRA       0x1632              break;                                                                         F:\MCP\projects\CAN\canBase\Source\Main.c
                                            }                                                                               F:\MCP\projects\CAN\canBase\Source\Main.c
001632   52e5     MOVF      0xe5,0x1,0x0   }                                                                                F:\MCP\projects\CAN\canBase\Source\Main.c
001634   cfe7     MOVFF     0xfe7,0xfd9                                                                                     
001636   ffd9                                                                                                               
001638   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   ef8e     GOTO      0x171c             _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   efa7     GOTO      0x154e          _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   eff5     GOTO      0x15ea             _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