Subversion Repositories HomeAutomation

Rev

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

MP2COD 4.02, COFF to COD File Converter
Copyright (c) 2006 Microchip Technology Inc.
Listing File Generated: Tue Nov 14 21:08:48 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
001722   0e79     MOVLW     0x79               TMR0L = TICK_COUNTER_LOW;                                                    F:\MCP\projects\CAN\canBase\Source\Tick.c
001724   6ed6     MOVWF     0xd6,0x0                                                                                        
001726   0efe     MOVLW     0xfe               TMR0H = TICK_COUNTER_HIGH;                                                   F:\MCP\projects\CAN\canBase\Source\Tick.c
001728   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
00172a   0e07     MOVLW     0x7                T0CON = 0b00000000 | TIMER_PRESCALE;                                         F:\MCP\projects\CAN\canBase\Source\Tick.c
00172c   6ed5     MOVWF     0xd5,0x0                                                                                        
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Tick.c
                                               // Start the timer.                                                          F:\MCP\projects\CAN\canBase\Source\Tick.c
00172e   8ed5     BSF       0xd5,0x7,0x0       T0CONbits.TMR0ON = 1;                                                        F:\MCP\projects\CAN\canBase\Source\Tick.c
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Tick.c
001730   84f2     BSF       0xf2,0x2,0x0       INTCONbits.TMR0IF = 1;                                                       F:\MCP\projects\CAN\canBase\Source\Tick.c
001732   8af2     BSF       0xf2,0x5,0x0       INTCONbits.TMR0IE = 1;                                                       F:\MCP\projects\CAN\canBase\Source\Tick.c
001734   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
001736   c072     MOVFF     0x72,0x12          return TickCount;                                                            F:\MCP\projects\CAN\canBase\Source\Tick.c
001738   f012                                                                                                               
00173a   c073     MOVFF     0x73,0x13                                                                                       
00173c   f013                                                                                                               
00173e   c074     MOVFF     0x74,0x14                                                                                       
001740   f014                                                                                                               
001742   c075     MOVFF     0x75,0x15                                                                                       
001744   f015                                                                                                               
001746   d000     BRA       0x1748                                                                                          
001748   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
00174a   a4f2     BTFSS     0xf2,0x2,0x0       if(INTCONbits.TMR0IF)                                                        F:\MCP\projects\CAN\canBase\Source\Tick.c
00174c   d00b     BRA       0x1764                                                                                          
                                               {                                                                            F:\MCP\projects\CAN\canBase\Source\Tick.c
00174e   0efe     MOVLW     0xfe                   TMR0H = TICK_COUNTER_HIGH;                                               F:\MCP\projects\CAN\canBase\Source\Tick.c
001750   6ed7     MOVWF     0xd7,0x0                                                                                        
001752   0e79     MOVLW     0x79                   TMR0L = TICK_COUNTER_LOW;                                                F:\MCP\projects\CAN\canBase\Source\Tick.c
001754   6ed6     MOVWF     0xd6,0x0                                                                                        
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Tick.c
001756   0100     MOVLB     0x0                    TickCount++;                                                             F:\MCP\projects\CAN\canBase\Source\Tick.c
001758   2b72     INCF      0x72,0x1,0x1                                                                                    
00175a   0e00     MOVLW     0x0                                                                                             
00175c   2373     ADDWFC    0x73,0x1,0x1                                                                                    
00175e   2374     ADDWFC    0x74,0x1,0x1                                                                                    
001760   2375     ADDWFC    0x75,0x1,0x1                                                                                    
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Tick.c
001762   94f2     BCF       0xf2,0x2,0x0           INTCONbits.TMR0IF = 0;                                                   F:\MCP\projects\CAN\canBase\Source\Tick.c
                                               }                                                                            F:\MCP\projects\CAN\canBase\Source\Tick.c
001764   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   8e77     BSF       0x77,0x7,0x0    ECANCONbits.MDSEL1 = 1; // 0  For mode 1                                        F:\MCP\projects\CAN\canBase\Source\CAN.c
00107a   9c77     BCF       0x77,0x6,0x0    ECANCONbits.MDSEL0 = 0; // 1  For mode 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
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   e016     BZ        0x10d8                                                                                          
                                            {                                                                               F:\MCP\projects\CAN\canBase\Source\CAN.c
0010ac   0e0f     MOVLW     0xf                 ECANCON=(ECANCON&0b00000)|(0b10000|(CANCON&0x0F));                             F:\MCP\projects\CAN\canBase\Source\CAN.c
0010ae   146f     ANDWF     0x6f,0x0,0x0                                                                                    
0010b0   0910     IORLW     0x10                                                                                            
0010b2   6e00     MOVWF     0x0,0x0                                                                                         
0010b4   0e00     MOVLW     0x0                                                                                             
0010b6   1477     ANDWF     0x77,0x0,0x0                                                                                    
0010b8   1000     IORWF     0x0,0x0,0x0                                                                                     
0010ba   6e77     MOVWF     0x77,0x0                                                                                        
0010bc   be60     BTFSC     0x60,0x7,0x0        if (RXB0CONbits.RXFUL) canGetPacket();                                         F:\MCP\projects\CAN\canBase\Source\CAN.c
0010be   d80d     RCALL     0x10da                                                                                          
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
0010c0   a2a4     BTFSS     0xa4,0x1,0x0        if (PIR3bits.RXBnIF) {PIR3bits.RXBnIF = 0; return;}                            F:\MCP\projects\CAN\canBase\Source\CAN.c
0010c2   d002     BRA       0x10c8                                                                                          
0010c4   92a4     BCF       0xa4,0x1,0x0                                                                                    
0010c6   d008     BRA       0x10d8                                                                                          
0010c8   a2a4     BTFSS     0xa4,0x1,0x0        if (PIR3bits.RXB1IF) {PIR3bits.RXB1IF = 0; return;}                            F:\MCP\projects\CAN\canBase\Source\CAN.c
0010ca   d002     BRA       0x10d0                                                                                          
0010cc   92a4     BCF       0xa4,0x1,0x0                                                                                    
0010ce   d004     BRA       0x10d8                                                                                          
0010d0   a0a4     BTFSS     0xa4,0x0,0x0        if (PIR3bits.RXB0IF) {PIR3bits.RXB0IF = 0; return;}                            F:\MCP\projects\CAN\canBase\Source\CAN.c
0010d2   d002     BRA       0x10d8                                                                                          
0010d4   90a4     BCF       0xa4,0x0,0x0                                                                                    
0010d6   d000     BRA       0x10d8                                                                                          
                                            }                                                                               F:\MCP\projects\CAN\canBase\Source\CAN.c
