Subversion Repositories HomeAutomation

Rev

Rev 100 | 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: Wed Nov 15 10:03:00 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
001846   0e79     MOVLW     0x79               TMR0L = TICK_COUNTER_LOW;                                                    F:\MCP\projects\CAN\canBase\Source\Tick.c
001848   6ed6     MOVWF     0xd6,0x0                                                                                        
00184a   0efe     MOVLW     0xfe               TMR0H = TICK_COUNTER_HIGH;                                                   F:\MCP\projects\CAN\canBase\Source\Tick.c
00184c   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
00184e   0e07     MOVLW     0x7                T0CON = 0b00000000 | TIMER_PRESCALE;                                         F:\MCP\projects\CAN\canBase\Source\Tick.c
001850   6ed5     MOVWF     0xd5,0x0                                                                                        
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Tick.c
                                               // Start the timer.                                                          F:\MCP\projects\CAN\canBase\Source\Tick.c
001852   8ed5     BSF       0xd5,0x7,0x0       T0CONbits.TMR0ON = 1;                                                        F:\MCP\projects\CAN\canBase\Source\Tick.c
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Tick.c
001854   84f2     BSF       0xf2,0x2,0x0       INTCONbits.TMR0IF = 1;                                                       F:\MCP\projects\CAN\canBase\Source\Tick.c
001856   8af2     BSF       0xf2,0x5,0x0       INTCONbits.TMR0IE = 1;                                                       F:\MCP\projects\CAN\canBase\Source\Tick.c
001858   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
00185a   c075     MOVFF     0x75,0x12          return TickCount;                                                            F:\MCP\projects\CAN\canBase\Source\Tick.c
00185c   f012                                                                                                               
00185e   c076     MOVFF     0x76,0x13                                                                                       
001860   f013                                                                                                               
001862   c077     MOVFF     0x77,0x14                                                                                       
001864   f014                                                                                                               
001866   c078     MOVFF     0x78,0x15                                                                                       
001868   f015                                                                                                               
00186a   d000     BRA       0x186c                                                                                          
00186c   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
00186e   a4f2     BTFSS     0xf2,0x2,0x0       if(INTCONbits.TMR0IF)                                                        F:\MCP\projects\CAN\canBase\Source\Tick.c
001870   d00b     BRA       0x1888                                                                                          
                                               {                                                                            F:\MCP\projects\CAN\canBase\Source\Tick.c
001872   0efe     MOVLW     0xfe                   TMR0H = TICK_COUNTER_HIGH;                                               F:\MCP\projects\CAN\canBase\Source\Tick.c
001874   6ed7     MOVWF     0xd7,0x0                                                                                        
001876   0e79     MOVLW     0x79                   TMR0L = TICK_COUNTER_LOW;                                                F:\MCP\projects\CAN\canBase\Source\Tick.c
001878   6ed6     MOVWF     0xd6,0x0                                                                                        
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Tick.c
00187a   0100     MOVLB     0x0                    TickCount++;                                                             F:\MCP\projects\CAN\canBase\Source\Tick.c
00187c   2b75     INCF      0x75,0x1,0x1                                                                                    
00187e   0e00     MOVLW     0x0                                                                                             
001880   2376     ADDWFC    0x76,0x1,0x1                                                                                    
001882   2377     ADDWFC    0x77,0x1,0x1                                                                                    
001884   2378     ADDWFC    0x78,0x1,0x1                                                                                    
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Tick.c
001886   94f2     BCF       0xf2,0x2,0x0           INTCONbits.TMR0IF = 0;                                                   F:\MCP\projects\CAN\canBase\Source\Tick.c
                                               }                                                                            F:\MCP\projects\CAN\canBase\Source\Tick.c
001888   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 21:11:28 +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: 95 $                                                    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   ec06     CALL      0x160c,0x0                                                                                      
001252   f00b                                                                                                               
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-15 09:40:52 +0100 (on, 15 nov 2006) $ F:\MCP\projects\CAN\canBase\Source\Main.c
                                            * By:               $LastChangedBy: johboh $                                               F:\MCP\projects\CAN\canBase\Source\Main.c
                                            * Revision:     $Revision: 100 $                                                   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
                                           static int MY_ID = DEFAULT_ID;                                                   F:\MCP\projects\CAN\canBase\Source\Main.c
                                           static BYTE MY_NID = DEFAULT_NID;                                                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   d8f2     RCALL     0x1602          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   ec23     CALL      0x1846,0x0      tickInit();                                                                     F:\MCP\projects\CAN\canBase\Source\Main.c
001424   f00c                                                                                                               
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Main.c
                                            // Read ID and NID if exist.                                                    F:\MCP\projects\CAN\canBase\Source\Main.c