0010d8   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
0010da   cfd9     MOVFF     0xfd9,0xfe6    void canGetPacket()                                                              F:\MCP\projects\CAN\canBase\Source\CAN.c
0010dc   ffe6                                                                                                               
0010de   cfe1     MOVFF     0xfe1,0xfd9                                                                                     
0010e0   ffd9                                                                                                               
0010e2   0e0f     MOVLW     0xf                                                                                             
0010e4   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
0010e6   0ef0     MOVLW     0xf0                    cm.funct=((RXB0SIDH & 0xF0)>>4);                                         F:\MCP\projects\CAN\canBase\Source\CAN.c
0010e8   1461     ANDWF     0x61,0x0,0x0                                                                                    
0010ea   38e8     SWAPF     0xe8,0x0,0x0                                                                                    
0010ec   0b0f     ANDLW     0xf                                                                                             
0010ee   6edf     MOVWF     0xdf,0x0                                                                                        
0010f0   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
0010f2   1461     ANDWF     0x61,0x0,0x0                                                                                    
0010f4   6e06     MOVWF     0x6,0x0                                                                                         
0010f6   6a07     CLRF      0x7,0x0                                                                                         
0010f8   0e06     MOVLW     0x6                                                                                             
0010fa   90d8     BCF       0xd8,0x0,0x0                                                                                    
0010fc   3606     RLCF      0x6,0x1,0x0                                                                                     
0010fe   3607     RLCF      0x7,0x1,0x0                                                                                     
001100   04e8     DECF      0xe8,0x0,0x0                                                                                    
001102   e1fb     BNZ       0x10fa                                                                                          
001104   0ee0     MOVLW     0xe0                                                                                            
001106   1462     ANDWF     0x62,0x0,0x0                                                                                    
001108   6e08     MOVWF     0x8,0x0                                                                                         
00110a   6a09     CLRF      0x9,0x0                                                                                         
00110c   90d8     BCF       0xd8,0x0,0x0                                                                                    
00110e   3209     RRCF      0x9,0x1,0x0                                                                                     
001110   3208     RRCF      0x8,0x1,0x0                                                                                     
001112   90d8     BCF       0xd8,0x0,0x0                                                                                    
001114   3209     RRCF      0x9,0x1,0x0                                                                                     
001116   3208     RRCF      0x8,0x1,0x0                                                                                     
001118   5006     MOVF      0x6,0x0,0x0                                                                                     
00111a   2408     ADDWF     0x8,0x0,0x0                                                                                     
00111c   6e04     MOVWF     0x4,0x0                                                                                         
00111e   5007     MOVF      0x7,0x0,0x0                                                                                     
001120   2009     ADDWFC    0x9,0x0,0x0                                                                                     
001122   6e05     MOVWF     0x5,0x0                                                                                         
001124   0e03     MOVLW     0x3                                                                                             
001126   1462     ANDWF     0x62,0x0,0x0                                                                                    
001128   6e0a     MOVWF     0xa,0x0                                                                                         
00112a   6a0b     CLRF      0xb,0x0                                                                                         
00112c   90d8     BCF       0xd8,0x0,0x0                                                                                    
00112e   360a     RLCF      0xa,0x1,0x0                                                                                     
001130   360b     RLCF      0xb,0x1,0x0                                                                                     
001132   5004     MOVF      0x4,0x0,0x0                                                                                     
001134   240a     ADDWF     0xa,0x0,0x0                                                                                     
001136   6e02     MOVWF     0x2,0x0                                                                                         
001138   5005     MOVF      0x5,0x0,0x0                                                                                     
00113a   200b     ADDWFC    0xb,0x0,0x0                                                                                     
00113c   6e03     MOVWF     0x3,0x0                                                                                         
00113e   0e80     MOVLW     0x80                                                                                            
001140   1463     ANDWF     0x63,0x0,0x0                                                                                    
001142   6e0c     MOVWF     0xc,0x0                                                                                         
001144   6a0d     CLRF      0xd,0x0                                                                                         
001146   0e07     MOVLW     0x7                                                                                             
001148   90d8     BCF       0xd8,0x0,0x0                                                                                    
00114a   320d     RRCF      0xd,0x1,0x0                                                                                     
00114c   320c     RRCF      0xc,0x1,0x0                                                                                     
00114e   04e8     DECF      0xe8,0x0,0x0                                                                                    
001150   e1fb     BNZ       0x1148                                                                                          
001152   5002     MOVF      0x2,0x0,0x0                                                                                     
001154   240c     ADDWF     0xc,0x0,0x0                                                                                     
001156   6e00     MOVWF     0x0,0x0                                                                                         
001158   5003     MOVF      0x3,0x0,0x0                                                                                     
00115a   200d     ADDWFC    0xd,0x0,0x0                                                                                     
00115c   6e01     MOVWF     0x1,0x0                                                                                         
00115e   0e01     MOVLW     0x1                                                                                             
001160   c000     MOVFF     0x0,0xfdb                                                                                       
001162   ffdb                                                                                                               
001164   0e02     MOVLW     0x2                                                                                             
001166   c001     MOVFF     0x1,0xfdb                                                                                       
001168   ffdb                                                                                                               
00116a   0e7e     MOVLW     0x7e                   cm.nid=((RXB0EIDH & 0x7E)>>1);                                           F:\MCP\projects\CAN\canBase\Source\CAN.c
00116c   1463     ANDWF     0x63,0x0,0x0                                                                                    
00116e   40e8     RRNCF     0xe8,0x0,0x0                                                                                    
001170   0b7f     ANDLW     0x7f                                                                                            
001172   6ee7     MOVWF     0xe7,0x0                                                                                        
001174   0e03     MOVLW     0x3                                                                                             
001176   cfe7     MOVFF     0xfe7,0xfdb                                                                                     
001178   ffdb                                                                                                               
00117a   0e01     MOVLW     0x1                    cm.sid=(((WORD)(RXB0EIDH & 0x01))<<8)+RXB0EIDL;                          F:\MCP\projects\CAN\canBase\Source\CAN.c
00117c   1463     ANDWF     0x63,0x0,0x0                                                                                    
00117e   6e02     MOVWF     0x2,0x0                                                                                         
001180   c002     MOVFF     0x2,0x3                                                                                         
001182   f003                                                                                                               
001184   6a02     CLRF      0x2,0x0                                                                                         
001186   5064     MOVF      0x64,0x0,0x0                                                                                    
001188   0100     MOVLB     0x0                                                                                             
00118a   2402     ADDWF     0x2,0x0,0x0                                                                                     
00118c   6e00     MOVWF     0x0,0x0                                                                                         
00118e   0e00     MOVLW     0x0                                                                                             
001190   2003     ADDWFC    0x3,0x0,0x0                                                                                     
001192   6e01     MOVWF     0x1,0x0                                                                                         
001194   0e04     MOVLW     0x4                                                                                             
001196   c000     MOVFF     0x0,0xfdb                                                                                       
001198   ffdb                                                                                                               
00119a   0e05     MOVLW     0x5                                                                                             
00119c   c001     MOVFF     0x1,0xfdb                                                                                       
00119e   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
0011a0   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
0011a2   0b01     ANDLW     0x1                                                                                             
0011a4   6e02     MOVWF     0x2,0x0                                                                                         
0011a6   5065     MOVF      0x65,0x0,0x0                                                                                    
0011a8   0b02     ANDLW     0x2                                                                                             
0011aa   e001     BZ        0x11ae                                                                                          
0011ac   0e01     MOVLW     0x1                                                                                             
0011ae   24e8     ADDWF     0xe8,0x0,0x0                                                                                    
0011b0   6e01     MOVWF     0x1,0x0                                                                                         
0011b2   5065     MOVF      0x65,0x0,0x0                                                                                    
0011b4   0b04     ANDLW     0x4                                                                                             
0011b6   e001     BZ        0x11ba                                                                                          
0011b8   0e01     MOVLW     0x1                                                                                             
0011ba   0d04     MULLW     0x4                                                                                             
0011bc   cff3     MOVFF     0xff3,0x0                                                                                       
0011be   f000                                                                                                               
0011c0   5065     MOVF      0x65,0x0,0x0                                                                                    
0011c2   0b08     ANDLW     0x8                                                                                             
0011c4   e001     BZ        0x11c8                                                                                          
0011c6   0e01     MOVLW     0x1                                                                                             
0011c8   0d08     MULLW     0x8                                                                                             
0011ca   50f3     MOVF      0xf3,0x0,0x0                                                                                    
0011cc   2400     ADDWF     0x0,0x0,0x0                                                                                     
0011ce   2401     ADDWF     0x1,0x0,0x0                                                                                     
0011d0   2402     ADDWF     0x2,0x0,0x0                                                                                     
0011d2   6ee7     MOVWF     0xe7,0x0                                                                                        
0011d4   0e06     MOVLW     0x6                                                                                             
0011d6   cfe7     MOVFF     0xfe7,0xfdb                                                                                     
0011d8   ffdb                                                                                                               
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
                                                // Data one bye one, for speed                                                 F:\MCP\projects\CAN\canBase\Source\CAN.c