001426   0e00     MOVLW     0x0             if (EERead(NODE_ID_EE)==NODE_HAS_ID)                                            F:\MCP\projects\CAN\canBase\Source\Main.c
001428   6ee6     MOVWF     0xe6,0x0                                                                                        
00142a   6ae6     CLRF      0xe6,0x0                                                                                        
00142c   ec7e     CALL      0x16fc,0x0                                                                                      
00142e   f00b                                                                                                               
001430   52e5     MOVF      0xe5,0x1,0x0                                                                                    
001432   52e5     MOVF      0xe5,0x1,0x0                                                                                    
001434   082a     SUBLW     0x2a                                                                                            
001436   e12b     BNZ       0x148e                                                                                          
                                            {                                                                               F:\MCP\projects\CAN\canBase\Source\Main.c
001438   0e01     MOVLW     0x1                 MY_ID=(((WORD)EERead(NODE_ID_EE + 1))<<8)+EERead(NODE_ID_EE + 2);              F:\MCP\projects\CAN\canBase\Source\Main.c
00143a   6ee6     MOVWF     0xe6,0x0                                                                                        
00143c   6ae6     CLRF      0xe6,0x0                                                                                        
00143e   ec7e     CALL      0x16fc,0x0                                                                                      
001440   f00b                                                                                                               
001442   52e5     MOVF      0xe5,0x1,0x0                                                                                    
001444   52e5     MOVF      0xe5,0x1,0x0                                                                                    
001446   6e00     MOVWF     0x0,0x0                                                                                         
001448   c000     MOVFF     0x0,0x1                                                                                         
00144a   f001                                                                                                               
00144c   6a00     CLRF      0x0,0x0                                                                                         
00144e   c000     MOVFF     0x0,0xfe6                                                                                       
001450   ffe6                                                                                                               
001452   c001     MOVFF     0x1,0xfe6                                                                                       
001454   ffe6                                                                                                               
001456   0e02     MOVLW     0x2                                                                                             
001458   6ee6     MOVWF     0xe6,0x0                                                                                        
00145a   6ae6     CLRF      0xe6,0x0                                                                                        
00145c   ec7e     CALL      0x16fc,0x0                                                                                      
00145e   f00b                                                                                                               
001460   52e5     MOVF      0xe5,0x1,0x0                                                                                    
001462   52e5     MOVF      0xe5,0x1,0x0                                                                                    
001464   52e5     MOVF      0xe5,0x1,0x0                                                                                    
001466   cfe7     MOVFF     0xfe7,0x1                                                                                       
001468   f001                                                                                                               
00146a   52e5     MOVF      0xe5,0x1,0x0                                                                                    
00146c   cfe7     MOVFF     0xfe7,0x0                                                                                       
00146e   f000                                                                                                               
001470   0100     MOVLB     0x0                                                                                             
001472   2400     ADDWF     0x0,0x0,0x0                                                                                     
001474   6f60     MOVWF     0x60,0x1                                                                                        
001476   0e00     MOVLW     0x0                                                                                             
001478   2001     ADDWFC    0x1,0x0,0x0                                                                                     
00147a   6f61     MOVWF     0x61,0x1                                                                                        
00147c   0e03     MOVLW     0x3                 MY_NID=EERead(NODE_ID_EE + 3);                                                 F:\MCP\projects\CAN\canBase\Source\Main.c
00147e   6ee6     MOVWF     0xe6,0x0                                                                                        
001480   6ae6     CLRF      0xe6,0x0                                                                                        
001482   ec7e     CALL      0x16fc,0x0                                                                                      
001484   f00b                                                                                                               
001486   52e5     MOVF      0xe5,0x1,0x0                                                                                    
001488   52e5     MOVF      0xe5,0x1,0x0                                                                                    
00148a   0100     MOVLB     0x0                                                                                             
00148c   6f62     MOVWF     0x62,0x1                                                                                        
                                            }                                                                               F:\MCP\projects\CAN\canBase\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Main.c
                                            // Dummy bootmessage                                                            F:\MCP\projects\CAN\canBase\Source\Main.c