0011da   0e07     MOVLW     0x7                 cm.data[0]=RXB0D0;  cm.data[1]=RXB0D1;                                          F:\MCP\projects\CAN\canBase\Source\CAN.c
0011dc   cf66     MOVFF     0xf66,0xfdb                                                                                     
0011de   ffdb                                                                                                               
0011e0   0e08     MOVLW     0x8                                                                                             
0011e2   cf67     MOVFF     0xf67,0xfdb                                                                                     
0011e4   ffdb                                                                                                               
0011e6   0e09     MOVLW     0x9                 cm.data[2]=RXB0D2;  cm.data[3]=RXB0D3;                                         F:\MCP\projects\CAN\canBase\Source\CAN.c
0011e8   cf68     MOVFF     0xf68,0xfdb                                                                                     
0011ea   ffdb                                                                                                               
0011ec   0e0a     MOVLW     0xa                                                                                             
0011ee   cf69     MOVFF     0xf69,0xfdb                                                                                     
0011f0   ffdb                                                                                                               
0011f2   0e0b     MOVLW     0xb                 cm.data[4]=RXB0D4;  cm.data[5]=RXB0D5;                                         F:\MCP\projects\CAN\canBase\Source\CAN.c
0011f4   cf6a     MOVFF     0xf6a,0xfdb                                                                                     
0011f6   ffdb                                                                                                               
0011f8   0e0c     MOVLW     0xc                                                                                             
0011fa   cf6b     MOVFF     0xf6b,0xfdb                                                                                     
0011fc   ffdb                                                                                                               
0011fe   0e0d     MOVLW     0xd                 cm.data[6]=RXB0D6;  cm.data[7]=RXB0D7;                                         F:\MCP\projects\CAN\canBase\Source\CAN.c
001200   cf6c     MOVFF     0xf6c,0xfdb                                                                                     
001202   ffdb                                                                                                               
001204   0e0e     MOVLW     0xe                                                                                             
001206   cf6d     MOVFF     0xf6d,0xfdb                                                                                     
001208   ffdb                                                                                                               
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
                                                // Clear ful status                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
00120a   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
00120c   cfd9     MOVFF     0xfd9,0xfe9         canParse(cm);                                                                  F:\MCP\projects\CAN\canBase\Source\CAN.c
00120e   ffe9                                                                                                               
001210   cfda     MOVFF     0xfda,0xfea                                                                                     
001212   ffea                                                                                                               
001214   cfee     MOVFF     0xfee,0xfe6                                                                                     
001216   ffe6                                                                                                               
001218   cfee     MOVFF     0xfee,0xfe6                                                                                     
00121a   ffe6                                                                                                               
00121c   cfee     MOVFF     0xfee,0xfe6                                                                                     
00121e   ffe6                                                                                                               
001220   cfee     MOVFF     0xfee,0xfe6                                                                                     
001222   ffe6                                                                                                               
001224   cfee     MOVFF     0xfee,0xfe6                                                                                     
001226   ffe6                                                                                                               
001228   cfee     MOVFF     0xfee,0xfe6                                                                                     
00122a   ffe6                                                                                                               
00122c   cfee     MOVFF     0xfee,0xfe6                                                                                     
00122e   ffe6                                                                                                               
001230   cfee     MOVFF     0xfee,0xfe6                                                                                     
001232   ffe6                                                                                                               
001234   cfee     MOVFF     0xfee,0xfe6                                                                                     
001236   ffe6                                                                                                               
001238   cfee     MOVFF     0xfee,0xfe6                                                                                     
00123a   ffe6                                                                                                               
00123c   cfee     MOVFF     0xfee,0xfe6                                                                                     
00123e   ffe6                                                                                                               
001240   cfee     MOVFF     0xfee,0xfe6                                                                                     
001242   ffe6                                                                                                               
001244   cfee     MOVFF     0xfee,0xfe6                                                                                     
001246   ffe6                                                                                                               
001248   cfee     MOVFF     0xfee,0xfe6                                                                                     
00124a   ffe6                                                                                                               
00124c   cfee     MOVFF     0xfee,0xfe6                                                                                     
00124e   ffe6                                                                                                               
001250   ecd2     CALL      0x15a4,0x0                                                                                      
001252   f00a                                                                                                               
001254   6e00     MOVWF     0x0,0x0                                                                                         
001256   0e0f     MOVLW     0xf                                                                                             
001258   5ee1     SUBWF     0xe1,0x1,0x0                                                                                    
00125a   5000     MOVF      0x0,0x0,0x0                                                                                     
00125c   0e0f     MOVLW     0xf            }                                                                                F:\MCP\projects\CAN\canBase\Source\CAN.c
00125e   5ce1     SUBWF     0xe1,0x0,0x0                                                                                    
001260   e202     BC        0x1266                                                                                          
001262   6ae1     CLRF      0xe1,0x0                                                                                        
001264   52e5     MOVF      0xe5,0x1,0x0                                                                                    
001266   6ee1     MOVWF     0xe1,0x0                                                                                        
001268   52e5     MOVF      0xe5,0x1,0x0                                                                                    
00126a   cfe7     MOVFF     0xfe7,0xfd9                                                                                     
00126c   ffd9                                                                                                               
00126e   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
001270   cfd9     MOVFF     0xfd9,0xfe6    BOOL canSendMessage(CAN_MESSAGE cm,CAN_PRIORITY prio)                            F:\MCP\projects\CAN\canBase\Source\CAN.c
001272   ffe6                                                                                                               
001274   cfe1     MOVFF     0xfe1,0xfd9                                                                                     
001276   ffd9                                                                                                               
                                           {                                                                                F:\MCP\projects\CAN\canBase\Source\CAN.c
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
001278   010f     MOVLB     0xf             if ( TXB0CONbits.TXREQ == 0 )  { ECANCON=(ECANCON&0b00000)|0b00011; }           F:\MCP\projects\CAN\canBase\Source\CAN.c
00127a   b740     BTFSC     0x40,0x3,0x1                                                                                    
00127c   d004     BRA       0x1286                                                                                          
00127e   0e00     MOVLW     0x0                                                                                             
001280   1477     ANDWF     0x77,0x0,0x0                                                                                    
001282   0903     IORLW     0x3                                                                                             
001284   6e77     MOVWF     0x77,0x0                                                                                        
001286   010f     MOVLB     0xf             if ( TXB1CONbits.TXREQ == 0 )  { ECANCON=(ECANCON&0b00000)|0b00100; }           F:\MCP\projects\CAN\canBase\Source\CAN.c
001288   b730     BTFSC     0x30,0x3,0x1                                                                                    
00128a   d004     BRA       0x1294                                                                                          
00128c   0e00     MOVLW     0x0                                                                                             
00128e   1477     ANDWF     0x77,0x0,0x0                                                                                    
001290   0904     IORLW     0x4                                                                                             
001292   6e77     MOVWF     0x77,0x0                                                                                        
001294   010f     MOVLB     0xf             if ( TXB2CONbits.TXREQ == 0 )  { ECANCON=(ECANCON&0b00000)|0b00101; }           F:\MCP\projects\CAN\canBase\Source\CAN.c
001296   b720     BTFSC     0x20,0x3,0x1                                                                                    
001298   d005     BRA       0x12a4                                                                                          
00129a   0e00     MOVLW     0x0                                                                                             
00129c   1477     ANDWF     0x77,0x0,0x0                                                                                    
00129e   0905     IORLW     0x5                                                                                             
0012a0   6e77     MOVWF     0x77,0x0                                                                                        
                                            // None of the transmit buffers were empty.                                     F:\MCP\projects\CAN\canBase\Source\CAN.c
0012a2   d002     BRA       0x12a8          else { return FALSE;}                                                           F:\MCP\projects\CAN\canBase\Source\CAN.c
0012a4   0e00     MOVLW     0x0                                                                                             
0012a6   d0b0     BRA       0x1408                                                                                          
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
0012a8   0eef     MOVLW     0xef            if (prio<0 || prio>3) prio = 0;                                                 F:\MCP\projects\CAN\canBase\Source\CAN.c
0012aa   cfdb     MOVFF     0xfdb,0x0                                                                                       
0012ac   f000                                                                                                               
0012ae   3400     RLCF      0x0,0x0,0x0                                                                                     
0012b0   e20e     BC        0x12ce                                                                                          
0012b2   0eef     MOVLW     0xef                                                                                            
0012b4   cfdb     MOVFF     0xfdb,0x1                                                                                       
0012b6   f001                                                                                                               
0012b8   0e03     MOVLW     0x3                                                                                             
0012ba   6ee7     MOVWF     0xe7,0x0                                                                                        
0012bc   1801     XORWF     0x1,0x0,0x0                                                                                     
0012be   aee8     BTFSS     0xe8,0x7,0x0                                                                                    
0012c0   d002     BRA       0x12c6                                                                                          
0012c2   3401     RLCF      0x1,0x0,0x0                                                                                     
0012c4   d003     BRA       0x12cc                                                                                          
0012c6   50e7     MOVF      0xe7,0x0,0x0                                                                                    
0012c8   80d8     BSF       0xd8,0x0,0x0                                                                                    
0012ca   5401     SUBFWB    0x1,0x0,0x0                                                                                     
0012cc   e202     BC        0x12d2                                                                                          
0012ce   0eef     MOVLW     0xef                                                                                            
0012d0   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
0012d2   0ef1     MOVLW     0xf1                RXB0SIDH = (BYTE)((cm.funct & 0x0F)<<4)+(BYTE)((cm.funcc & 0x03C0)>>6);        F:\MCP\projects\CAN\canBase\Source\CAN.c
0012d4   cfdb     MOVFF     0xfdb,0x0                                                                                       
0012d6   f000                                                                                                               
0012d8   0ef2     MOVLW     0xf2                                                                                            
0012da   cfdb     MOVFF     0xfdb,0x1                                                                                       
0012dc   f001                                                                                                               
0012de   0ec0     MOVLW     0xc0                                                                                            
0012e0   1600     ANDWF     0x0,0x1,0x0                                                                                     
0012e2   0e03     MOVLW     0x3                                                                                             
0012e4   1601     ANDWF     0x1,0x1,0x0                                                                                     
0012e6   0e06     MOVLW     0x6                                                                                             
0012e8   90d8     BCF       0xd8,0x0,0x0                                                                                    
0012ea   3201     RRCF      0x1,0x1,0x0                                                                                     
0012ec   3200     RRCF      0x0,0x1,0x0                                                                                     
0012ee   04e8     DECF      0xe8,0x0,0x0                                                                                    
0012f0   e1fb     BNZ       0x12e8                                                                                          
0012f2   0ef0     MOVLW     0xf0                                                                                            
0012f4   50db     MOVF      0xdb,0x0,0x0                                                                                    
0012f6   0b0f     ANDLW     0xf                                                                                             
0012f8   0d10     MULLW     0x10                                                                                            
0012fa   50f3     MOVF      0xf3,0x0,0x0                                                                                    
0012fc   2400     ADDWF     0x0,0x0,0x0                                                                                     
0012fe   6e61     MOVWF     0x61,0x0                                                                                        
001300   0e06     MOVLW     0x6                 RXB0SIDL = (BYTE)((cm.funcc & 0x003F)<<2)+(BYTE)((cm.funcc & 0x0006)>>1);      F:\MCP\projects\CAN\canBase\Source\CAN.c
001302   6ee7     MOVWF     0xe7,0x0                                                                                        
001304   0ef1     MOVLW     0xf1                                                                                            
001306   cfdb     MOVFF     0xfdb,0x2                                                                                       
001308   f002                                                                                                               
00130a   0ef2     MOVLW     0xf2                                                                                            
00130c   cfdb     MOVFF     0xfdb,0x3                                                                                       
00130e   f003                                                                                                               
001310   50e7     MOVF      0xe7,0x0,0x0                                                                                    
001312   1602     ANDWF     0x2,0x1,0x0                                                                                     
001314   6a03     CLRF      0x3,0x0                                                                                         
001316   90d8     BCF       0xd8,0x0,0x0                                                                                    
001318   3203     RRCF      0x3,0x1,0x0                                                                                     
00131a   3202     RRCF      0x2,0x1,0x0                                                                                     
00131c   0e3f     MOVLW     0x3f                                                                                            
00131e   6ee7     MOVWF     0xe7,0x0                                                                                        
001320   0ef1     MOVLW     0xf1                                                                                            
001322   cfdb     MOVFF     0xfdb,0x0                                                                                       
001324   f000                                                                                                               
001326   0ef2     MOVLW     0xf2                                                                                            
001328   cfdb     MOVFF     0xfdb,0x1                                                                                       
00132a   f001                                                                                                               
00132c   50e7     MOVF      0xe7,0x0,0x0                                                                                    
00132e   1600     ANDWF     0x0,0x1,0x0                                                                                     
001330   6a01     CLRF      0x1,0x0                                                                                         
001332   90d8     BCF       0xd8,0x0,0x0                                                                                    
001334   3600     RLCF      0x0,0x1,0x0                                                                                     
001336   3601     RLCF      0x1,0x1,0x0                                                                                     
001338   90d8     BCF       0xd8,0x0,0x0                                                                                    
00133a   3600     RLCF      0x0,0x1,0x0                                                                                     
00133c   3601     RLCF      0x1,0x1,0x0                                                                                     
00133e   5000     MOVF      0x0,0x0,0x0                                                                                     
001340   2402     ADDWF     0x2,0x0,0x0                                                                                     
001342   6e62     MOVWF     0x62,0x0                                                                                        
001344   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
001346   cfdb     MOVFF     0xfdb,0x2                                                                                       
001348   f002                                                                                                               
00134a   0ef5     MOVLW     0xf5                                                                                            
00134c   cfdb     MOVFF     0xfdb,0x3                                                                                       
00134e   f003                                                                                                               
001350   0e00     MOVLW     0x0                                                                                             
001352   1602     ANDWF     0x2,0x1,0x0                                                                                     
001354   0e01     MOVLW     0x1                                                                                             
001356   1603     ANDWF     0x3,0x1,0x0                                                                                     
001358   c003     MOVFF     0x3,0x2                                                                                         
00135a   f002                                                                                                               
00135c   6a03     CLRF      0x3,0x0                                                                                         
00135e   0e01     MOVLW     0x1                                                                                             
001360   6ee7     MOVWF     0xe7,0x0                                                                                        
001362   0ef1     MOVLW     0xf1                                                                                            
001364   cfdb     MOVFF     0xfdb,0x0                                                                                       
001366   f000                                                                                                               
001368   0ef2     MOVLW     0xf2                                                                                            
00136a   cfdb     MOVFF     0xfdb,0x1                                                                                       
00136c   f001                                                                                                               
00136e   50e7     MOVF      0xe7,0x0,0x0                                                                                    
001370   1600     ANDWF     0x0,0x1,0x0                                                                                     
001372   6a01     CLRF      0x1,0x0                                                                                         
001374   0e07     MOVLW     0x7                                                                                             
001376   90d8     BCF       0xd8,0x0,0x0                                                                                    
001378   3600     RLCF      0x0,0x1,0x0                                                                                     
00137a   3601     RLCF      0x1,0x1,0x0                                                                                     
00137c   04e8     DECF      0xe8,0x0,0x0                                                                                    
00137e   e1fb     BNZ       0x1376                                                                                          
001380   0ef3     MOVLW     0xf3                                                                                            
001382   50db     MOVF      0xdb,0x0,0x0                                                                                    
001384   0b3f     ANDLW     0x3f                                                                                            
001386   24e8     ADDWF     0xe8,0x0,0x0                                                                                    
001388   2400     ADDWF     0x0,0x0,0x0                                                                                     
00138a   2402     ADDWF     0x2,0x0,0x0                                                                                     
00138c   6e63     MOVWF     0x63,0x0                                                                                        
00138e   0eff     MOVLW     0xff                RXB0EIDL = (BYTE)((cm.sid & 0x00FF));                                          F:\MCP\projects\CAN\canBase\Source\CAN.c
001390   6ee7     MOVWF     0xe7,0x0                                                                                        
001392   0ef4     MOVLW     0xf4                                                                                            
001394   cfdb     MOVFF     0xfdb,0x0                                                                                       
001396   f000                                                                                                               
001398   0ef5     MOVLW     0xf5                                                                                            
00139a   cfdb     MOVFF     0xfdb,0x1                                                                                       
00139c   f001                                                                                                               
00139e   50e7     MOVF      0xe7,0x0,0x0                                                                                    
0013a0   1600     ANDWF     0x0,0x1,0x0                                                                                     
0013a2   6a01     CLRF      0x1,0x0                                                                                         
0013a4   5000     MOVF      0x0,0x0,0x0                                                                                     
0013a6   6e64     MOVWF     0x64,0x0                                                                                        
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
                                                // Data length                                                                 F:\MCP\projects\CAN\canBase\Source\CAN.c
0013a8   6a65     CLRF      0x65,0x0            RXB0DLC = 0;                                                                   F:\MCP\projects\CAN\canBase\Source\CAN.c
0013aa   0ef6     MOVLW     0xf6                if (cm.data_length>8) RXB0DLC=8; else RXB0DLC=cm.data_length;                  F:\MCP\projects\CAN\canBase\Source\CAN.c
0013ac   50db     MOVF      0xdb,0x0,0x0                                                                                    
0013ae   0808     SUBLW     0x8                                                                                             
0013b0   e203     BC        0x13b8                                                                                          
0013b2   0e08     MOVLW     0x8                                                                                             
0013b4   6e65     MOVWF     0x65,0x0                                                                                        
0013b6   d003     BRA       0x13be                                                                                          
0013b8   0ef6     MOVLW     0xf6                                                                                            
0013ba   50db     MOVF      0xdb,0x0,0x0                                                                                    
0013bc   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
0013be   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
0013c0   0ef7     MOVLW     0xf7                RXB0D0=cm.data[0];  RXB0D1=cm.data[1];                                          F:\MCP\projects\CAN\canBase\Source\CAN.c
0013c2   50db     MOVF      0xdb,0x0,0x0                                                                                    
0013c4   6e66     MOVWF     0x66,0x0                                                                                        
0013c6   0ef8     MOVLW     0xf8                                                                                            
0013c8   50db     MOVF      0xdb,0x0,0x0                                                                                    
0013ca   6e67     MOVWF     0x67,0x0                                                                                        
0013cc   0ef9     MOVLW     0xf9                RXB0D2=cm.data[2];  RXB0D3=cm.data[3];                                         F:\MCP\projects\CAN\canBase\Source\CAN.c
0013ce   50db     MOVF      0xdb,0x0,0x0                                                                                    
0013d0   6e68     MOVWF     0x68,0x0                                                                                        
0013d2   0efa     MOVLW     0xfa                                                                                            
0013d4   50db     MOVF      0xdb,0x0,0x0                                                                                    
0013d6   6e69     MOVWF     0x69,0x0                                                                                        
0013d8   0efb     MOVLW     0xfb                RXB0D4=cm.data[4];  RXB0D5=cm.data[5];                                         F:\MCP\projects\CAN\canBase\Source\CAN.c
0013da   50db     MOVF      0xdb,0x0,0x0                                                                                    
0013dc   6e6a     MOVWF     0x6a,0x0                                                                                        
0013de   0efc     MOVLW     0xfc                                                                                            
0013e0   50db     MOVF      0xdb,0x0,0x0                                                                                    
0013e2   6e6b     MOVWF     0x6b,0x0                                                                                        
0013e4   0efd     MOVLW     0xfd                RXB0D6=cm.data[6];  RXB0D7=cm.data[7];                                         F:\MCP\projects\CAN\canBase\Source\CAN.c
0013e6   50db     MOVF      0xdb,0x0,0x0                                                                                    
0013e8   6e6c     MOVWF     0x6c,0x0                                                                                        
0013ea   0efe     MOVLW     0xfe                                                                                            
0013ec   50db     MOVF      0xdb,0x0,0x0                                                                                    
0013ee   6e6d     MOVWF     0x6d,0x0                                                                                        
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
                                                // set extended                                                                F:\MCP\projects\CAN\canBase\Source\CAN.c
0013f0   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
0013f2   0eef     MOVLW     0xef                RXB0CON = (RXB0CON & 0b11111100) | prio;                                       F:\MCP\projects\CAN\canBase\Source\CAN.c
0013f4   cfdb     MOVFF     0xfdb,0xfe6                                                                                     
0013f6   ffe6                                                                                                               
0013f8   0efc     MOVLW     0xfc                                                                                            
0013fa   1460     ANDWF     0x60,0x0,0x0                                                                                    
0013fc   52e5     MOVF      0xe5,0x1,0x0                                                                                    
0013fe   10e7     IORWF     0xe7,0x0,0x0                                                                                    
001400   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
001402   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
001404   0e01     MOVLW     0x1                 return TRUE;                                                                   F:\MCP\projects\CAN\canBase\Source\CAN.c
001406   d000     BRA       0x1408                                                                                          
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
001408   52e5     MOVF      0xe5,0x1,0x0   }                                                                                F:\MCP\projects\CAN\canBase\Source\CAN.c
00140a   cfe7     MOVFF     0xfe7,0xfd9                                                                                     
00140c   ffd9                                                                                                               
00140e   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 12:49:56 +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: 90 $                                                    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
                                           #include <funcdefs.h>                                                            F:\MCP\projects\CAN\canBase\Source\Main.c
                                           #include <EEaccess.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