00148e   0e91     MOVLW     0x91            cm2.data[0]=0x91;                                                               F:\MCP\projects\CAN\canBase\Source\Main.c
001490   6ef3     MOVWF     0xf3,0x0                                                                                        
001492   0e07     MOVLW     0x7                                                                                             
001494   cff3     MOVFF     0xff3,0xfdb                                                                                     
001496   ffdb                                                                                                               
001498   0e01     MOVLW     0x1             cm2.data_length=1;                                                              F:\MCP\projects\CAN\canBase\Source\Main.c
00149a   6ef3     MOVWF     0xf3,0x0                                                                                        
00149c   0e06     MOVLW     0x6                                                                                             
00149e   cff3     MOVFF     0xff3,0xfdb                                                                                     
0014a0   ffdb                                                                                                               
0014a2   0e02     MOVLW     0x2             canSendMessage(cm2,PRIO_HIGH);                                                  F:\MCP\projects\CAN\canBase\Source\Main.c
0014a4   6ee6     MOVWF     0xe6,0x0                                                                                        
0014a6   cfd9     MOVFF     0xfd9,0xfe9                                                                                     
0014a8   ffe9                                                                                                               
0014aa   cfda     MOVFF     0xfda,0xfea                                                                                     
0014ac   ffea                                                                                                               
0014ae   cfee     MOVFF     0xfee,0xfe6                                                                                     
0014b0   ffe6                                                                                                               
0014b2   cfee     MOVFF     0xfee,0xfe6                                                                                     
0014b4   ffe6                                                                                                               
0014b6   cfee     MOVFF     0xfee,0xfe6                                                                                     
0014b8   ffe6                                                                                                               
0014ba   cfee     MOVFF     0xfee,0xfe6                                                                                     
0014bc   ffe6                                                                                                               
0014be   cfee     MOVFF     0xfee,0xfe6                                                                                     
0014c0   ffe6                                                                                                               
0014c2   cfee     MOVFF     0xfee,0xfe6                                                                                     
0014c4   ffe6                                                                                                               
0014c6   cfee     MOVFF     0xfee,0xfe6                                                                                     
0014c8   ffe6                                                                                                               
0014ca   cfee     MOVFF     0xfee,0xfe6                                                                                     
0014cc   ffe6                                                                                                               
0014ce   cfee     MOVFF     0xfee,0xfe6                                                                                     
0014d0   ffe6                                                                                                               
0014d2   cfee     MOVFF     0xfee,0xfe6                                                                                     
0014d4   ffe6                                                                                                               
0014d6   cfee     MOVFF     0xfee,0xfe6                                                                                     
0014d8   ffe6                                                                                                               
0014da   cfee     MOVFF     0xfee,0xfe6                                                                                     
0014dc   ffe6                                                                                                               
0014de   cfee     MOVFF     0xfee,0xfe6                                                                                     
0014e0   ffe6                                                                                                               
0014e2   cfee     MOVFF     0xfee,0xfe6                                                                                     
0014e4   ffe6                                                                                                               
0014e6   cfee     MOVFF     0xfee,0xfe6                                                                                     
0014e8   ffe6                                                                                                               
0014ea   ec38     CALL      0x1270,0x0                                                                                      
0014ec   f009                                                                                                               
0014ee   6e00     MOVWF     0x0,0x0                                                                                         
0014f0   0e10     MOVLW     0x10                                                                                            
0014f2   5ee1     SUBWF     0xe1,0x1,0x0                                                                                    
0014f4   5000     MOVF      0x0,0x0,0x0                                                                                     
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Main.c
00153e   d7db     BRA       0x14f6          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
0014f6   ec2d     CALL      0x185a,0x0          if ((tickGet()-t)>TICK_SECOND)                                                 F:\MCP\projects\CAN\canBase\Source\Main.c
0014f8   f00c                                                                                                               
0014fa   0100     MOVLB     0x0                                                                                             
0014fc   5167     MOVF      0x67,0x0,0x1                                                                                    
0014fe   5c12     SUBWF     0x12,0x0,0x0                                                                                    
001500   6e00     MOVWF     0x0,0x0                                                                                         
001502   5168     MOVF      0x68,0x0,0x1                                                                                    
001504   5813     SUBWFB    0x13,0x0,0x0                                                                                    
001506   6e01     MOVWF     0x1,0x0                                                                                         
001508   5169     MOVF      0x69,0x0,0x1                                                                                    
00150a   5814     SUBWFB    0x14,0x0,0x0                                                                                    
00150c   6e02     MOVWF     0x2,0x0                                                                                         
00150e   516a     MOVF      0x6a,0x0,0x1                                                                                    
001510   5815     SUBWFB    0x15,0x0,0x0                                                                                    
001512   6e03     MOVWF     0x3,0x0                                                                                         
001514   80d8     BSF       0xd8,0x0,0x0                                                                                    
001516   0e64     MOVLW     0x64                                                                                            
001518   5400     SUBFWB    0x0,0x0,0x0                                                                                     
00151a   0e00     MOVLW     0x0                                                                                             
00151c   5401     SUBFWB    0x1,0x0,0x0                                                                                     
00151e   0e00     MOVLW     0x0                                                                                             
001520   5402     SUBFWB    0x2,0x0,0x0                                                                                     
001522   0e00     MOVLW     0x0                                                                                             
001524   5403     SUBFWB    0x3,0x0,0x0                                                                                     
001526   e20b     BC        0x153e                                                                                          
                                                {                                                                              F:\MCP\projects\CAN\canBase\Source\Main.c
001528   7282     BTG       0x82,0x1,0x0            LED0_IO=~LED0_IO;                                                             F:\MCP\projects\CAN\canBase\Source\Main.c
00152a   ec2d     CALL      0x185a,0x0              t = tickGet();                                                                F:\MCP\projects\CAN\canBase\Source\Main.c
00152c   f00c                                                                                                               
00152e   c012     MOVFF     0x12,0x67                                                                                       
001530   f067                                                                                                               
001532   c013     MOVFF     0x13,0x68                                                                                       
001534   f068                                                                                                               
001536   c014     MOVFF     0x14,0x69                                                                                       
001538   f069                                                                                                               
00153a   c015     MOVFF     0x15,0x6a                                                                                       
00153c   f06a                                                                                                               
                                                }                                                                              F:\MCP\projects\CAN\canBase\Source\Main.c
                                            }                                                                               F:\MCP\projects\CAN\canBase\Source\Main.c