001410   cfd9     MOVFF     0xfd9,0xfe6    void main()                                                                      F:\MCP\projects\CAN\canBase\Source\Main.c
001412   ffe6                                                                                                               
001414   cfe1     MOVFF     0xfe1,0xfd9                                                                                     
001416   ffd9                                                                                                               
001418   0e0f     MOVLW     0xf                                                                                             
00141a   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
00141c   d8be     RCALL     0x159a          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
00141e   ec22     CALL      0x1044,0x0          canInit();                                                                     F:\MCP\projects\CAN\canBase\Source\Main.c
001420   f008                                                                                                               
                                            #endif                                                                          F:\MCP\projects\CAN\canBase\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Main.c
001422   ec91     CALL      0x1722,0x0      tickInit();                                                                     F:\MCP\projects\CAN\canBase\Source\Main.c
001424   f00b                                                                                                               
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Main.c
                                            // Dummy bootmessage                                                            F:\MCP\projects\CAN\canBase\Source\Main.c
001426   0e91     MOVLW     0x91            cm2.data[0]=0x91;                                                               F:\MCP\projects\CAN\canBase\Source\Main.c
001428   6ef3     MOVWF     0xf3,0x0                                                                                        
00142a   0e07     MOVLW     0x7                                                                                             
00142c   cff3     MOVFF     0xff3,0xfdb                                                                                     
00142e   ffdb                                                                                                               
001430   0e01     MOVLW     0x1             cm2.data_length=1;                                                              F:\MCP\projects\CAN\canBase\Source\Main.c
001432   6ef3     MOVWF     0xf3,0x0                                                                                        
001434   0e06     MOVLW     0x6                                                                                             
001436   cff3     MOVFF     0xff3,0xfdb                                                                                     
001438   ffdb                                                                                                               
00143a   0e02     MOVLW     0x2             canSendMessage(cm2,PRIO_HIGH);                                                  F:\MCP\projects\CAN\canBase\Source\Main.c
00143c   6ee6     MOVWF     0xe6,0x0                                                                                        
00143e   cfd9     MOVFF     0xfd9,0xfe9                                                                                     
001440   ffe9                                                                                                               
001442   cfda     MOVFF     0xfda,0xfea                                                                                     
001444   ffea                                                                                                               
001446   cfee     MOVFF     0xfee,0xfe6                                                                                     
001448   ffe6                                                                                                               
00144a   cfee     MOVFF     0xfee,0xfe6                                                                                     
00144c   ffe6                                                                                                               
00144e   cfee     MOVFF     0xfee,0xfe6                                                                                     
001450   ffe6                                                                                                               
001452   cfee     MOVFF     0xfee,0xfe6                                                                                     
001454   ffe6                                                                                                               
001456   cfee     MOVFF     0xfee,0xfe6                                                                                     
001458   ffe6                                                                                                               
00145a   cfee     MOVFF     0xfee,0xfe6                                                                                     
00145c   ffe6                                                                                                               
00145e   cfee     MOVFF     0xfee,0xfe6                                                                                     
001460   ffe6                                                                                                               
001462   cfee     MOVFF     0xfee,0xfe6                                                                                     
001464   ffe6                                                                                                               
001466   cfee     MOVFF     0xfee,0xfe6                                                                                     
001468   ffe6                                                                                                               
00146a   cfee     MOVFF     0xfee,0xfe6                                                                                     
00146c   ffe6                                                                                                               
00146e   cfee     MOVFF     0xfee,0xfe6                                                                                     
001470   ffe6                                                                                                               
001472   cfee     MOVFF     0xfee,0xfe6                                                                                     
001474   ffe6                                                                                                               
001476   cfee     MOVFF     0xfee,0xfe6                                                                                     
001478   ffe6                                                                                                               
00147a   cfee     MOVFF     0xfee,0xfe6                                                                                     
00147c   ffe6                                                                                                               
00147e   cfee     MOVFF     0xfee,0xfe6                                                                                     
001480   ffe6                                                                                                               
001482   ec38     CALL      0x1270,0x0                                                                                      
001484   f009                                                                                                               
001486   6e00     MOVWF     0x0,0x0                                                                                         
001488   0e10     MOVLW     0x10                                                                                            
00148a   5ee1     SUBWF     0xe1,0x1,0x0                                                                                    
00148c   5000     MOVF      0x0,0x0,0x0                                                                                     
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Main.c
0014d6   d7db     BRA       0x148e          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
00148e   ec9b     CALL      0x1736,0x0          if ((tickGet()-t)>TICK_SECOND)                                                 F:\MCP\projects\CAN\canBase\Source\Main.c
001490   f00b                                                                                                               
001492   0100     MOVLB     0x0                                                                                             
001494   516e     MOVF      0x6e,0x0,0x1                                                                                    
001496   5c12     SUBWF     0x12,0x0,0x0                                                                                    
001498   6e00     MOVWF     0x0,0x0                                                                                         
00149a   516f     MOVF      0x6f,0x0,0x1                                                                                    
00149c   5813     SUBWFB    0x13,0x0,0x0                                                                                    
00149e   6e01     MOVWF     0x1,0x0                                                                                         
0014a0   5170     MOVF      0x70,0x0,0x1                                                                                    
0014a2   5814     SUBWFB    0x14,0x0,0x0                                                                                    
0014a4   6e02     MOVWF     0x2,0x0                                                                                         
0014a6   5171     MOVF      0x71,0x0,0x1                                                                                    
0014a8   5815     SUBWFB    0x15,0x0,0x0                                                                                    
0014aa   6e03     MOVWF     0x3,0x0                                                                                         
0014ac   80d8     BSF       0xd8,0x0,0x0                                                                                    
0014ae   0e64     MOVLW     0x64                                                                                            
0014b0   5400     SUBFWB    0x0,0x0,0x0                                                                                     
0014b2   0e00     MOVLW     0x0                                                                                             
0014b4   5401     SUBFWB    0x1,0x0,0x0                                                                                     
0014b6   0e00     MOVLW     0x0                                                                                             
0014b8   5402     SUBFWB    0x2,0x0,0x0                                                                                     
0014ba   0e00     MOVLW     0x0                                                                                             
0014bc   5403     SUBFWB    0x3,0x0,0x0                                                                                     
0014be   e20b     BC        0x14d6                                                                                          
                                                {                                                                              F:\MCP\projects\CAN\canBase\Source\Main.c
0014c0   7282     BTG       0x82,0x1,0x0            LED0_IO=~LED0_IO;                                                             F:\MCP\projects\CAN\canBase\Source\Main.c
0014c2   ec9b     CALL      0x1736,0x0              t = tickGet();                                                                F:\MCP\projects\CAN\canBase\Source\Main.c
0014c4   f00b                                                                                                               
0014c6   c012     MOVFF     0x12,0x6e                                                                                       
0014c8   f06e                                                                                                               
0014ca   c013     MOVFF     0x13,0x6f                                                                                       
0014cc   f06f                                                                                                               
0014ce   c014     MOVFF     0x14,0x70                                                                                       
0014d0   f070                                                                                                               
0014d2   c015     MOVFF     0x15,0x71                                                                                       
0014d4   f071                                                                                                               
                                                }                                                                              F:\MCP\projects\CAN\canBase\Source\Main.c
                                            }                                                                               F:\MCP\projects\CAN\canBase\Source\Main.c
0014d8   0e0f     MOVLW     0xf            }                                                                                F:\MCP\projects\CAN\canBase\Source\Main.c
0014da   5ce1     SUBWF     0xe1,0x0,0x0                                                                                    
0014dc   e202     BC        0x14e2                                                                                          
0014de   6ae1     CLRF      0xe1,0x0                                                                                        
0014e0   52e5     MOVF      0xe5,0x1,0x0                                                                                    
0014e2   6ee1     MOVWF     0xe1,0x0                                                                                        
0014e4   52e5     MOVF      0xe5,0x1,0x0                                                                                    
0014e6   cfe7     MOVFF     0xfe7,0xfd9                                                                                     
0014e8   ffd9                                                                                                               
0014ea   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
0014ec   cfda     MOVFF     0xfda,0xfe4    void high_isr(void)                                                              F:\MCP\projects\CAN\canBase\Source\Main.c
0014ee   ffe4                                                                                                               
0014f0   cfe2     MOVFF     0xfe2,0xfda                                                                                     
0014f2   ffda                                                                                                               
0014f4   cfe9     MOVFF     0xfe9,0xfe4                                                                                     
0014f6   ffe4                                                                                                               
0014f8   cfea     MOVFF     0xfea,0xfe4                                                                                     
0014fa   ffe4                                                                                                               
0014fc   cff6     MOVFF     0xff6,0xfe4                                                                                     
0014fe   ffe4                                                                                                               
001500   cff7     MOVFF     0xff7,0xfe4                                                                                     
001502   ffe4                                                                                                               
001504   cff5     MOVFF     0xff5,0xfe4                                                                                     
001506   ffe4                                                                                                               
001508   cff3     MOVFF     0xff3,0xfe4                                                                                     
00150a   ffe4                                                                                                               
00150c   cff4     MOVFF     0xff4,0xfe4                                                                                     
00150e   ffe4                                                                                                               
001510   cffa     MOVFF     0xffa,0xfe4                                                                                     
001512   ffe4                                                                                                               
001514   ee00     LFSR      0x0,0xe                                                                                         
001516   f00e                                                                                                               
001518   0e0b     MOVLW     0xb                                                                                             
00151a   04e8     DECF      0xe8,0x0,0x0                                                                                    
00151c   e303     BNC       0x1524                                                                                          
00151e   cfee     MOVFF     0xfee,0xfe4                                                                                     
001520   ffe4                                                                                                               
001522   d7fb     BRA       0x151a                                                                                          
001524   ee00     LFSR      0x0,0x0                                                                                         
001526   f000                                                                                                               
001528   0e0e     MOVLW     0xe                                                                                             
00152a   04e8     DECF      0xe8,0x0,0x0                                                                                    
00152c   e303     BNC       0x1534                                                                                          
00152e   cfee     MOVFF     0xfee,0xfe4                                                                                     
001530   ffe4                                                                                                               
001532   d7fb     BRA       0x152a                                                                                          
001534   52e6     MOVF      0xe6,0x1,0x0                                                                                    
                                           {                                                                                F:\MCP\projects\CAN\canBase\Source\Main.c
001536   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
001538   ec4d     CALL      0x109a,0x0          canISR();                                                                      F:\MCP\projects\CAN\canBase\Source\Main.c
00153a   f008                                                                                                               
                                            #endif                                                                          F:\MCP\projects\CAN\canBase\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Main.c
00153c   eca5     CALL      0x174a,0x0      tickUpdate();                                                                   F:\MCP\projects\CAN\canBase\Source\Main.c
00153e   f00b                                                                                                               
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Main.c
001540   52e5     MOVF      0xe5,0x1,0x0   }                                                                                F:\MCP\projects\CAN\canBase\Source\Main.c
001542   ee00     LFSR      0x0,0xd                                                                                         
001544   f00d                                                                                                               
001546   0e0e     MOVLW     0xe                                                                                             
001548   04e8     DECF      0xe8,0x0,0x0                                                                                    
00154a   e303     BNC       0x1552                                                                                          
00154c   cfe5     MOVFF     0xfe5,0xfed                                                                                     
00154e   ffed                                                                                                               
001550   d7fb     BRA       0x1548                                                                                          
001552   ee00     LFSR      0x0,0x18                                                                                        
001554   f018                                                                                                               
001556   0e0b     MOVLW     0xb                                                                                             
001558   04e8     DECF      0xe8,0x0,0x0                                                                                    
00155a   e303     BNC       0x1562                                                                                          
00155c   cfe5     MOVFF     0xfe5,0xfed                                                                                     
00155e   ffed                                                                                                               
001560   d7fb     BRA       0x1558                                                                                          
001562   cfe5     MOVFF     0xfe5,0xffa                                                                                     
001564   fffa                                                                                                               
001566   cfe5     MOVFF     0xfe5,0xff4                                                                                     
001568   fff4                                                                                                               
00156a   cfe5     MOVFF     0xfe5,0xff3                                                                                     
00156c   fff3                                                                                                               
00156e   cfe5     MOVFF     0xfe5,0xff5                                                                                     
001570   fff5                                                                                                               
001572   cfe5     MOVFF     0xfe5,0xff7                                                                                     
001574   fff7                                                                                                               
001576   cfe5     MOVFF     0xfe5,0xff6                                                                                     
001578   fff6                                                                                                               
00157a   cfe5     MOVFF     0xfe5,0xfea                                                                                     
00157c   ffea                                                                                                               
00157e   cfe5     MOVFF     0xfe5,0xfe9                                                                                     
001580   ffe9                                                                                                               
001582   cfe5     MOVFF     0xfe5,0xfda                                                                                     
001584   ffda                                                                                                               
001586   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
001588   cfda     MOVFF     0xfda,0xfe4    void low_isr(void)                                                               F:\MCP\projects\CAN\canBase\Source\Main.c
00158a   ffe4                                                                                                               
00158c   cfe2     MOVFF     0xfe2,0xfda                                                                                     
00158e   ffda                                                                                                               
001590   52e6     MOVF      0xe6,0x1,0x0                                                                                    
                                           {                                                                                F:\MCP\projects\CAN\canBase\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Main.c
001592   52e5     MOVF      0xe5,0x1,0x0   }                                                                                F:\MCP\projects\CAN\canBase\Source\Main.c
001594   cfe5     MOVFF     0xfe5,0xfda                                                                                     
001596   ffda                                                                                                               
001598   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
00159a   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
00159c   8ef2     BSF       0xf2,0x7,0x0       INTCONbits.GIEH = 1;                                                         F:\MCP\projects\CAN\canBase\Source\Main.c
00159e   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
0015a0   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
0015a2   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
0015a4   cfd9     MOVFF     0xfd9,0xfe6    void canParse(CAN_MESSAGE cm)                                                    F:\MCP\projects\CAN\canBase\Source\Main.c
0015a6   ffe6                                                                                                               
0015a8   cfe1     MOVFF     0xfe1,0xfd9                                                                                     
0015aa   ffd9                                                                                                               
                                           {                                                                                F:\MCP\projects\CAN\canBase\Source\Main.c
0015ac   0004     CLRWDT                    ClrWdt();                                                                       F:\MCP\projects\CAN\canBase\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Main.c
0015ae   0ef0     MOVLW     0xf0            switch(cm.funct)                                                                F:\MCP\projects\CAN\canBase\Source\Main.c
0015b0   50db     MOVF      0xdb,0x0,0x0                                                                                    
0015b2   e001     BZ        0x15b6                                                                                          
0015b4   d00d     BRA       0x15d0                                                                                          
                                            {                                                                               F:\MCP\projects\CAN\canBase\Source\Main.c
                                                case FUNCT_BOOTLOADER:                                                         F:\MCP\projects\CAN\canBase\Source\Main.c
0015b6   50d9     MOVF      0xd9,0x0,0x0            if (cm.funcc==FUNCC_BOOT_INIT) { Reset(); }                                   F:\MCP\projects\CAN\canBase\Source\Main.c
0015b8   0ff1     ADDLW     0xf1                                                                                            
0015ba   6ee9     MOVWF     0xe9,0x0                                                                                        
0015bc   0eff     MOVLW     0xff                                                                                            
0015be   20da     ADDWFC    0xda,0x0,0x0                                                                                    
0015c0   6eea     MOVWF     0xea,0x0                                                                                        
0015c2   0e01     MOVLW     0x1                                                                                             
0015c4   18ee     XORWF     0xee,0x0,0x0                                                                                    
0015c6   e101     BNZ       0x15ca                                                                                          
0015c8   50ed     MOVF      0xed,0x0,0x0                                                                                    
0015ca   e101     BNZ       0x15ce                                                                                          
0015cc   00ff     RESET                                                                                                     
0015ce   d000     BRA       0x15d0              break;                                                                         F:\MCP\projects\CAN\canBase\Source\Main.c
                                            }                                                                               F:\MCP\projects\CAN\canBase\Source\Main.c
0015d0   52e5     MOVF      0xe5,0x1,0x0   }                                                                                F:\MCP\projects\CAN\canBase\Source\Main.c
0015d2   cfe7     MOVFF     0xfe7,0xfd9                                                                                     
0015d4   ffd9                                                                                                               
0015d6   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   efb3     GOTO      0x1766             _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   ef76     GOTO      0x14ec          _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   efc4     GOTO      0x1588             _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
                                           /*********************************************************************           F:\MCP\projects\CAN\Include\EEAccess.c
                                            *                                                                               F:\MCP\projects\CAN\Include\EEAccess.c
                                            *   Functions for reading and writing to EEPROM.                                F:\MCP\projects\CAN\Include\EEAccess.c
                                            *                                                                               F:\MCP\projects\CAN\Include\EEAccess.c
                                            *********************************************************************           F:\MCP\projects\CAN\Include\EEAccess.c
                                            * FileName:         $HeadURL: http://svn.arune.se/svn/HomeAutomation/trunk/EmbeddedSoftware/PIC/Include/EEAccess.c $ F:\MCP\projects\CAN\Include\EEAccess.c
                                            * Last changed: $LastChangedDate: 2006-11-14 20:15:02 +0100 (ti, 14 nov 2006) $ F:\MCP\projects\CAN\Include\EEAccess.c
                                            * By:           $LastChangedBy: johboh $                                                F:\MCP\projects\CAN\Include\EEAccess.c
                                            * Revision:     $Revision: 94 $                                                    F:\MCP\projects\CAN\Include\EEAccess.c
                                            ********************************************************************/           F:\MCP\projects\CAN\Include\EEAccess.c
                                           #include <p18cxxx.h>                                                             F:\MCP\projects\CAN\Include\EEAccess.c
                                           #include <EEaccess.h>                                                            F:\MCP\projects\CAN\Include\EEAccess.c
                                                                                                                            F:\MCP\projects\CAN\Include\EEAccess.c