001540   0e0f     MOVLW     0xf            }                                                                                F:\MCP\projects\CAN\canBase\Source\Main.c
001542   5ce1     SUBWF     0xe1,0x0,0x0                                                                                    
001544   e202     BC        0x154a                                                                                          
001546   6ae1     CLRF      0xe1,0x0                                                                                        
001548   52e5     MOVF      0xe5,0x1,0x0                                                                                    
00154a   6ee1     MOVWF     0xe1,0x0                                                                                        
00154c   52e5     MOVF      0xe5,0x1,0x0                                                                                    
00154e   cfe7     MOVFF     0xfe7,0xfd9                                                                                     
001550   ffd9                                                                                                               
001552   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
001554   cfda     MOVFF     0xfda,0xfe4    void high_isr(void)                                                              F:\MCP\projects\CAN\canBase\Source\Main.c
001556   ffe4                                                                                                               
001558   cfe2     MOVFF     0xfe2,0xfda                                                                                     
00155a   ffda                                                                                                               
00155c   cfe9     MOVFF     0xfe9,0xfe4                                                                                     
00155e   ffe4                                                                                                               
001560   cfea     MOVFF     0xfea,0xfe4                                                                                     
001562   ffe4                                                                                                               
001564   cff6     MOVFF     0xff6,0xfe4                                                                                     
001566   ffe4                                                                                                               
001568   cff7     MOVFF     0xff7,0xfe4                                                                                     
00156a   ffe4                                                                                                               
00156c   cff5     MOVFF     0xff5,0xfe4                                                                                     
00156e   ffe4                                                                                                               
001570   cff3     MOVFF     0xff3,0xfe4                                                                                     
001572   ffe4                                                                                                               
001574   cff4     MOVFF     0xff4,0xfe4                                                                                     
001576   ffe4                                                                                                               
001578   cffa     MOVFF     0xffa,0xfe4                                                                                     
00157a   ffe4                                                                                                               
00157c   ee00     LFSR      0x0,0xe                                                                                         
00157e   f00e                                                                                                               
001580   0e0b     MOVLW     0xb                                                                                             
001582   04e8     DECF      0xe8,0x0,0x0                                                                                    
001584   e303     BNC       0x158c                                                                                          
001586   cfee     MOVFF     0xfee,0xfe4                                                                                     
001588   ffe4                                                                                                               
00158a   d7fb     BRA       0x1582                                                                                          
00158c   ee00     LFSR      0x0,0x0                                                                                         
00158e   f000                                                                                                               
001590   0e0e     MOVLW     0xe                                                                                             
001592   04e8     DECF      0xe8,0x0,0x0                                                                                    
001594   e303     BNC       0x159c                                                                                          
001596   cfee     MOVFF     0xfee,0xfe4                                                                                     
001598   ffe4                                                                                                               
00159a   d7fb     BRA       0x1592                                                                                          
00159c   52e6     MOVF      0xe6,0x1,0x0                                                                                    
                                           {                                                                                F:\MCP\projects\CAN\canBase\Source\Main.c
00159e   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
0015a0   ec4d     CALL      0x109a,0x0          canISR();                                                                      F:\MCP\projects\CAN\canBase\Source\Main.c
0015a2   f008                                                                                                               
                                            #endif                                                                          F:\MCP\projects\CAN\canBase\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Main.c
0015a4   ec37     CALL      0x186e,0x0      tickUpdate();                                                                   F:\MCP\projects\CAN\canBase\Source\Main.c
0015a6   f00c                                                                                                               
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Main.c
0015a8   52e5     MOVF      0xe5,0x1,0x0   }                                                                                F:\MCP\projects\CAN\canBase\Source\Main.c
0015aa   ee00     LFSR      0x0,0xd                                                                                         
0015ac   f00d                                                                                                               
0015ae   0e0e     MOVLW     0xe                                                                                             
0015b0   04e8     DECF      0xe8,0x0,0x0                                                                                    
0015b2   e303     BNC       0x15ba                                                                                          
0015b4   cfe5     MOVFF     0xfe5,0xfed                                                                                     
0015b6   ffed                                                                                                               
0015b8   d7fb     BRA       0x15b0                                                                                          
0015ba   ee00     LFSR      0x0,0x18                                                                                        
0015bc   f018                                                                                                               
0015be   0e0b     MOVLW     0xb                                                                                             
0015c0   04e8     DECF      0xe8,0x0,0x0                                                                                    
0015c2   e303     BNC       0x15ca                                                                                          
0015c4   cfe5     MOVFF     0xfe5,0xfed                                                                                     
0015c6   ffed                                                                                                               
0015c8   d7fb     BRA       0x15c0                                                                                          
0015ca   cfe5     MOVFF     0xfe5,0xffa                                                                                     
0015cc   fffa                                                                                                               
0015ce   cfe5     MOVFF     0xfe5,0xff4                                                                                     
0015d0   fff4                                                                                                               
0015d2   cfe5     MOVFF     0xfe5,0xff3                                                                                     
0015d4   fff3                                                                                                               
0015d6   cfe5     MOVFF     0xfe5,0xff5                                                                                     
0015d8   fff5                                                                                                               
0015da   cfe5     MOVFF     0xfe5,0xff7                                                                                     
0015dc   fff7                                                                                                               
0015de   cfe5     MOVFF     0xfe5,0xff6                                                                                     
0015e0   fff6                                                                                                               
0015e2   cfe5     MOVFF     0xfe5,0xfea                                                                                     
0015e4   ffea                                                                                                               
0015e6   cfe5     MOVFF     0xfe5,0xfe9                                                                                     
0015e8   ffe9                                                                                                               
0015ea   cfe5     MOVFF     0xfe5,0xfda                                                                                     
0015ec   ffda                                                                                                               
0015ee   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
0015f0   cfda     MOVFF     0xfda,0xfe4    void low_isr(void)                                                               F:\MCP\projects\CAN\canBase\Source\Main.c
0015f2   ffe4                                                                                                               
0015f4   cfe2     MOVFF     0xfe2,0xfda                                                                                     
0015f6   ffda                                                                                                               
0015f8   52e6     MOVF      0xe6,0x1,0x0                                                                                    
                                           {                                                                                F:\MCP\projects\CAN\canBase\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Main.c
0015fa   52e5     MOVF      0xe5,0x1,0x0   }                                                                                F:\MCP\projects\CAN\canBase\Source\Main.c
0015fc   cfe5     MOVFF     0xfe5,0xfda                                                                                     
0015fe   ffda                                                                                                               
001600   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
001602   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
001604   8ef2     BSF       0xf2,0x7,0x0       INTCONbits.GIEH = 1;                                                         F:\MCP\projects\CAN\canBase\Source\Main.c
001606   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
001608   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
00160a   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
00160c   cfd9     MOVFF     0xfd9,0xfe6    void canParse(CAN_MESSAGE cm)                                                    F:\MCP\projects\CAN\canBase\Source\Main.c
00160e   ffe6                                                                                                               
001610   cfe1     MOVFF     0xfe1,0xfd9                                                                                     
001612   ffd9                                                                                                               
                                           {                                                                                F:\MCP\projects\CAN\canBase\Source\Main.c
001614   0004     CLRWDT                    ClrWdt();                                                                       F:\MCP\projects\CAN\canBase\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Main.c
001616   0ef0     MOVLW     0xf0            switch(cm.funct)                                                                F:\MCP\projects\CAN\canBase\Source\Main.c
001618   50db     MOVF      0xdb,0x0,0x0                                                                                    
00161a   e001     BZ        0x161e                                                                                          
00161c   d06b     BRA       0x16f4                                                                                          
                                            {                                                                               F:\MCP\projects\CAN\canBase\Source\Main.c
                                                case FUNCT_BOOTLOADER:                                                         F:\MCP\projects\CAN\canBase\Source\Main.c
00161e   0ef3     MOVLW     0xf3                    if (cm.nid==MY_NID && ((((unsigned int)cm.data[BOOT_DATA_RID_HIGH_INDEX])<<8)+cm.data[BOOT_DATA_RID_LOW_INDEX])==MY_ID)  F:\MCP\projects\CAN\canBase\Source\Main.c
001620   50db     MOVF      0xdb,0x0,0x0                                                                                    
001622   0100     MOVLB     0x0                                                                                             
001624   5d62     SUBWF     0x62,0x0,0x1                                                                                    
001626   e165     BNZ       0x16f2                                                                                          
001628   0efc     MOVLW     0xfc                                                                                            
00162a   cfdb     MOVFF     0xfdb,0x2                                                                                       
00162c   f002                                                                                                               
00162e   c002     MOVFF     0x2,0x3                                                                                         
001630   f003                                                                                                               
001632   6a02     CLRF      0x2,0x0                                                                                         
001634   0efb     MOVLW     0xfb                                                                                            
001636   50db     MOVF      0xdb,0x0,0x0                                                                                    
001638   0100     MOVLB     0x0                                                                                             
00163a   2402     ADDWF     0x2,0x0,0x0                                                                                     
00163c   6e00     MOVWF     0x0,0x0                                                                                         
00163e   0e00     MOVLW     0x0                                                                                             
001640   2003     ADDWFC    0x3,0x0,0x0                                                                                     
001642   6e01     MOVWF     0x1,0x0                                                                                         
001644   0100     MOVLB     0x0                                                                                             
001646   5160     MOVF      0x60,0x0,0x1                                                                                    
001648   1800     XORWF     0x0,0x0,0x0                                                                                     
00164a   e102     BNZ       0x1650                                                                                          
00164c   5161     MOVF      0x61,0x0,0x1                                                                                    
00164e   1801     XORWF     0x1,0x0,0x0                                                                                     
001650   e150     BNZ       0x16f2                                                                                          
                                                    {                                                                             F:\MCP\projects\CAN\canBase\Source\Main.c
001652   0ef1     MOVLW     0xf1                        switch(cm.funcc)                                                             F:\MCP\projects\CAN\canBase\Source\Main.c
001654   cfdb     MOVFF     0xfdb,0x14                                                                                      
001656   f014                                                                                                               
001658   0ef2     MOVLW     0xf2                                                                                            
00165a   cfdb     MOVFF     0xfdb,0x15                                                                                      
00165c   f015                                                                                                               
00165e   0e06     MOVLW     0x6                                                                                             
001660   1814     XORWF     0x14,0x0,0x0                                                                                    
001662   e101     BNZ       0x1666                                                                                          
001664   5015     MOVF      0x15,0x0,0x0                                                                                    
001666   e008     BZ        0x1678                                                                                          
001668   0e01     MOVLW     0x1                                                                                             
00166a   1814     XORWF     0x14,0x0,0x0                                                                                    
00166c   e101     BNZ       0x1670                                                                                          
00166e   5015     MOVF      0x15,0x0,0x0                                                                                    
001670   e001     BZ        0x1674                                                                                          
001672   d03f     BRA       0x16f2                                                                                          
                                                        {                                                                            F:\MCP\projects\CAN\canBase\Source\Main.c
001674   00ff     RESET                                     case FUNCC_BOOT_INIT: Reset(); break; //User whant to program me, reset me. F:\MCP\projects\CAN\canBase\Source\Main.c
001676   d03d     BRA       0x16f2                                                                                          
                                                            case FUNCC_BOOT_SET_ID:                                                     F:\MCP\projects\CAN\canBase\Source\Main.c
                                                                // Change my ID and NID                                                    F:\MCP\projects\CAN\canBase\Source\Main.c
001678   0ef8     MOVLW     0xf8                                MY_ID=(((WORD)cm.data[BOOT_DATA_NEW_ID_HIGH])<<8)+cm.data[BOOT_DATA_NEW_ID_LOW]; F:\MCP\projects\CAN\canBase\Source\Main.c
00167a   cfdb     MOVFF     0xfdb,0x0                                                                                       
00167c   f000                                                                                                               
00167e   c000     MOVFF     0x0,0x1                                                                                         
001680   f001                                                                                                               
001682   6a00     CLRF      0x0,0x0                                                                                         
001684   0ef7     MOVLW     0xf7                                                                                            
001686   50db     MOVF      0xdb,0x0,0x0                                                                                    
001688   0100     MOVLB     0x0                                                                                             
00168a   2400     ADDWF     0x0,0x0,0x0                                                                                     
00168c   6f60     MOVWF     0x60,0x1                                                                                        
00168e   0e00     MOVLW     0x0                                                                                             
001690   2001     ADDWFC    0x1,0x0,0x0                                                                                     
001692   6f61     MOVWF     0x61,0x1                                                                                        
001694   0ef9     MOVLW     0xf9                                MY_NID=cm.data[BOOT_DATA_NEW_NID];                                         F:\MCP\projects\CAN\canBase\Source\Main.c
001696   cfdb     MOVFF     0xfdb,0x62                                                                                      
001698   f062                                                                                                               
00169a   0ef8     MOVLW     0xf8                                EEWrite(NODE_ID_EE+1,cm.data[BOOT_DATA_NEW_ID_HIGH]);                      F:\MCP\projects\CAN\canBase\Source\Main.c
00169c   cfdb     MOVFF     0xfdb,0xfe6                                                                                     
00169e   ffe6                                                                                                               
0016a0   0e01     MOVLW     0x1                                                                                             
0016a2   6ee6     MOVWF     0xe6,0x0                                                                                        
0016a4   6ae6     CLRF      0xe6,0x0                                                                                        
0016a6   eca3     CALL      0x1746,0x0                                                                                      
0016a8   f00b                                                                                                               
0016aa   52e5     MOVF      0xe5,0x1,0x0                                                                                    
0016ac   52e5     MOVF      0xe5,0x1,0x0                                                                                    
0016ae   52e5     MOVF      0xe5,0x1,0x0                                                                                    
0016b0   0ef7     MOVLW     0xf7                                EEWrite(NODE_ID_EE+2,cm.data[BOOT_DATA_NEW_ID_LOW]);                       F:\MCP\projects\CAN\canBase\Source\Main.c
0016b2   cfdb     MOVFF     0xfdb,0xfe6                                                                                     
0016b4   ffe6                                                                                                               
0016b6   0e02     MOVLW     0x2                                                                                             
0016b8   6ee6     MOVWF     0xe6,0x0                                                                                        
0016ba   6ae6     CLRF      0xe6,0x0                                                                                        
0016bc   eca3     CALL      0x1746,0x0                                                                                      
0016be   f00b                                                                                                               
0016c0   52e5     MOVF      0xe5,0x1,0x0                                                                                    
0016c2   52e5     MOVF      0xe5,0x1,0x0                                                                                    
0016c4   52e5     MOVF      0xe5,0x1,0x0                                                                                    
0016c6   0ef9     MOVLW     0xf9                                EEWrite(NODE_ID_EE+3,cm.data[BOOT_DATA_NEW_NID]);                          F:\MCP\projects\CAN\canBase\Source\Main.c
0016c8   cfdb     MOVFF     0xfdb,0xfe6                                                                                     
0016ca   ffe6                                                                                                               
0016cc   0e03     MOVLW     0x3                                                                                             
0016ce   6ee6     MOVWF     0xe6,0x0                                                                                        
0016d0   6ae6     CLRF      0xe6,0x0                                                                                        
0016d2   eca3     CALL      0x1746,0x0                                                                                      
0016d4   f00b                                                                                                               
0016d6   52e5     MOVF      0xe5,0x1,0x0                                                                                    
0016d8   52e5     MOVF      0xe5,0x1,0x0                                                                                    
0016da   52e5     MOVF      0xe5,0x1,0x0                                                                                    
0016dc   0e2a     MOVLW     0x2a                                EEWrite(NODE_ID_EE,NODE_HAS_ID);                                           F:\MCP\projects\CAN\canBase\Source\Main.c
0016de   6ee6     MOVWF     0xe6,0x0                                                                                        
0016e0   0e00     MOVLW     0x0                                                                                             
0016e2   6ee6     MOVWF     0xe6,0x0                                                                                        
0016e4   6ae6     CLRF      0xe6,0x0                                                                                        
0016e6   eca3     CALL      0x1746,0x0                                                                                      
0016e8   f00b                                                                                                               
0016ea   52e5     MOVF      0xe5,0x1,0x0                                                                                    
0016ec   52e5     MOVF      0xe5,0x1,0x0                                                                                    
0016ee   52e5     MOVF      0xe5,0x1,0x0                                                                                    
0016f0   d000     BRA       0x16f2                          break;                                                                      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
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Main.c
0016f2   d000     BRA       0x16f4              break;                                                                         F:\MCP\projects\CAN\canBase\Source\Main.c
                                            }                                                                               F:\MCP\projects\CAN\canBase\Source\Main.c
0016f4   52e5     MOVF      0xe5,0x1,0x0   }                                                                                F:\MCP\projects\CAN\canBase\Source\Main.c
0016f6   cfe7     MOVFF     0xfe7,0xfd9                                                                                     
0016f8   ffd9                                                                                                               
0016fa   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   ef45     GOTO      0x188a             _asm goto _startup _endasm                                                   F:\MCP\projects\CAN\canBase\Source\Main.c
001002   f00c                                                                                                               
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   efaa     GOTO      0x1554          _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   eff8     GOTO      0x15f0             _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
0016fc   cfd9     MOVFF     0xfd9,0xfe6    BYTE EERead(WORD addr)                                                           F:\MCP\projects\CAN\Include\EEAccess.c
0016fe   ffe6                                                                                                               
001700   cfe1     MOVFF     0xfe1,0xfd9                                                                                     
001702   ffd9                                                                                                               
                                           {                                                                                F:\MCP\projects\CAN\Include\EEAccess.c
001704   0efd     MOVLW     0xfd            EEADRH=(BYTE)(addr>>8);                                                         F:\MCP\projects\CAN\Include\EEAccess.c
001706   cfdb     MOVFF     0xfdb,0x0                                                                                       
001708   f000                                                                                                               
00170a   0efe     MOVLW     0xfe                                                                                            
00170c   cfdb     MOVFF     0xfdb,0x1                                                                                       
00170e   f001                                                                                                               
001710   c001     MOVFF     0x1,0x0                                                                                         
001712   f000                                                                                                               
001714   6a01     CLRF      0x1,0x0                                                                                         
001716   5000     MOVF      0x0,0x0,0x0                                                                                     
001718   6eaa     MOVWF     0xaa,0x0                                                                                        
00171a   0eff     MOVLW     0xff            EEADR=(BYTE)(addr & 0xFF);                                                      F:\MCP\projects\CAN\Include\EEAccess.c
00171c   6ee7     MOVWF     0xe7,0x0                                                                                        
00171e   0efd     MOVLW     0xfd                                                                                            
001720   cfdb     MOVFF     0xfdb,0x0                                                                                       
001722   f000                                                                                                               
001724   0efe     MOVLW     0xfe                                                                                            
001726   cfdb     MOVFF     0xfdb,0x1                                                                                       
001728   f001                                                                                                               
00172a   50e7     MOVF      0xe7,0x0,0x0                                                                                    
00172c   1600     ANDWF     0x0,0x1,0x0                                                                                     
00172e   6a01     CLRF      0x1,0x0                                                                                         
001730   5000     MOVF      0x0,0x0,0x0                                                                                     
001732   6ea9     MOVWF     0xa9,0x0                                                                                        
001734   9ea6     BCF       0xa6,0x7,0x0    EECON1bits.EEPGD=0;                                                             F:\MCP\projects\CAN\Include\EEAccess.c
001736   9ca6     BCF       0xa6,0x6,0x0    EECON1bits.CFGS=0;                                                              F:\MCP\projects\CAN\Include\EEAccess.c
001738   80a6     BSF       0xa6,0x0,0x0    EECON1bits.RD=1;                                                                F:\MCP\projects\CAN\Include\EEAccess.c
00173a   50a8     MOVF      0xa8,0x0,0x0    return EEDATA;                                                                   F:\MCP\projects\CAN\Include\EEAccess.c
00173c   d000     BRA       0x173e                                                                                          
00173e   52e5     MOVF      0xe5,0x1,0x0   }                                                                                F:\MCP\projects\CAN\Include\EEAccess.c
001740   cfe7     MOVFF     0xfe7,0xfd9                                                                                     
001742   ffd9                                                                                                               
001744   0012     RETURN    0x0                                                                                             
                                                                                                                            F:\MCP\projects\CAN\Include\EEAccess.c
                                                                                                                            F:\MCP\projects\CAN\Include\EEAccess.c
001746   cfd9     MOVFF     0xfd9,0xfe6    void EEWrite(WORD addr,BYTE data)                                                F:\MCP\projects\CAN\Include\EEAccess.c
001748   ffe6                                                                                                               
00174a   cfe1     MOVFF     0xfe1,0xfd9                                                                                     
00174c   ffd9                                                                                                               
                                           {                                                                                F:\MCP\projects\CAN\Include\EEAccess.c
00174e   98a1     BCF       0xa1,0x4,0x0    PIR2bits.EEIF=0;                                                                F:\MCP\projects\CAN\Include\EEAccess.c
001750   0efd     MOVLW     0xfd            EEADRH=(BYTE)(addr>>8);                                                         F:\MCP\projects\CAN\Include\EEAccess.c
001752   cfdb     MOVFF     0xfdb,0x0                                                                                       
001754   f000                                                                                                               
001756   0efe     MOVLW     0xfe                                                                                            
001758   cfdb     MOVFF     0xfdb,0x1                                                                                       
00175a   f001                                                                                                               
00175c   c001     MOVFF     0x1,0x0                                                                                         
00175e   f000                                                                                                               
001760   6a01     CLRF      0x1,0x0                                                                                         
001762   5000     MOVF      0x0,0x0,0x0                                                                                     
001764   6eaa     MOVWF     0xaa,0x0                                                                                        
001766   0eff     MOVLW     0xff            EEADR=(BYTE)(addr & 0xFF);                                                      F:\MCP\projects\CAN\Include\EEAccess.c
001768   6ee7     MOVWF     0xe7,0x0                                                                                        
00176a   0efd     MOVLW     0xfd                                                                                            
00176c   cfdb     MOVFF     0xfdb,0x0                                                                                       
00176e   f000                                                                                                               
001770   0efe     MOVLW     0xfe                                                                                            
001772   cfdb     MOVFF     0xfdb,0x1                                                                                       
001774   f001                                                                                                               
001776   50e7     MOVF      0xe7,0x0,0x0                                                                                    
001778   1600     ANDWF     0x0,0x1,0x0                                                                                     
00177a   6a01     CLRF      0x1,0x0                                                                                         
00177c   5000     MOVF      0x0,0x0,0x0                                                                                     
00177e   6ea9     MOVWF     0xa9,0x0                                                                                        
001780   0efc     MOVLW     0xfc            EEDATA=data;                                                                    F:\MCP\projects\CAN\Include\EEAccess.c
001782   50db     MOVF      0xdb,0x0,0x0                                                                                    
001784   6ea8     MOVWF     0xa8,0x0                                                                                        
001786   9ea6     BCF       0xa6,0x7,0x0    EECON1bits.EEPGD=0;                                                             F:\MCP\projects\CAN\Include\EEAccess.c
001788   9ca6     BCF       0xa6,0x6,0x0    EECON1bits.CFGS=0;                                                              F:\MCP\projects\CAN\Include\EEAccess.c
00178a   84a6     BSF       0xa6,0x2,0x0    EECON1bits.WREN=1;                                                              F:\MCP\projects\CAN\Include\EEAccess.c
00178c   9ef2     BCF       0xf2,0x7,0x0    INTCONbits.GIE=0;                                                               F:\MCP\projects\CAN\Include\EEAccess.c
00178e   0e55     MOVLW     0x55            EECON2=0x55;                                                                    F:\MCP\projects\CAN\Include\EEAccess.c
001790   6ea7     MOVWF     0xa7,0x0                                                                                        
001792   0eaa     MOVLW     0xaa            EECON2=0xAA;                                                                    F:\MCP\projects\CAN\Include\EEAccess.c
001794   6ea7     MOVWF     0xa7,0x0                                                                                        
001796   82a6     BSF       0xa6,0x1,0x0    EECON1bits.WR=1;                                                                F:\MCP\projects\CAN\Include\EEAccess.c
001798   8ef2     BSF       0xf2,0x7,0x0    INTCONbits.GIE=1;                                                               F:\MCP\projects\CAN\Include\EEAccess.c
00179a   a8a1     BTFSS     0xa1,0x4,0x0    while(!PIR2bits.EEIF);                                                          F:\MCP\projects\CAN\Include\EEAccess.c
00179c   d7fe     BRA       0x179a                                                                                          
00179e   94a6     BCF       0xa6,0x2,0x0    EECON1bits.WREN=0;                                                              F:\MCP\projects\CAN\Include\EEAccess.c
0017a0   52e5     MOVF      0xe5,0x1,0x0   }                                                                                F:\MCP\projects\CAN\Include\EEAccess.c
0017a2   cfe7     MOVFF     0xfe7,0xfd9                                                                                     
0017a4   ffd9                                                                                                               
0017a6   0012     RETURN    0x0