0015d8   cfd9     MOVFF     0xfd9,0xfe6    BYTE EERead(WORD addr)                                                           F:\MCP\projects\CAN\Include\EEAccess.c
0015da   ffe6                                                                                                               
0015dc   cfe1     MOVFF     0xfe1,0xfd9                                                                                     
0015de   ffd9                                                                                                               
                                           {                                                                                F:\MCP\projects\CAN\Include\EEAccess.c
0015e0   0efd     MOVLW     0xfd            EEADRH=(BYTE)(addr>>8);                                                         F:\MCP\projects\CAN\Include\EEAccess.c
0015e2   cfdb     MOVFF     0xfdb,0x0                                                                                       
0015e4   f000                                                                                                               
0015e6   0efe     MOVLW     0xfe                                                                                            
0015e8   cfdb     MOVFF     0xfdb,0x1                                                                                       
0015ea   f001                                                                                                               
0015ec   c001     MOVFF     0x1,0x0                                                                                         
0015ee   f000                                                                                                               
0015f0   6a01     CLRF      0x1,0x0                                                                                         
0015f2   5000     MOVF      0x0,0x0,0x0                                                                                     
0015f4   6eaa     MOVWF     0xaa,0x0                                                                                        
0015f6   0eff     MOVLW     0xff            EEADR=(BYTE)(addr & 0xFF);                                                      F:\MCP\projects\CAN\Include\EEAccess.c
0015f8   6ee7     MOVWF     0xe7,0x0                                                                                        
0015fa   0efd     MOVLW     0xfd                                                                                            
0015fc   cfdb     MOVFF     0xfdb,0x0                                                                                       
0015fe   f000                                                                                                               
001600   0efe     MOVLW     0xfe                                                                                            
001602   cfdb     MOVFF     0xfdb,0x1                                                                                       
001604   f001                                                                                                               
001606   50e7     MOVF      0xe7,0x0,0x0                                                                                    
001608   1600     ANDWF     0x0,0x1,0x0                                                                                     
00160a   6a01     CLRF      0x1,0x0                                                                                         
00160c   5000     MOVF      0x0,0x0,0x0                                                                                     
00160e   6ea9     MOVWF     0xa9,0x0                                                                                        
001610   9ea6     BCF       0xa6,0x7,0x0    EECON1bits.EEPGD=0;                                                             F:\MCP\projects\CAN\Include\EEAccess.c
001612   9ca6     BCF       0xa6,0x6,0x0    EECON1bits.CFGS=0;                                                              F:\MCP\projects\CAN\Include\EEAccess.c
001614   80a6     BSF       0xa6,0x0,0x0    EECON1bits.RD=1;                                                                F:\MCP\projects\CAN\Include\EEAccess.c
001616   50a8     MOVF      0xa8,0x0,0x0    return EEDATA;                                                                   F:\MCP\projects\CAN\Include\EEAccess.c
001618   d000     BRA       0x161a                                                                                          
00161a   52e5     MOVF      0xe5,0x1,0x0   }                                                                                F:\MCP\projects\CAN\Include\EEAccess.c
00161c   cfe7     MOVFF     0xfe7,0xfd9                                                                                     
00161e   ffd9                                                                                                               
001620   0012     RETURN    0x0                                                                                             
                                                                                                                            F:\MCP\projects\CAN\Include\EEAccess.c
                                                                                                                            F:\MCP\projects\CAN\Include\EEAccess.c
001622   cfd9     MOVFF     0xfd9,0xfe6    void EEWrite(WORD addr,BYTE data)                                                F:\MCP\projects\CAN\Include\EEAccess.c
001624   ffe6                                                                                                               
001626   cfe1     MOVFF     0xfe1,0xfd9                                                                                     
001628   ffd9                                                                                                               
                                           {                                                                                F:\MCP\projects\CAN\Include\EEAccess.c
00162a   98a1     BCF       0xa1,0x4,0x0    PIR2bits.EEIF=0;                                                                F:\MCP\projects\CAN\Include\EEAccess.c
00162c   0efd     MOVLW     0xfd            EEADRH=(BYTE)(addr>>8);                                                         F:\MCP\projects\CAN\Include\EEAccess.c
00162e   cfdb     MOVFF     0xfdb,0x0                                                                                       
001630   f000                                                                                                               
001632   0efe     MOVLW     0xfe                                                                                            
001634   cfdb     MOVFF     0xfdb,0x1                                                                                       
001636   f001                                                                                                               
001638   c001     MOVFF     0x1,0x0                                                                                         
00163a   f000                                                                                                               
00163c   6a01     CLRF      0x1,0x0                                                                                         
00163e   5000     MOVF      0x0,0x0,0x0                                                                                     
001640   6eaa     MOVWF     0xaa,0x0                                                                                        
001642   0eff     MOVLW     0xff            EEADR=(BYTE)(addr & 0xFF);                                                      F:\MCP\projects\CAN\Include\EEAccess.c
001644   6ee7     MOVWF     0xe7,0x0                                                                                        
001646   0efd     MOVLW     0xfd                                                                                            
001648   cfdb     MOVFF     0xfdb,0x0                                                                                       
00164a   f000                                                                                                               
00164c   0efe     MOVLW     0xfe                                                                                            
00164e   cfdb     MOVFF     0xfdb,0x1                                                                                       
001650   f001                                                                                                               
001652   50e7     MOVF      0xe7,0x0,0x0                                                                                    
001654   1600     ANDWF     0x0,0x1,0x0                                                                                     
001656   6a01     CLRF      0x1,0x0                                                                                         
001658   5000     MOVF      0x0,0x0,0x0                                                                                     
00165a   6ea9     MOVWF     0xa9,0x0                                                                                        
00165c   0efc     MOVLW     0xfc            EEDATA=data;                                                                    F:\MCP\projects\CAN\Include\EEAccess.c
00165e   50db     MOVF      0xdb,0x0,0x0                                                                                    
001660   6ea8     MOVWF     0xa8,0x0                                                                                        
001662   9ea6     BCF       0xa6,0x7,0x0    EECON1bits.EEPGD=0;                                                             F:\MCP\projects\CAN\Include\EEAccess.c
001664   9ca6     BCF       0xa6,0x6,0x0    EECON1bits.CFGS=0;                                                              F:\MCP\projects\CAN\Include\EEAccess.c
001666   84a6     BSF       0xa6,0x2,0x0    EECON1bits.WREN=1;                                                              F:\MCP\projects\CAN\Include\EEAccess.c
001668   9ef2     BCF       0xf2,0x7,0x0    INTCONbits.GIE=0;                                                               F:\MCP\projects\CAN\Include\EEAccess.c
00166a   0e55     MOVLW     0x55            EECON2=0x55;                                                                    F:\MCP\projects\CAN\Include\EEAccess.c
00166c   6ea7     MOVWF     0xa7,0x0                                                                                        
00166e   0eaa     MOVLW     0xaa            EECON2=0xAA;                                                                    F:\MCP\projects\CAN\Include\EEAccess.c
001670   6ea7     MOVWF     0xa7,0x0                                                                                        
001672   82a6     BSF       0xa6,0x1,0x0    EECON1bits.WR=1;                                                                F:\MCP\projects\CAN\Include\EEAccess.c
001674   8ef2     BSF       0xf2,0x7,0x0    INTCONbits.GIE=1;                                                               F:\MCP\projects\CAN\Include\EEAccess.c
001676   a8a1     BTFSS     0xa1,0x4,0x0    while(!PIR2bits.EEIF);                                                          F:\MCP\projects\CAN\Include\EEAccess.c
001678   d7fe     BRA       0x1676                                                                                          
00167a   94a6     BCF       0xa6,0x2,0x0    EECON1bits.WREN=0;                                                              F:\MCP\projects\CAN\Include\EEAccess.c
00167c   52e5     MOVF      0xe5,0x1,0x0   }                                                                                F:\MCP\projects\CAN\Include\EEAccess.c
00167e   cfe7     MOVFF     0xfe7,0xfd9                                                                                     
001680   ffd9                                                                                                               
001682   0012     RETURN    0x0