Subversion Repositories HomeAutomation

Rev

Rev 103 | 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 17:30:42 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
001942   0e79     MOVLW     0x79               TMR0L = TICK_COUNTER_LOW;                                                    F:\MCP\projects\CAN\canBase\Source\Tick.c
001944   6ed6     MOVWF     0xd6,0x0                                                                                        
001946   0efe     MOVLW     0xfe               TMR0H = TICK_COUNTER_HIGH;                                                   F:\MCP\projects\CAN\canBase\Source\Tick.c
001948   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
00194a   0e07     MOVLW     0x7                T0CON = 0b00000000 | TIMER_PRESCALE;                                         F:\MCP\projects\CAN\canBase\Source\Tick.c
00194c   6ed5     MOVWF     0xd5,0x0                                                                                        
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Tick.c
                                               // Start the timer.                                                          F:\MCP\projects\CAN\canBase\Source\Tick.c
00194e   8ed5     BSF       0xd5,0x7,0x0       T0CONbits.TMR0ON = 1;                                                        F:\MCP\projects\CAN\canBase\Source\Tick.c
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Tick.c
001950   84f2     BSF       0xf2,0x2,0x0       INTCONbits.TMR0IF = 1;                                                       F:\MCP\projects\CAN\canBase\Source\Tick.c
001952   8af2     BSF       0xf2,0x5,0x0       INTCONbits.TMR0IE = 1;                                                       F:\MCP\projects\CAN\canBase\Source\Tick.c
001954   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
001956   c079     MOVFF     0x79,0x12          return TickCount;                                                            F:\MCP\projects\CAN\canBase\Source\Tick.c
001958   f012                                                                                                               
00195a   c07a     MOVFF     0x7a,0x13                                                                                       
00195c   f013                                                                                                               
00195e   c07b     MOVFF     0x7b,0x14                                                                                       
001960   f014                                                                                                               
001962   c07c     MOVFF     0x7c,0x15                                                                                       
001964   f015                                                                                                               
001966   d000     BRA       0x1968                                                                                          
001968   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
00196a   a4f2     BTFSS     0xf2,0x2,0x0       if(INTCONbits.TMR0IF)                                                        F:\MCP\projects\CAN\canBase\Source\Tick.c
00196c   d00b     BRA       0x1984                                                                                          
                                               {                                                                            F:\MCP\projects\CAN\canBase\Source\Tick.c
00196e   0efe     MOVLW     0xfe                   TMR0H = TICK_COUNTER_HIGH;                                               F:\MCP\projects\CAN\canBase\Source\Tick.c
001970   6ed7     MOVWF     0xd7,0x0                                                                                        
001972   0e79     MOVLW     0x79                   TMR0L = TICK_COUNTER_LOW;                                                F:\MCP\projects\CAN\canBase\Source\Tick.c
001974   6ed6     MOVWF     0xd6,0x0                                                                                        
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Tick.c
001976   0100     MOVLB     0x0                    TickCount++;                                                             F:\MCP\projects\CAN\canBase\Source\Tick.c
001978   2b79     INCF      0x79,0x1,0x1                                                                                    
00197a   0e00     MOVLW     0x0                                                                                             
00197c   237a     ADDWFC    0x7a,0x1,0x1                                                                                    
00197e   237b     ADDWFC    0x7b,0x1,0x1                                                                                    
001980   237c     ADDWFC    0x7c,0x1,0x1                                                                                    
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Tick.c
001982   94f2     BCF       0xf2,0x2,0x0           INTCONbits.TMR0IF = 0;                                                   F:\MCP\projects\CAN\canBase\Source\Tick.c
                                               }                                                                            F:\MCP\projects\CAN\canBase\Source\Tick.c
001984   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
00142c   0e80     MOVLW     0x80            CANCON = 0x80; //request config mode                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
00142e   6e6f     MOVWF     0x6f,0x0                                                                                        
001430   0ee0     MOVLW     0xe0            while ((CANSTAT & 0xE0) != 0x80 ); //wait for config mode request               F:\MCP\projects\CAN\canBase\Source\CAN.c
001432   146e     ANDWF     0x6e,0x0,0x0                                                                                    
001434   0880     SUBLW     0x80                                                                                            
001436   e001     BZ        0x143a                                                                                          
001438   d7fb     BRA       0x1430                                                                                          
                                                                                                                            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
00143a   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
00143c   9e70     BCF       0x70,0x7,0x0    BRGCON1bits.SJW1=0;                                                             F:\MCP\projects\CAN\canBase\Source\CAN.c
00143e   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
001440   0e04     MOVLW     0x4             BRGCON1=BRGCON1|CAN_BRP;                                                        F:\MCP\projects\CAN\canBase\Source\CAN.c
001442   1070     IORWF     0x70,0x0,0x0                                                                                    
001444   6e70     MOVWF     0x70,0x0                                                                                        
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
                                            // Maximum PHEG1                                                                F:\MCP\projects\CAN\canBase\Source\CAN.c
001446   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
001448   9a71     BCF       0x71,0x5,0x0    BRGCON2bits.SEG1PH2 = 0;                                                        F:\MCP\projects\CAN\canBase\Source\CAN.c
00144a   9871     BCF       0x71,0x4,0x0    BRGCON2bits.SEG1PH1 = 0;                                                        F:\MCP\projects\CAN\canBase\Source\CAN.c
00144c   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
00144e   9471     BCF       0x71,0x2,0x0    BRGCON2bits.PRSEG2 = 0;                                                         F:\MCP\projects\CAN\canBase\Source\CAN.c
001450   9271     BCF       0x71,0x1,0x0    BRGCON2bits.PRSEG1 = 0;                                                         F:\MCP\projects\CAN\canBase\Source\CAN.c
001452   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
001454   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
001456   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
001458   9472     BCF       0x72,0x2,0x0    BRGCON3bits.SEG2PH2 = 0;                                                        F:\MCP\projects\CAN\canBase\Source\CAN.c
00145a   9272     BCF       0x72,0x1,0x0    BRGCON3bits.SEG2PH1 = 0;                                                        F:\MCP\projects\CAN\canBase\Source\CAN.c
00145c   8072     BSF       0x72,0x0,0x0    BRGCON3bits.SEG2PH0 = 1;                                                        F:\MCP\projects\CAN\canBase\Source\CAN.c
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
00145e   6a77     CLRF      0x77,0x0        ECANCON=0;                                                                      F:\MCP\projects\CAN\canBase\Source\CAN.c
001460   8e77     BSF       0x77,0x7,0x0    ECANCONbits.MDSEL1 = 1; // 0  For mode 1                                        F:\MCP\projects\CAN\canBase\Source\CAN.c
001462   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
001464   8c60     BSF       0x60,0x6,0x0    RXB0CONbits.RXM1=1;                                                             F:\MCP\projects\CAN\canBase\Source\CAN.c
001466   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
001468   010d     MOVLB     0xd             TXBIE = 0;                                                                      F:\MCP\projects\CAN\canBase\Source\CAN.c
00146a   6bfc     CLRF      0xfc,0x1                                                                                        
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
                                            //rx any interrupt                                                              F:\MCP\projects\CAN\canBase\Source\CAN.c
00146c   6aa4     CLRF      0xa4,0x0        PIR3 = 0;                                                                       F:\MCP\projects\CAN\canBase\Source\CAN.c
00146e   0e03     MOVLW     0x3             PIE3 = 0b00000011;                                                              F:\MCP\projects\CAN\canBase\Source\CAN.c
001470   6ea3     MOVWF     0xa3,0x0                                                                                        
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
                                            // High interrupt                                                               F:\MCP\projects\CAN\canBase\Source\CAN.c
001472   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
001474   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
001476   6a6f     CLRF      0x6f,0x0            CANCON = 0x00;//request normal mode                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
001478   0ee0     MOVLW     0xe0                while ((CANSTAT & 0xE0) != 0x00 );//wait for normal mode                       F:\MCP\projects\CAN\canBase\Source\CAN.c
00147a   146e     ANDWF     0x6e,0x0,0x0                                                                                    
00147c   e001     BZ        0x1480                                                                                          
00147e   d7fc     BRA       0x1478                                                                                          
                                            #endif                                                                          F:\MCP\projects\CAN\canBase\Source\CAN.c
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
001480   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
001482   50a4     MOVF      0xa4,0x0,0x0    if (PIR3bits.RXBnIF || PIR3bits.RXB1IF || PIR3bits.RXB0IF)                      F:\MCP\projects\CAN\canBase\Source\CAN.c
001484   0b02     ANDLW     0x2                                                                                             
001486   e106     BNZ       0x1494                                                                                          
001488   50a4     MOVF      0xa4,0x0,0x0                                                                                    
00148a   0b02     ANDLW     0x2                                                                                             
00148c   e103     BNZ       0x1494                                                                                          
00148e   50a4     MOVF      0xa4,0x0,0x0                                                                                    
001490   0b01     ANDLW     0x1                                                                                             
001492   e016     BZ        0x14c0                                                                                          
                                            {                                                                               F:\MCP\projects\CAN\canBase\Source\CAN.c
001494   0e0f     MOVLW     0xf                 ECANCON=(ECANCON&0b00000)|(0b10000|(CANCON&0x0F));                             F:\MCP\projects\CAN\canBase\Source\CAN.c
001496   146f     ANDWF     0x6f,0x0,0x0                                                                                    
001498   0910     IORLW     0x10                                                                                            
00149a   6e00     MOVWF     0x0,0x0                                                                                         
00149c   0e00     MOVLW     0x0                                                                                             
00149e   1477     ANDWF     0x77,0x0,0x0                                                                                    
0014a0   1000     IORWF     0x0,0x0,0x0                                                                                     
0014a2   6e77     MOVWF     0x77,0x0                                                                                        
0014a4   be60     BTFSC     0x60,0x7,0x0        if (RXB0CONbits.RXFUL) canGetPacket();                                         F:\MCP\projects\CAN\canBase\Source\CAN.c
0014a6   d80d     RCALL     0x14c2                                                                                          
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
0014a8   a2a4     BTFSS     0xa4,0x1,0x0        if (PIR3bits.RXBnIF) {PIR3bits.RXBnIF = 0; return;}                            F:\MCP\projects\CAN\canBase\Source\CAN.c
0014aa   d002     BRA       0x14b0                                                                                          
0014ac   92a4     BCF       0xa4,0x1,0x0                                                                                    
0014ae   d008     BRA       0x14c0                                                                                          
0014b0   a2a4     BTFSS     0xa4,0x1,0x0        if (PIR3bits.RXB1IF) {PIR3bits.RXB1IF = 0; return;}                            F:\MCP\projects\CAN\canBase\Source\CAN.c
0014b2   d002     BRA       0x14b8                                                                                          
0014b4   92a4     BCF       0xa4,0x1,0x0                                                                                    
0014b6   d004     BRA       0x14c0                                                                                          
0014b8   a0a4     BTFSS     0xa4,0x0,0x0        if (PIR3bits.RXB0IF) {PIR3bits.RXB0IF = 0; return;}                            F:\MCP\projects\CAN\canBase\Source\CAN.c
0014ba   d002     BRA       0x14c0                                                                                          
0014bc   90a4     BCF       0xa4,0x0,0x0                                                                                    
0014be   d000     BRA       0x14c0                                                                                          
                                            }                                                                               F:\MCP\projects\CAN\canBase\Source\CAN.c
0014c0   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
0014c2   cfd9     MOVFF     0xfd9,0xfe6    void canGetPacket()                                                              F:\MCP\projects\CAN\canBase\Source\CAN.c
0014c4   ffe6                                                                                                               
0014c6   cfe1     MOVFF     0xfe1,0xfd9                                                                                     
0014c8   ffd9                                                                                                               
0014ca   0e0f     MOVLW     0xf                                                                                             
0014cc   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
0014ce   0ef0     MOVLW     0xf0                    cm.funct=((RXB0SIDH & 0xF0)>>4);                                         F:\MCP\projects\CAN\canBase\Source\CAN.c
0014d0   1461     ANDWF     0x61,0x0,0x0                                                                                    
0014d2   38e8     SWAPF     0xe8,0x0,0x0                                                                                    
0014d4   0b0f     ANDLW     0xf                                                                                             
0014d6   6edf     MOVWF     0xdf,0x0                                                                                        
0014d8   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
0014da   1461     ANDWF     0x61,0x0,0x0                                                                                    
0014dc   6e06     MOVWF     0x6,0x0                                                                                         
0014de   6a07     CLRF      0x7,0x0                                                                                         
0014e0   0e06     MOVLW     0x6                                                                                             
0014e2   90d8     BCF       0xd8,0x0,0x0                                                                                    
0014e4   3606     RLCF      0x6,0x1,0x0                                                                                     
0014e6   3607     RLCF      0x7,0x1,0x0                                                                                     
0014e8   04e8     DECF      0xe8,0x0,0x0                                                                                    
0014ea   e1fb     BNZ       0x14e2                                                                                          
0014ec   0ee0     MOVLW     0xe0                                                                                            
0014ee   1462     ANDWF     0x62,0x0,0x0                                                                                    
0014f0   6e08     MOVWF     0x8,0x0                                                                                         
0014f2   6a09     CLRF      0x9,0x0                                                                                         
0014f4   90d8     BCF       0xd8,0x0,0x0                                                                                    
0014f6   3209     RRCF      0x9,0x1,0x0                                                                                     
0014f8   3208     RRCF      0x8,0x1,0x0                                                                                     
0014fa   90d8     BCF       0xd8,0x0,0x0                                                                                    
0014fc   3209     RRCF      0x9,0x1,0x0                                                                                     
0014fe   3208     RRCF      0x8,0x1,0x0                                                                                     
001500   5006     MOVF      0x6,0x0,0x0                                                                                     
001502   2408     ADDWF     0x8,0x0,0x0                                                                                     
001504   6e04     MOVWF     0x4,0x0                                                                                         
001506   5007     MOVF      0x7,0x0,0x0                                                                                     
001508   2009     ADDWFC    0x9,0x0,0x0                                                                                     
00150a   6e05     MOVWF     0x5,0x0                                                                                         
00150c   0e03     MOVLW     0x3                                                                                             
00150e   1462     ANDWF     0x62,0x0,0x0                                                                                    
001510   6e0a     MOVWF     0xa,0x0                                                                                         
001512   6a0b     CLRF      0xb,0x0                                                                                         
001514   90d8     BCF       0xd8,0x0,0x0                                                                                    
001516   360a     RLCF      0xa,0x1,0x0                                                                                     
001518   360b     RLCF      0xb,0x1,0x0                                                                                     
00151a   5004     MOVF      0x4,0x0,0x0                                                                                     
00151c   240a     ADDWF     0xa,0x0,0x0                                                                                     
00151e   6e02     MOVWF     0x2,0x0                                                                                         
001520   5005     MOVF      0x5,0x0,0x0                                                                                     
001522   200b     ADDWFC    0xb,0x0,0x0                                                                                     
001524   6e03     MOVWF     0x3,0x0                                                                                         
001526   0e80     MOVLW     0x80                                                                                            
001528   1463     ANDWF     0x63,0x0,0x0                                                                                    
00152a   6e0c     MOVWF     0xc,0x0                                                                                         
00152c   6a0d     CLRF      0xd,0x0                                                                                         
00152e   0e07     MOVLW     0x7                                                                                             
001530   90d8     BCF       0xd8,0x0,0x0                                                                                    
001532   320d     RRCF      0xd,0x1,0x0                                                                                     
001534   320c     RRCF      0xc,0x1,0x0                                                                                     
001536   04e8     DECF      0xe8,0x0,0x0                                                                                    
001538   e1fb     BNZ       0x1530                                                                                          
00153a   5002     MOVF      0x2,0x0,0x0                                                                                     
00153c   240c     ADDWF     0xc,0x0,0x0                                                                                     
00153e   6e00     MOVWF     0x0,0x0                                                                                         
001540   5003     MOVF      0x3,0x0,0x0                                                                                     
001542   200d     ADDWFC    0xd,0x0,0x0                                                                                     
001544   6e01     MOVWF     0x1,0x0                                                                                         
001546   0e01     MOVLW     0x1                                                                                             
001548   c000     MOVFF     0x0,0xfdb                                                                                       
00154a   ffdb                                                                                                               
00154c   0e02     MOVLW     0x2                                                                                             
00154e   c001     MOVFF     0x1,0xfdb                                                                                       
001550   ffdb                                                                                                               
001552   0e7e     MOVLW     0x7e                   cm.nid=((RXB0EIDH & 0x7E)>>1);                                           F:\MCP\projects\CAN\canBase\Source\CAN.c
001554   1463     ANDWF     0x63,0x0,0x0                                                                                    
001556   40e8     RRNCF     0xe8,0x0,0x0                                                                                    
001558   0b7f     ANDLW     0x7f                                                                                            
00155a   6ee7     MOVWF     0xe7,0x0                                                                                        
00155c   0e03     MOVLW     0x3                                                                                             
00155e   cfe7     MOVFF     0xfe7,0xfdb                                                                                     
001560   ffdb                                                                                                               
001562   0e01     MOVLW     0x1                    cm.sid=(((WORD)(RXB0EIDH & 0x01))<<8)+RXB0EIDL;                          F:\MCP\projects\CAN\canBase\Source\CAN.c
001564   1463     ANDWF     0x63,0x0,0x0                                                                                    
001566   6e02     MOVWF     0x2,0x0                                                                                         
001568   c002     MOVFF     0x2,0x3                                                                                         
00156a   f003                                                                                                               
00156c   6a02     CLRF      0x2,0x0                                                                                         
00156e   5064     MOVF      0x64,0x0,0x0                                                                                    
001570   0100     MOVLB     0x0                                                                                             
001572   2402     ADDWF     0x2,0x0,0x0                                                                                     
001574   6e00     MOVWF     0x0,0x0                                                                                         
001576   0e00     MOVLW     0x0                                                                                             
001578   2003     ADDWFC    0x3,0x0,0x0                                                                                     
00157a   6e01     MOVWF     0x1,0x0                                                                                         
00157c   0e04     MOVLW     0x4                                                                                             
00157e   c000     MOVFF     0x0,0xfdb                                                                                       
001580   ffdb                                                                                                               
001582   0e05     MOVLW     0x5                                                                                             
001584   c001     MOVFF     0x1,0xfdb                                                                                       
001586   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
001588   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
00158a   0b01     ANDLW     0x1                                                                                             
00158c   6e02     MOVWF     0x2,0x0                                                                                         
00158e   5065     MOVF      0x65,0x0,0x0                                                                                    
001590   0b02     ANDLW     0x2                                                                                             
001592   e001     BZ        0x1596                                                                                          
001594   0e01     MOVLW     0x1                                                                                             
001596   24e8     ADDWF     0xe8,0x0,0x0                                                                                    
001598   6e01     MOVWF     0x1,0x0                                                                                         
00159a   5065     MOVF      0x65,0x0,0x0                                                                                    
00159c   0b04     ANDLW     0x4                                                                                             
00159e   e001     BZ        0x15a2                                                                                          
0015a0   0e01     MOVLW     0x1                                                                                             
0015a2   0d04     MULLW     0x4                                                                                             
0015a4   cff3     MOVFF     0xff3,0x0                                                                                       
0015a6   f000                                                                                                               
0015a8   5065     MOVF      0x65,0x0,0x0                                                                                    
0015aa   0b08     ANDLW     0x8                                                                                             
0015ac   e001     BZ        0x15b0                                                                                          
0015ae   0e01     MOVLW     0x1                                                                                             
0015b0   0d08     MULLW     0x8                                                                                             
0015b2   50f3     MOVF      0xf3,0x0,0x0                                                                                    
0015b4   2400     ADDWF     0x0,0x0,0x0                                                                                     
0015b6   2401     ADDWF     0x1,0x0,0x0                                                                                     
0015b8   2402     ADDWF     0x2,0x0,0x0                                                                                     
0015ba   6ee7     MOVWF     0xe7,0x0                                                                                        
0015bc   0e06     MOVLW     0x6                                                                                             
0015be   cfe7     MOVFF     0xfe7,0xfdb                                                                                     
0015c0   ffdb                                                                                                               
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
                                                // Data one bye one, for speed                                                 F:\MCP\projects\CAN\canBase\Source\CAN.c
0015c2   0e07     MOVLW     0x7                 cm.data[0]=RXB0D0;  cm.data[1]=RXB0D1;                                          F:\MCP\projects\CAN\canBase\Source\CAN.c
0015c4   cf66     MOVFF     0xf66,0xfdb                                                                                     
0015c6   ffdb                                                                                                               
0015c8   0e08     MOVLW     0x8                                                                                             
0015ca   cf67     MOVFF     0xf67,0xfdb                                                                                     
0015cc   ffdb                                                                                                               
0015ce   0e09     MOVLW     0x9                 cm.data[2]=RXB0D2;  cm.data[3]=RXB0D3;                                         F:\MCP\projects\CAN\canBase\Source\CAN.c
0015d0   cf68     MOVFF     0xf68,0xfdb                                                                                     
0015d2   ffdb                                                                                                               
0015d4   0e0a     MOVLW     0xa                                                                                             
0015d6   cf69     MOVFF     0xf69,0xfdb                                                                                     
0015d8   ffdb                                                                                                               
0015da   0e0b     MOVLW     0xb                 cm.data[4]=RXB0D4;  cm.data[5]=RXB0D5;                                         F:\MCP\projects\CAN\canBase\Source\CAN.c
0015dc   cf6a     MOVFF     0xf6a,0xfdb                                                                                     
0015de   ffdb                                                                                                               
0015e0   0e0c     MOVLW     0xc                                                                                             
0015e2   cf6b     MOVFF     0xf6b,0xfdb                                                                                     
0015e4   ffdb                                                                                                               
0015e6   0e0d     MOVLW     0xd                 cm.data[6]=RXB0D6;  cm.data[7]=RXB0D7;                                         F:\MCP\projects\CAN\canBase\Source\CAN.c
0015e8   cf6c     MOVFF     0xf6c,0xfdb                                                                                     
0015ea   ffdb                                                                                                               
0015ec   0e0e     MOVLW     0xe                                                                                             
0015ee   cf6d     MOVFF     0xf6d,0xfdb                                                                                     
0015f0   ffdb                                                                                                               
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
                                                // Clear ful status                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
0015f2   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
0015f4   cfd9     MOVFF     0xfd9,0xfe9         canParse(cm);                                                                  F:\MCP\projects\CAN\canBase\Source\CAN.c
0015f6   ffe9                                                                                                               
0015f8   cfda     MOVFF     0xfda,0xfea                                                                                     
0015fa   ffea                                                                                                               
0015fc   cfee     MOVFF     0xfee,0xfe6                                                                                     
0015fe   ffe6                                                                                                               
001600   cfee     MOVFF     0xfee,0xfe6                                                                                     
001602   ffe6                                                                                                               
001604   cfee     MOVFF     0xfee,0xfe6                                                                                     
001606   ffe6                                                                                                               
001608   cfee     MOVFF     0xfee,0xfe6                                                                                     
00160a   ffe6                                                                                                               
00160c   cfee     MOVFF     0xfee,0xfe6                                                                                     
00160e   ffe6                                                                                                               
001610   cfee     MOVFF     0xfee,0xfe6                                                                                     
001612   ffe6                                                                                                               
001614   cfee     MOVFF     0xfee,0xfe6                                                                                     
001616   ffe6                                                                                                               
001618   cfee     MOVFF     0xfee,0xfe6                                                                                     
00161a   ffe6                                                                                                               
00161c   cfee     MOVFF     0xfee,0xfe6                                                                                     
00161e   ffe6                                                                                                               
001620   cfee     MOVFF     0xfee,0xfe6                                                                                     
001622   ffe6                                                                                                               
001624   cfee     MOVFF     0xfee,0xfe6                                                                                     
001626   ffe6                                                                                                               
001628   cfee     MOVFF     0xfee,0xfe6                                                                                     
00162a   ffe6                                                                                                               
00162c   cfee     MOVFF     0xfee,0xfe6                                                                                     
00162e   ffe6                                                                                                               
001630   cfee     MOVFF     0xfee,0xfe6                                                                                     
001632   ffe6                                                                                                               
001634   cfee     MOVFF     0xfee,0xfe6                                                                                     
001636   ffe6                                                                                                               
001638   ec4f     CALL      0x129e,0x0                                                                                      
00163a   f009                                                                                                               
00163c   6e00     MOVWF     0x0,0x0                                                                                         
00163e   0e0f     MOVLW     0xf                                                                                             
001640   5ee1     SUBWF     0xe1,0x1,0x0                                                                                    
001642   5000     MOVF      0x0,0x0,0x0                                                                                     
001644   0e0f     MOVLW     0xf            }                                                                                F:\MCP\projects\CAN\canBase\Source\CAN.c
001646   5ce1     SUBWF     0xe1,0x0,0x0                                                                                    
001648   e202     BC        0x164e                                                                                          
00164a   6ae1     CLRF      0xe1,0x0                                                                                        
00164c   52e5     MOVF      0xe5,0x1,0x0                                                                                    
00164e   6ee1     MOVWF     0xe1,0x0                                                                                        
001650   52e5     MOVF      0xe5,0x1,0x0                                                                                    
001652   cfe7     MOVFF     0xfe7,0xfd9                                                                                     
001654   ffd9                                                                                                               
001656   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
001658   cfd9     MOVFF     0xfd9,0xfe6    BOOL canSendMessage(CAN_MESSAGE cm,CAN_PRIORITY prio)                            F:\MCP\projects\CAN\canBase\Source\CAN.c
00165a   ffe6                                                                                                               
00165c   cfe1     MOVFF     0xfe1,0xfd9                                                                                     
00165e   ffd9                                                                                                               
                                           {                                                                                F:\MCP\projects\CAN\canBase\Source\CAN.c
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
001660   010f     MOVLB     0xf             if ( TXB0CONbits.TXREQ == 0 )  { ECANCON=(ECANCON&0b00000)|0b00011; }           F:\MCP\projects\CAN\canBase\Source\CAN.c
001662   b740     BTFSC     0x40,0x3,0x1                                                                                    
001664   d004     BRA       0x166e                                                                                          
001666   0e00     MOVLW     0x0                                                                                             
001668   1477     ANDWF     0x77,0x0,0x0                                                                                    
00166a   0903     IORLW     0x3                                                                                             
00166c   6e77     MOVWF     0x77,0x0                                                                                        
00166e   010f     MOVLB     0xf             if ( TXB1CONbits.TXREQ == 0 )  { ECANCON=(ECANCON&0b00000)|0b00100; }           F:\MCP\projects\CAN\canBase\Source\CAN.c
001670   b730     BTFSC     0x30,0x3,0x1                                                                                    
001672   d004     BRA       0x167c                                                                                          
001674   0e00     MOVLW     0x0                                                                                             
001676   1477     ANDWF     0x77,0x0,0x0                                                                                    
001678   0904     IORLW     0x4                                                                                             
00167a   6e77     MOVWF     0x77,0x0                                                                                        
00167c   010f     MOVLB     0xf             if ( TXB2CONbits.TXREQ == 0 )  { ECANCON=(ECANCON&0b00000)|0b00101; }           F:\MCP\projects\CAN\canBase\Source\CAN.c
00167e   b720     BTFSC     0x20,0x3,0x1                                                                                    
001680   d005     BRA       0x168c                                                                                          
001682   0e00     MOVLW     0x0                                                                                             
001684   1477     ANDWF     0x77,0x0,0x0                                                                                    
001686   0905     IORLW     0x5                                                                                             
001688   6e77     MOVWF     0x77,0x0                                                                                        
                                            // None of the transmit buffers were empty.                                     F:\MCP\projects\CAN\canBase\Source\CAN.c
00168a   d002     BRA       0x1690          else { return FALSE;}                                                           F:\MCP\projects\CAN\canBase\Source\CAN.c
00168c   0e00     MOVLW     0x0                                                                                             
00168e   d0b0     BRA       0x17f0                                                                                          
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
001690   0eef     MOVLW     0xef            if (prio<0 || prio>3) prio = 0;                                                 F:\MCP\projects\CAN\canBase\Source\CAN.c
001692   cfdb     MOVFF     0xfdb,0x0                                                                                       
001694   f000                                                                                                               
001696   3400     RLCF      0x0,0x0,0x0                                                                                     
001698   e20e     BC        0x16b6                                                                                          
00169a   0eef     MOVLW     0xef                                                                                            
00169c   cfdb     MOVFF     0xfdb,0x1                                                                                       
00169e   f001                                                                                                               
0016a0   0e03     MOVLW     0x3                                                                                             
0016a2   6ee7     MOVWF     0xe7,0x0                                                                                        
0016a4   1801     XORWF     0x1,0x0,0x0                                                                                     
0016a6   aee8     BTFSS     0xe8,0x7,0x0                                                                                    
0016a8   d002     BRA       0x16ae                                                                                          
0016aa   3401     RLCF      0x1,0x0,0x0                                                                                     
0016ac   d003     BRA       0x16b4                                                                                          
0016ae   50e7     MOVF      0xe7,0x0,0x0                                                                                    
0016b0   80d8     BSF       0xd8,0x0,0x0                                                                                    
0016b2   5401     SUBFWB    0x1,0x0,0x0                                                                                     
0016b4   e202     BC        0x16ba                                                                                          
0016b6   0eef     MOVLW     0xef                                                                                            
0016b8   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
0016ba   0ef1     MOVLW     0xf1                RXB0SIDH = (BYTE)((cm.funct & 0x0F)<<4)+(BYTE)((cm.funcc & 0x03C0)>>6);        F:\MCP\projects\CAN\canBase\Source\CAN.c
0016bc   cfdb     MOVFF     0xfdb,0x0                                                                                       
0016be   f000                                                                                                               
0016c0   0ef2     MOVLW     0xf2                                                                                            
0016c2   cfdb     MOVFF     0xfdb,0x1                                                                                       
0016c4   f001                                                                                                               
0016c6   0ec0     MOVLW     0xc0                                                                                            
0016c8   1600     ANDWF     0x0,0x1,0x0                                                                                     
0016ca   0e03     MOVLW     0x3                                                                                             
0016cc   1601     ANDWF     0x1,0x1,0x0                                                                                     
0016ce   0e06     MOVLW     0x6                                                                                             
0016d0   90d8     BCF       0xd8,0x0,0x0                                                                                    
0016d2   3201     RRCF      0x1,0x1,0x0                                                                                     
0016d4   3200     RRCF      0x0,0x1,0x0                                                                                     
0016d6   04e8     DECF      0xe8,0x0,0x0                                                                                    
0016d8   e1fb     BNZ       0x16d0                                                                                          
0016da   0ef0     MOVLW     0xf0                                                                                            
0016dc   50db     MOVF      0xdb,0x0,0x0                                                                                    
0016de   0b0f     ANDLW     0xf                                                                                             
0016e0   0d10     MULLW     0x10                                                                                            
0016e2   50f3     MOVF      0xf3,0x0,0x0                                                                                    
0016e4   2400     ADDWF     0x0,0x0,0x0                                                                                     
0016e6   6e61     MOVWF     0x61,0x0                                                                                        
0016e8   0e06     MOVLW     0x6                 RXB0SIDL = (BYTE)((cm.funcc & 0x003F)<<2)+(BYTE)((cm.funcc & 0x0006)>>1);      F:\MCP\projects\CAN\canBase\Source\CAN.c
0016ea   6ee7     MOVWF     0xe7,0x0                                                                                        
0016ec   0ef1     MOVLW     0xf1                                                                                            
0016ee   cfdb     MOVFF     0xfdb,0x2                                                                                       
0016f0   f002                                                                                                               
0016f2   0ef2     MOVLW     0xf2                                                                                            
0016f4   cfdb     MOVFF     0xfdb,0x3                                                                                       
0016f6   f003                                                                                                               
0016f8   50e7     MOVF      0xe7,0x0,0x0                                                                                    
0016fa   1602     ANDWF     0x2,0x1,0x0                                                                                     
0016fc   6a03     CLRF      0x3,0x0                                                                                         
0016fe   90d8     BCF       0xd8,0x0,0x0                                                                                    
001700   3203     RRCF      0x3,0x1,0x0                                                                                     
001702   3202     RRCF      0x2,0x1,0x0                                                                                     
001704   0e3f     MOVLW     0x3f                                                                                            
001706   6ee7     MOVWF     0xe7,0x0                                                                                        
001708   0ef1     MOVLW     0xf1                                                                                            
00170a   cfdb     MOVFF     0xfdb,0x0                                                                                       
00170c   f000                                                                                                               
00170e   0ef2     MOVLW     0xf2                                                                                            
001710   cfdb     MOVFF     0xfdb,0x1                                                                                       
001712   f001                                                                                                               
001714   50e7     MOVF      0xe7,0x0,0x0                                                                                    
001716   1600     ANDWF     0x0,0x1,0x0                                                                                     
001718   6a01     CLRF      0x1,0x0                                                                                         
00171a   90d8     BCF       0xd8,0x0,0x0                                                                                    
00171c   3600     RLCF      0x0,0x1,0x0                                                                                     
00171e   3601     RLCF      0x1,0x1,0x0                                                                                     
001720   90d8     BCF       0xd8,0x0,0x0                                                                                    
001722   3600     RLCF      0x0,0x1,0x0                                                                                     
001724   3601     RLCF      0x1,0x1,0x0                                                                                     
001726   5000     MOVF      0x0,0x0,0x0                                                                                     
001728   2402     ADDWF     0x2,0x0,0x0                                                                                     
00172a   6e62     MOVWF     0x62,0x0                                                                                        
00172c   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
00172e   cfdb     MOVFF     0xfdb,0x2                                                                                       
001730   f002                                                                                                               
001732   0ef5     MOVLW     0xf5                                                                                            
001734   cfdb     MOVFF     0xfdb,0x3                                                                                       
001736   f003                                                                                                               
001738   0e00     MOVLW     0x0                                                                                             
00173a   1602     ANDWF     0x2,0x1,0x0                                                                                     
00173c   0e01     MOVLW     0x1                                                                                             
00173e   1603     ANDWF     0x3,0x1,0x0                                                                                     
001740   c003     MOVFF     0x3,0x2                                                                                         
001742   f002                                                                                                               
001744   6a03     CLRF      0x3,0x0                                                                                         
001746   0e01     MOVLW     0x1                                                                                             
001748   6ee7     MOVWF     0xe7,0x0                                                                                        
00174a   0ef1     MOVLW     0xf1                                                                                            
00174c   cfdb     MOVFF     0xfdb,0x0                                                                                       
00174e   f000                                                                                                               
001750   0ef2     MOVLW     0xf2                                                                                            
001752   cfdb     MOVFF     0xfdb,0x1                                                                                       
001754   f001                                                                                                               
001756   50e7     MOVF      0xe7,0x0,0x0                                                                                    
001758   1600     ANDWF     0x0,0x1,0x0                                                                                     
00175a   6a01     CLRF      0x1,0x0                                                                                         
00175c   0e07     MOVLW     0x7                                                                                             
00175e   90d8     BCF       0xd8,0x0,0x0                                                                                    
001760   3600     RLCF      0x0,0x1,0x0                                                                                     
001762   3601     RLCF      0x1,0x1,0x0                                                                                     
001764   04e8     DECF      0xe8,0x0,0x0                                                                                    
001766   e1fb     BNZ       0x175e                                                                                          
001768   0ef3     MOVLW     0xf3                                                                                            
00176a   50db     MOVF      0xdb,0x0,0x0                                                                                    
00176c   0b3f     ANDLW     0x3f                                                                                            
00176e   24e8     ADDWF     0xe8,0x0,0x0                                                                                    
001770   2400     ADDWF     0x0,0x0,0x0                                                                                     
001772   2402     ADDWF     0x2,0x0,0x0                                                                                     
001774   6e63     MOVWF     0x63,0x0                                                                                        
001776   0eff     MOVLW     0xff                RXB0EIDL = (BYTE)((cm.sid & 0x00FF));                                          F:\MCP\projects\CAN\canBase\Source\CAN.c
001778   6ee7     MOVWF     0xe7,0x0                                                                                        
00177a   0ef4     MOVLW     0xf4                                                                                            
00177c   cfdb     MOVFF     0xfdb,0x0                                                                                       
00177e   f000                                                                                                               
001780   0ef5     MOVLW     0xf5                                                                                            
001782   cfdb     MOVFF     0xfdb,0x1                                                                                       
001784   f001                                                                                                               
001786   50e7     MOVF      0xe7,0x0,0x0                                                                                    
001788   1600     ANDWF     0x0,0x1,0x0                                                                                     
00178a   6a01     CLRF      0x1,0x0                                                                                         
00178c   5000     MOVF      0x0,0x0,0x0                                                                                     
00178e   6e64     MOVWF     0x64,0x0                                                                                        
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
                                                // Data length                                                                 F:\MCP\projects\CAN\canBase\Source\CAN.c
001790   6a65     CLRF      0x65,0x0            RXB0DLC = 0;                                                                   F:\MCP\projects\CAN\canBase\Source\CAN.c
001792   0ef6     MOVLW     0xf6                if (cm.data_length>8) RXB0DLC=8; else RXB0DLC=cm.data_length;                  F:\MCP\projects\CAN\canBase\Source\CAN.c
001794   50db     MOVF      0xdb,0x0,0x0                                                                                    
001796   0808     SUBLW     0x8                                                                                             
001798   e203     BC        0x17a0                                                                                          
00179a   0e08     MOVLW     0x8                                                                                             
00179c   6e65     MOVWF     0x65,0x0                                                                                        
00179e   d003     BRA       0x17a6                                                                                          
0017a0   0ef6     MOVLW     0xf6                                                                                            
0017a2   50db     MOVF      0xdb,0x0,0x0                                                                                    
0017a4   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
0017a6   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
0017a8   0ef7     MOVLW     0xf7                RXB0D0=cm.data[0];  RXB0D1=cm.data[1];                                          F:\MCP\projects\CAN\canBase\Source\CAN.c
0017aa   50db     MOVF      0xdb,0x0,0x0                                                                                    
0017ac   6e66     MOVWF     0x66,0x0                                                                                        
0017ae   0ef8     MOVLW     0xf8                                                                                            
0017b0   50db     MOVF      0xdb,0x0,0x0                                                                                    
0017b2   6e67     MOVWF     0x67,0x0                                                                                        
0017b4   0ef9     MOVLW     0xf9                RXB0D2=cm.data[2];  RXB0D3=cm.data[3];                                         F:\MCP\projects\CAN\canBase\Source\CAN.c
0017b6   50db     MOVF      0xdb,0x0,0x0                                                                                    
0017b8   6e68     MOVWF     0x68,0x0                                                                                        
0017ba   0efa     MOVLW     0xfa                                                                                            
0017bc   50db     MOVF      0xdb,0x0,0x0                                                                                    
0017be   6e69     MOVWF     0x69,0x0                                                                                        
0017c0   0efb     MOVLW     0xfb                RXB0D4=cm.data[4];  RXB0D5=cm.data[5];                                         F:\MCP\projects\CAN\canBase\Source\CAN.c
0017c2   50db     MOVF      0xdb,0x0,0x0                                                                                    
0017c4   6e6a     MOVWF     0x6a,0x0                                                                                        
0017c6   0efc     MOVLW     0xfc                                                                                            
0017c8   50db     MOVF      0xdb,0x0,0x0                                                                                    
0017ca   6e6b     MOVWF     0x6b,0x0                                                                                        
0017cc   0efd     MOVLW     0xfd                RXB0D6=cm.data[6];  RXB0D7=cm.data[7];                                         F:\MCP\projects\CAN\canBase\Source\CAN.c
0017ce   50db     MOVF      0xdb,0x0,0x0                                                                                    
0017d0   6e6c     MOVWF     0x6c,0x0                                                                                        
0017d2   0efe     MOVLW     0xfe                                                                                            
0017d4   50db     MOVF      0xdb,0x0,0x0                                                                                    
0017d6   6e6d     MOVWF     0x6d,0x0                                                                                        
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
                                                // set extended                                                                F:\MCP\projects\CAN\canBase\Source\CAN.c
0017d8   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
0017da   0eef     MOVLW     0xef                RXB0CON = (RXB0CON & 0b11111100) | prio;                                       F:\MCP\projects\CAN\canBase\Source\CAN.c
0017dc   cfdb     MOVFF     0xfdb,0xfe6                                                                                     
0017de   ffe6                                                                                                               
0017e0   0efc     MOVLW     0xfc                                                                                            
0017e2   1460     ANDWF     0x60,0x0,0x0                                                                                    
0017e4   52e5     MOVF      0xe5,0x1,0x0                                                                                    
0017e6   10e7     IORWF     0xe7,0x0,0x0                                                                                    
0017e8   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
0017ea   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
0017ec   0e01     MOVLW     0x1                 return TRUE;                                                                   F:\MCP\projects\CAN\canBase\Source\CAN.c
0017ee   d000     BRA       0x17f0                                                                                          
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
0017f0   52e5     MOVF      0xe5,0x1,0x0   }                                                                                F:\MCP\projects\CAN\canBase\Source\CAN.c
0017f2   cfe7     MOVFF     0xfe7,0xfd9                                                                                     
0017f4   ffd9                                                                                                               
0017f6   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 10:04:20 +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: 103 $                                                   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
001044   cfd9     MOVFF     0xfd9,0xfe6    void main()                                                                      F:\MCP\projects\CAN\canBase\Source\Main.c
001046   ffe6                                                                                                               
001048   cfe1     MOVFF     0xfe1,0xfd9                                                                                     
00104a   ffd9                                                                                                               
00104c   0e0f     MOVLW     0xf                                                                                             
00104e   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 outCm;                                                              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
001050   d921     RCALL     0x1294          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
001052   ec16     CALL      0x142c,0x0          canInit();                                                                     F:\MCP\projects\CAN\canBase\Source\Main.c
001054   f00a                                                                                                               
                                            #endif                                                                          F:\MCP\projects\CAN\canBase\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Main.c
001056   eca1     CALL      0x1942,0x0      tickInit();                                                                     F:\MCP\projects\CAN\canBase\Source\Main.c
001058   f00c                                                                                                               
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Main.c
                                            // Read ID and NID if exist.                                                    F:\MCP\projects\CAN\canBase\Source\Main.c
00105a   0e00     MOVLW     0x0             if (EERead(NODE_ID_EE)==NODE_HAS_ID)                                            F:\MCP\projects\CAN\canBase\Source\Main.c
00105c   6ee6     MOVWF     0xe6,0x0                                                                                        
00105e   6ae6     CLRF      0xe6,0x0                                                                                        
001060   ecfc     CALL      0x17f8,0x0                                                                                      
001062   f00b                                                                                                               
001064   52e5     MOVF      0xe5,0x1,0x0                                                                                    
001066   52e5     MOVF      0xe5,0x1,0x0                                                                                    
001068   082a     SUBLW     0x2a                                                                                            
00106a   e12b     BNZ       0x10c2                                                                                          
                                            {                                                                               F:\MCP\projects\CAN\canBase\Source\Main.c
00106c   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
00106e   6ee6     MOVWF     0xe6,0x0                                                                                        
001070   6ae6     CLRF      0xe6,0x0                                                                                        
001072   ecfc     CALL      0x17f8,0x0                                                                                      
001074   f00b                                                                                                               
001076   52e5     MOVF      0xe5,0x1,0x0                                                                                    
001078   52e5     MOVF      0xe5,0x1,0x0                                                                                    
00107a   6e00     MOVWF     0x0,0x0                                                                                         
00107c   c000     MOVFF     0x0,0x1                                                                                         
00107e   f001                                                                                                               
001080   6a00     CLRF      0x0,0x0                                                                                         
001082   c000     MOVFF     0x0,0xfe6                                                                                       
001084   ffe6                                                                                                               
001086   c001     MOVFF     0x1,0xfe6                                                                                       
001088   ffe6                                                                                                               
00108a   0e02     MOVLW     0x2                                                                                             
00108c   6ee6     MOVWF     0xe6,0x0                                                                                        
00108e   6ae6     CLRF      0xe6,0x0                                                                                        
001090   ecfc     CALL      0x17f8,0x0                                                                                      
001092   f00b                                                                                                               
001094   52e5     MOVF      0xe5,0x1,0x0                                                                                    
001096   52e5     MOVF      0xe5,0x1,0x0                                                                                    
001098   52e5     MOVF      0xe5,0x1,0x0                                                                                    
00109a   cfe7     MOVFF     0xfe7,0x1                                                                                       
00109c   f001                                                                                                               
00109e   52e5     MOVF      0xe5,0x1,0x0                                                                                    
0010a0   cfe7     MOVFF     0xfe7,0x0                                                                                       
0010a2   f000                                                                                                               
0010a4   0100     MOVLB     0x0                                                                                             
0010a6   2400     ADDWF     0x0,0x0,0x0                                                                                     
0010a8   6f60     MOVWF     0x60,0x1                                                                                        
0010aa   0e00     MOVLW     0x0                                                                                             
0010ac   2001     ADDWFC    0x1,0x0,0x0                                                                                     
0010ae   6f61     MOVWF     0x61,0x1                                                                                        
0010b0   0e03     MOVLW     0x3                 MY_NID=EERead(NODE_ID_EE + 3);                                                 F:\MCP\projects\CAN\canBase\Source\Main.c
0010b2   6ee6     MOVWF     0xe6,0x0                                                                                        
0010b4   6ae6     CLRF      0xe6,0x0                                                                                        
0010b6   ecfc     CALL      0x17f8,0x0                                                                                      
0010b8   f00b                                                                                                               
0010ba   52e5     MOVF      0xe5,0x1,0x0                                                                                    
0010bc   52e5     MOVF      0xe5,0x1,0x0                                                                                    
0010be   0100     MOVLB     0x0                                                                                             
0010c0   6f62     MOVWF     0x62,0x1                                                                                        
                                            }                                                                               F:\MCP\projects\CAN\canBase\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Main.c
0011d0   d778     BRA       0x10c2          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
                                                static TICK heartbeat = 0;                                                     F:\MCP\projects\CAN\canBase\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Main.c
                                                                                                                               F:\MCP\projects\CAN\canBase\Source\Main.c
0010c2   ecab     CALL      0x1956,0x0          if ((tickGet()-heartbeat)>TICK_SECOND*5)                                       F:\MCP\projects\CAN\canBase\Source\Main.c
0010c4   f00c                                                                                                               
0010c6   0100     MOVLB     0x0                                                                                             
0010c8   516b     MOVF      0x6b,0x0,0x1                                                                                    
0010ca   5c12     SUBWF     0x12,0x0,0x0                                                                                    
0010cc   6e00     MOVWF     0x0,0x0                                                                                         
0010ce   516c     MOVF      0x6c,0x0,0x1                                                                                    
0010d0   5813     SUBWFB    0x13,0x0,0x0                                                                                    
0010d2   6e01     MOVWF     0x1,0x0                                                                                         
0010d4   516d     MOVF      0x6d,0x0,0x1                                                                                    
0010d6   5814     SUBWFB    0x14,0x0,0x0                                                                                    
0010d8   6e02     MOVWF     0x2,0x0                                                                                         
0010da   516e     MOVF      0x6e,0x0,0x1                                                                                    
0010dc   5815     SUBWFB    0x15,0x0,0x0                                                                                    
0010de   6e03     MOVWF     0x3,0x0                                                                                         
0010e0   80d8     BSF       0xd8,0x0,0x0                                                                                    
0010e2   0ef4     MOVLW     0xf4                                                                                            
0010e4   5400     SUBFWB    0x0,0x0,0x0                                                                                     
0010e6   0e01     MOVLW     0x1                                                                                             
0010e8   5401     SUBFWB    0x1,0x0,0x0                                                                                     
0010ea   0e00     MOVLW     0x0                                                                                             
0010ec   5402     SUBFWB    0x2,0x0,0x0                                                                                     
0010ee   0e00     MOVLW     0x0                                                                                             
0010f0   5403     SUBFWB    0x3,0x0,0x0                                                                                     
0010f2   e24a     BC        0x1188                                                                                          
                                                {                                                                              F:\MCP\projects\CAN\canBase\Source\Main.c
0010f4   6adf     CLRF      0xdf,0x0                outCm.funct                     = FUNCT_BOOTLOADER;                                          F:\MCP\projects\CAN\canBase\Source\Main.c
0010f6   0e08     MOVLW     0x8                     outCm.funcc                     = FUNCC_BOOT_HEARTBEAT;                                      F:\MCP\projects\CAN\canBase\Source\Main.c
0010f8   6ef3     MOVWF     0xf3,0x0                                                                                        
0010fa   0e01     MOVLW     0x1                                                                                             
0010fc   cff3     MOVFF     0xff3,0xfdb                                                                                     
0010fe   ffdb                                                                                                               
001100   0e02     MOVLW     0x2                                                                                             
001102   6adb     CLRF      0xdb,0x0                                                                                        
001104   0e03     MOVLW     0x3                     outCm.nid                       = MY_NID;                                                    F:\MCP\projects\CAN\canBase\Source\Main.c
001106   c062     MOVFF     0x62,0xfdb                                                                                      
001108   ffdb                                                                                                               
00110a   0e04     MOVLW     0x4                     outCm.sid                       = MY_ID;                                                     F:\MCP\projects\CAN\canBase\Source\Main.c
00110c   c060     MOVFF     0x60,0xfdb                                                                                      
00110e   ffdb                                                                                                               
001110   0e05     MOVLW     0x5                                                                                             
001112   c061     MOVFF     0x61,0xfdb                                                                                      
001114   ffdb                                                                                                               
001116   0e06     MOVLW     0x6                     outCm.data_length               = 0;                                                    F:\MCP\projects\CAN\canBase\Source\Main.c
001118   6adb     CLRF      0xdb,0x0                                                                                        
00111a   0e02     MOVLW     0x2                     while(!canSendMessage(outCm,PRIO_HIGH));                                      F:\MCP\projects\CAN\canBase\Source\Main.c
00111c   6ee6     MOVWF     0xe6,0x0                                                                                        
00111e   cfd9     MOVFF     0xfd9,0xfe9                                                                                     
001120   ffe9                                                                                                               
001122   cfda     MOVFF     0xfda,0xfea                                                                                     
001124   ffea                                                                                                               
001126   cfee     MOVFF     0xfee,0xfe6                                                                                     
001128   ffe6                                                                                                               
00112a   cfee     MOVFF     0xfee,0xfe6                                                                                     
00112c   ffe6                                                                                                               
00112e   cfee     MOVFF     0xfee,0xfe6                                                                                     
001130   ffe6                                                                                                               
001132   cfee     MOVFF     0xfee,0xfe6                                                                                     
001134   ffe6                                                                                                               
001136   cfee     MOVFF     0xfee,0xfe6                                                                                     
001138   ffe6                                                                                                               
00113a   cfee     MOVFF     0xfee,0xfe6                                                                                     
00113c   ffe6                                                                                                               
00113e   cfee     MOVFF     0xfee,0xfe6                                                                                     
001140   ffe6                                                                                                               
001142   cfee     MOVFF     0xfee,0xfe6                                                                                     
001144   ffe6                                                                                                               
001146   cfee     MOVFF     0xfee,0xfe6                                                                                     
001148   ffe6                                                                                                               
00114a   cfee     MOVFF     0xfee,0xfe6                                                                                     
00114c   ffe6                                                                                                               
00114e   cfee     MOVFF     0xfee,0xfe6                                                                                     
001150   ffe6                                                                                                               
001152   cfee     MOVFF     0xfee,0xfe6                                                                                     
001154   ffe6                                                                                                               
001156   cfee     MOVFF     0xfee,0xfe6                                                                                     
001158   ffe6                                                                                                               
00115a   cfee     MOVFF     0xfee,0xfe6                                                                                     
00115c   ffe6                                                                                                               
00115e   cfee     MOVFF     0xfee,0xfe6                                                                                     
001160   ffe6                                                                                                               
001162   ec2c     CALL      0x1658,0x0                                                                                      
001164   f00b                                                                                                               
001166   6e00     MOVWF     0x0,0x0                                                                                         
001168   0e10     MOVLW     0x10                                                                                            
00116a   5ee1     SUBWF     0xe1,0x1,0x0                                                                                    
00116c   5000     MOVF      0x0,0x0,0x0                                                                                     
00116e   0900     IORLW     0x0                                                                                             
001170   e101     BNZ       0x1174                                                                                          
001172   d7d3     BRA       0x111a                                                                                          
                                                                                                                                  F:\MCP\projects\CAN\canBase\Source\Main.c
001174   ecab     CALL      0x1956,0x0              heartbeat = tickGet();                                                        F:\MCP\projects\CAN\canBase\Source\Main.c
001176   f00c                                                                                                               
001178   c012     MOVFF     0x12,0x6b                                                                                       
00117a   f06b                                                                                                               
00117c   c013     MOVFF     0x13,0x6c                                                                                       
00117e   f06c                                                                                                               
001180   c014     MOVFF     0x14,0x6d                                                                                       
001182   f06d                                                                                                               
001184   c015     MOVFF     0x15,0x6e                                                                                       
001186   f06e                                                                                                               
                                                }                                                                              F:\MCP\projects\CAN\canBase\Source\Main.c
001188   ecab     CALL      0x1956,0x0          if ((tickGet()-t)>TICK_SECOND)                                                 F:\MCP\projects\CAN\canBase\Source\Main.c
00118a   f00c                                                                                                               
00118c   0100     MOVLB     0x0                                                                                             
00118e   5167     MOVF      0x67,0x0,0x1                                                                                    
001190   5c12     SUBWF     0x12,0x0,0x0                                                                                    
001192   6e00     MOVWF     0x0,0x0                                                                                         
001194   5168     MOVF      0x68,0x0,0x1                                                                                    
001196   5813     SUBWFB    0x13,0x0,0x0                                                                                    
001198   6e01     MOVWF     0x1,0x0                                                                                         
00119a   5169     MOVF      0x69,0x0,0x1                                                                                    
00119c   5814     SUBWFB    0x14,0x0,0x0                                                                                    
00119e   6e02     MOVWF     0x2,0x0                                                                                         
0011a0   516a     MOVF      0x6a,0x0,0x1                                                                                    
0011a2   5815     SUBWFB    0x15,0x0,0x0                                                                                    
0011a4   6e03     MOVWF     0x3,0x0                                                                                         
0011a6   80d8     BSF       0xd8,0x0,0x0                                                                                    
0011a8   0e64     MOVLW     0x64                                                                                            
0011aa   5400     SUBFWB    0x0,0x0,0x0                                                                                     
0011ac   0e00     MOVLW     0x0                                                                                             
0011ae   5401     SUBFWB    0x1,0x0,0x0                                                                                     
0011b0   0e00     MOVLW     0x0                                                                                             
0011b2   5402     SUBFWB    0x2,0x0,0x0                                                                                     
0011b4   0e00     MOVLW     0x0                                                                                             
0011b6   5403     SUBFWB    0x3,0x0,0x0                                                                                     
0011b8   e20b     BC        0x11d0                                                                                          
                                                {                                                                              F:\MCP\projects\CAN\canBase\Source\Main.c
0011ba   7282     BTG       0x82,0x1,0x0            LED0_IO=~LED0_IO;                                                             F:\MCP\projects\CAN\canBase\Source\Main.c
0011bc   ecab     CALL      0x1956,0x0              t = tickGet();                                                                F:\MCP\projects\CAN\canBase\Source\Main.c
0011be   f00c                                                                                                               
0011c0   c012     MOVFF     0x12,0x67                                                                                       
0011c2   f067                                                                                                               
0011c4   c013     MOVFF     0x13,0x68                                                                                       
0011c6   f068                                                                                                               
0011c8   c014     MOVFF     0x14,0x69                                                                                       
0011ca   f069                                                                                                               
0011cc   c015     MOVFF     0x15,0x6a                                                                                       
0011ce   f06a                                                                                                               
                                                }                                                                              F:\MCP\projects\CAN\canBase\Source\Main.c
                                            }                                                                               F:\MCP\projects\CAN\canBase\Source\Main.c
0011d2   0e0f     MOVLW     0xf            }                                                                                F:\MCP\projects\CAN\canBase\Source\Main.c
0011d4   5ce1     SUBWF     0xe1,0x0,0x0                                                                                    
0011d6   e202     BC        0x11dc                                                                                          
0011d8   6ae1     CLRF      0xe1,0x0                                                                                        
0011da   52e5     MOVF      0xe5,0x1,0x0                                                                                    
0011dc   6ee1     MOVWF     0xe1,0x0                                                                                        
0011de   52e5     MOVF      0xe5,0x1,0x0                                                                                    
0011e0   cfe7     MOVFF     0xfe7,0xfd9                                                                                     
0011e2   ffd9                                                                                                               
0011e4   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
0011e6   cfda     MOVFF     0xfda,0xfe4    void high_isr(void)                                                              F:\MCP\projects\CAN\canBase\Source\Main.c
0011e8   ffe4                                                                                                               
0011ea   cfe2     MOVFF     0xfe2,0xfda                                                                                     
0011ec   ffda                                                                                                               
0011ee   cfe9     MOVFF     0xfe9,0xfe4                                                                                     
0011f0   ffe4                                                                                                               
0011f2   cfea     MOVFF     0xfea,0xfe4                                                                                     
0011f4   ffe4                                                                                                               
0011f6   cff6     MOVFF     0xff6,0xfe4                                                                                     
0011f8   ffe4                                                                                                               
0011fa   cff7     MOVFF     0xff7,0xfe4                                                                                     
0011fc   ffe4                                                                                                               
0011fe   cff5     MOVFF     0xff5,0xfe4                                                                                     
001200   ffe4                                                                                                               
001202   cff3     MOVFF     0xff3,0xfe4                                                                                     
001204   ffe4                                                                                                               
001206   cff4     MOVFF     0xff4,0xfe4                                                                                     
001208   ffe4                                                                                                               
00120a   cffa     MOVFF     0xffa,0xfe4                                                                                     
00120c   ffe4                                                                                                               
00120e   ee00     LFSR      0x0,0xe                                                                                         
001210   f00e                                                                                                               
001212   0e0b     MOVLW     0xb                                                                                             
001214   04e8     DECF      0xe8,0x0,0x0                                                                                    
001216   e303     BNC       0x121e                                                                                          
001218   cfee     MOVFF     0xfee,0xfe4                                                                                     
00121a   ffe4                                                                                                               
00121c   d7fb     BRA       0x1214                                                                                          
00121e   ee00     LFSR      0x0,0x0                                                                                         
001220   f000                                                                                                               
001222   0e0e     MOVLW     0xe                                                                                             
001224   04e8     DECF      0xe8,0x0,0x0                                                                                    
001226   e303     BNC       0x122e                                                                                          
001228   cfee     MOVFF     0xfee,0xfe4                                                                                     
00122a   ffe4                                                                                                               
00122c   d7fb     BRA       0x1224                                                                                          
00122e   52e6     MOVF      0xe6,0x1,0x0                                                                                    
                                           {                                                                                F:\MCP\projects\CAN\canBase\Source\Main.c
001230   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
001232   ec41     CALL      0x1482,0x0          canISR();                                                                      F:\MCP\projects\CAN\canBase\Source\Main.c
001234   f00a                                                                                                               
                                            #endif                                                                          F:\MCP\projects\CAN\canBase\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Main.c
001236   ecb5     CALL      0x196a,0x0      tickUpdate();                                                                   F:\MCP\projects\CAN\canBase\Source\Main.c
001238   f00c                                                                                                               
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Main.c
00123a   52e5     MOVF      0xe5,0x1,0x0   }                                                                                F:\MCP\projects\CAN\canBase\Source\Main.c
00123c   ee00     LFSR      0x0,0xd                                                                                         
00123e   f00d                                                                                                               
001240   0e0e     MOVLW     0xe                                                                                             
001242   04e8     DECF      0xe8,0x0,0x0                                                                                    
001244   e303     BNC       0x124c                                                                                          
001246   cfe5     MOVFF     0xfe5,0xfed                                                                                     
001248   ffed                                                                                                               
00124a   d7fb     BRA       0x1242                                                                                          
00124c   ee00     LFSR      0x0,0x18                                                                                        
00124e   f018                                                                                                               
001250   0e0b     MOVLW     0xb                                                                                             
001252   04e8     DECF      0xe8,0x0,0x0                                                                                    
001254   e303     BNC       0x125c                                                                                          
001256   cfe5     MOVFF     0xfe5,0xfed                                                                                     
001258   ffed                                                                                                               
00125a   d7fb     BRA       0x1252                                                                                          
00125c   cfe5     MOVFF     0xfe5,0xffa                                                                                     
00125e   fffa                                                                                                               
001260   cfe5     MOVFF     0xfe5,0xff4                                                                                     
001262   fff4                                                                                                               
001264   cfe5     MOVFF     0xfe5,0xff3                                                                                     
001266   fff3                                                                                                               
001268   cfe5     MOVFF     0xfe5,0xff5                                                                                     
00126a   fff5                                                                                                               
00126c   cfe5     MOVFF     0xfe5,0xff7                                                                                     
00126e   fff7                                                                                                               
001270   cfe5     MOVFF     0xfe5,0xff6                                                                                     
001272   fff6                                                                                                               
001274   cfe5     MOVFF     0xfe5,0xfea                                                                                     
001276   ffea                                                                                                               
001278   cfe5     MOVFF     0xfe5,0xfe9                                                                                     
00127a   ffe9                                                                                                               
00127c   cfe5     MOVFF     0xfe5,0xfda                                                                                     
00127e   ffda                                                                                                               
001280   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
001282   cfda     MOVFF     0xfda,0xfe4    void low_isr(void)                                                               F:\MCP\projects\CAN\canBase\Source\Main.c
001284   ffe4                                                                                                               
001286   cfe2     MOVFF     0xfe2,0xfda                                                                                     
001288   ffda                                                                                                               
00128a   52e6     MOVF      0xe6,0x1,0x0                                                                                    
                                           {                                                                                F:\MCP\projects\CAN\canBase\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Main.c
00128c   52e5     MOVF      0xe5,0x1,0x0   }                                                                                F:\MCP\projects\CAN\canBase\Source\Main.c
00128e   cfe5     MOVFF     0xfe5,0xfda                                                                                     
001290   ffda                                                                                                               
001292   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
001294   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
001296   8ef2     BSF       0xf2,0x7,0x0       INTCONbits.GIEH = 1;                                                         F:\MCP\projects\CAN\canBase\Source\Main.c
001298   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
00129a   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
00129c   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
00129e   cfd9     MOVFF     0xfd9,0xfe6    void canParse(CAN_MESSAGE cm)                                                    F:\MCP\projects\CAN\canBase\Source\Main.c
0012a0   ffe6                                                                                                               
0012a2   cfe1     MOVFF     0xfe1,0xfd9                                                                                     
0012a4   ffd9                                                                                                               
0012a6   0e0f     MOVLW     0xf                                                                                             
0012a8   26e1     ADDWF     0xe1,0x1,0x0                                                                                    
                                           {                                                                                F:\MCP\projects\CAN\canBase\Source\Main.c
                                            CAN_MESSAGE outCm;                                                              F:\MCP\projects\CAN\canBase\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Main.c
0012aa   0004     CLRWDT                    ClrWdt();                                                                       F:\MCP\projects\CAN\canBase\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Main.c
0012ac   0ef0     MOVLW     0xf0            switch(cm.funct)                                                                F:\MCP\projects\CAN\canBase\Source\Main.c
0012ae   50db     MOVF      0xdb,0x0,0x0                                                                                    
0012b0   e001     BZ        0x12b4                                                                                          
0012b2   d0b2     BRA       0x1418                                                                                          
                                            {                                                                               F:\MCP\projects\CAN\canBase\Source\Main.c
                                                case FUNCT_BOOTLOADER:                                                         F:\MCP\projects\CAN\canBase\Source\Main.c
0012b4   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
0012b6   50db     MOVF      0xdb,0x0,0x0                                                                                    
0012b8   0100     MOVLB     0x0                                                                                             
0012ba   5d62     SUBWF     0x62,0x0,0x1                                                                                    
0012bc   e001     BZ        0x12c0                                                                                          
0012be   d0ab     BRA       0x1416                                                                                          
0012c0   0efc     MOVLW     0xfc                                                                                            
0012c2   cfdb     MOVFF     0xfdb,0x2                                                                                       
0012c4   f002                                                                                                               
0012c6   c002     MOVFF     0x2,0x3                                                                                         
0012c8   f003                                                                                                               
0012ca   6a02     CLRF      0x2,0x0                                                                                         
0012cc   0efb     MOVLW     0xfb                                                                                            
0012ce   50db     MOVF      0xdb,0x0,0x0                                                                                    
0012d0   0100     MOVLB     0x0                                                                                             
0012d2   2402     ADDWF     0x2,0x0,0x0                                                                                     
0012d4   6e00     MOVWF     0x0,0x0                                                                                         
0012d6   0e00     MOVLW     0x0                                                                                             
0012d8   2003     ADDWFC    0x3,0x0,0x0                                                                                     
0012da   6e01     MOVWF     0x1,0x0                                                                                         
0012dc   0100     MOVLB     0x0                                                                                             
0012de   5160     MOVF      0x60,0x0,0x1                                                                                    
0012e0   1800     XORWF     0x0,0x0,0x0                                                                                     
0012e2   e102     BNZ       0x12e8                                                                                          
0012e4   5161     MOVF      0x61,0x0,0x1                                                                                    
0012e6   1801     XORWF     0x1,0x0,0x0                                                                                     
0012e8   e001     BZ        0x12ec                                                                                          
0012ea   d095     BRA       0x1416                                                                                          
                                                    {                                                                             F:\MCP\projects\CAN\canBase\Source\Main.c
0012ec   0ef1     MOVLW     0xf1                        switch(cm.funcc)                                                             F:\MCP\projects\CAN\canBase\Source\Main.c
0012ee   cfdb     MOVFF     0xfdb,0x14                                                                                      
0012f0   f014                                                                                                               
0012f2   0ef2     MOVLW     0xf2                                                                                            
0012f4   cfdb     MOVFF     0xfdb,0x15                                                                                      
0012f6   f015                                                                                                               
0012f8   0e06     MOVLW     0x6                                                                                             
0012fa   1814     XORWF     0x14,0x0,0x0                                                                                    
0012fc   e101     BNZ       0x1300                                                                                          
0012fe   5015     MOVF      0x15,0x0,0x0                                                                                    
001300   e008     BZ        0x1312                                                                                          
001302   0e01     MOVLW     0x1                                                                                             
001304   1814     XORWF     0x14,0x0,0x0                                                                                    
001306   e101     BNZ       0x130a                                                                                          
001308   5015     MOVF      0x15,0x0,0x0                                                                                    
00130a   e001     BZ        0x130e                                                                                          
00130c   d084     BRA       0x1416                                                                                          
                                                        {                                                                            F:\MCP\projects\CAN\canBase\Source\Main.c
00130e   00ff     RESET                                     case FUNCC_BOOT_INIT: Reset(); break; //User whant to program me, reset me. F:\MCP\projects\CAN\canBase\Source\Main.c
001310   d082     BRA       0x1416                                                                                          
                                                            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
001312   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
001314   cfdb     MOVFF     0xfdb,0x0                                                                                       
001316   f000                                                                                                               
001318   c000     MOVFF     0x0,0x1                                                                                         
00131a   f001                                                                                                               
00131c   6a00     CLRF      0x0,0x0                                                                                         
00131e   0ef7     MOVLW     0xf7                                                                                            
001320   50db     MOVF      0xdb,0x0,0x0                                                                                    
001322   0100     MOVLB     0x0                                                                                             
001324   2400     ADDWF     0x0,0x0,0x0                                                                                     
001326   6f60     MOVWF     0x60,0x1                                                                                        
001328   0e00     MOVLW     0x0                                                                                             
00132a   2001     ADDWFC    0x1,0x0,0x0                                                                                     
00132c   6f61     MOVWF     0x61,0x1                                                                                        
00132e   0ef9     MOVLW     0xf9                                MY_NID=cm.data[BOOT_DATA_NEW_NID];                                         F:\MCP\projects\CAN\canBase\Source\Main.c
001330   cfdb     MOVFF     0xfdb,0x62                                                                                      
001332   f062                                                                                                               
001334   0ef8     MOVLW     0xf8                                EEWrite(NODE_ID_EE+1,cm.data[BOOT_DATA_NEW_ID_HIGH]);                      F:\MCP\projects\CAN\canBase\Source\Main.c
001336   cfdb     MOVFF     0xfdb,0xfe6                                                                                     
001338   ffe6                                                                                                               
00133a   0e01     MOVLW     0x1                                                                                             
00133c   6ee6     MOVWF     0xe6,0x0                                                                                        
00133e   6ae6     CLRF      0xe6,0x0                                                                                        
001340   ec21     CALL      0x1842,0x0                                                                                      
001342   f00c                                                                                                               
001344   52e5     MOVF      0xe5,0x1,0x0                                                                                    
001346   52e5     MOVF      0xe5,0x1,0x0                                                                                    
001348   52e5     MOVF      0xe5,0x1,0x0                                                                                    
00134a   0ef7     MOVLW     0xf7                                EEWrite(NODE_ID_EE+2,cm.data[BOOT_DATA_NEW_ID_LOW]);                       F:\MCP\projects\CAN\canBase\Source\Main.c
00134c   cfdb     MOVFF     0xfdb,0xfe6                                                                                     
00134e   ffe6                                                                                                               
001350   0e02     MOVLW     0x2                                                                                             
001352   6ee6     MOVWF     0xe6,0x0                                                                                        
001354   6ae6     CLRF      0xe6,0x0                                                                                        
001356   ec21     CALL      0x1842,0x0                                                                                      
001358   f00c                                                                                                               
00135a   52e5     MOVF      0xe5,0x1,0x0                                                                                    
00135c   52e5     MOVF      0xe5,0x1,0x0                                                                                    
00135e   52e5     MOVF      0xe5,0x1,0x0                                                                                    
001360   0ef9     MOVLW     0xf9                                EEWrite(NODE_ID_EE+3,cm.data[BOOT_DATA_NEW_NID]);                          F:\MCP\projects\CAN\canBase\Source\Main.c
001362   cfdb     MOVFF     0xfdb,0xfe6                                                                                     
001364   ffe6                                                                                                               
001366   0e03     MOVLW     0x3                                                                                             
001368   6ee6     MOVWF     0xe6,0x0                                                                                        
00136a   6ae6     CLRF      0xe6,0x0                                                                                        
00136c   ec21     CALL      0x1842,0x0                                                                                      
00136e   f00c                                                                                                               
001370   52e5     MOVF      0xe5,0x1,0x0                                                                                    
001372   52e5     MOVF      0xe5,0x1,0x0                                                                                    
001374   52e5     MOVF      0xe5,0x1,0x0                                                                                    
001376   0e2a     MOVLW     0x2a                                EEWrite(NODE_ID_EE,NODE_HAS_ID);                                           F:\MCP\projects\CAN\canBase\Source\Main.c
001378   6ee6     MOVWF     0xe6,0x0                                                                                        
00137a   0e00     MOVLW     0x0                                                                                             
00137c   6ee6     MOVWF     0xe6,0x0                                                                                        
00137e   6ae6     CLRF      0xe6,0x0                                                                                        
001380   ec21     CALL      0x1842,0x0                                                                                      
001382   f00c                                                                                                               
001384   52e5     MOVF      0xe5,0x1,0x0                                                                                    
001386   52e5     MOVF      0xe5,0x1,0x0                                                                                    
001388   52e5     MOVF      0xe5,0x1,0x0                                                                                    
                                                                // Send ack with new id.                                                   F:\MCP\projects\CAN\canBase\Source\Main.c
00138a   6adf     CLRF      0xdf,0x0                            outCm.funct                     = FUNCT_BOOTLOADER;                                       F:\MCP\projects\CAN\canBase\Source\Main.c
00138c   0e04     MOVLW     0x4                                 outCm.funcc                     = FUNCC_BOOT_ACK;                                         F:\MCP\projects\CAN\canBase\Source\Main.c
00138e   6ef3     MOVWF     0xf3,0x0                                                                                        
001390   0e01     MOVLW     0x1                                                                                             
001392   cff3     MOVFF     0xff3,0xfdb                                                                                     
001394   ffdb                                                                                                               
001396   0e02     MOVLW     0x2                                                                                             
001398   6adb     CLRF      0xdb,0x0                                                                                        
00139a   0e03     MOVLW     0x3                                 outCm.nid                       = MY_NID;                                                 F:\MCP\projects\CAN\canBase\Source\Main.c
00139c   c062     MOVFF     0x62,0xfdb                                                                                      
00139e   ffdb                                                                                                               
0013a0   0e04     MOVLW     0x4                                 outCm.sid                       = MY_ID;                                                  F:\MCP\projects\CAN\canBase\Source\Main.c
0013a2   c060     MOVFF     0x60,0xfdb                                                                                      
0013a4   ffdb                                                                                                               
0013a6   0e05     MOVLW     0x5                                                                                             
0013a8   c061     MOVFF     0x61,0xfdb                                                                                      
0013aa   ffdb                                                                                                               
0013ac   0e08     MOVLW     0x8                                 outCm.data_length               = 8;                                                 F:\MCP\projects\CAN\canBase\Source\Main.c
0013ae   6ef3     MOVWF     0xf3,0x0                                                                                        
0013b0   0e06     MOVLW     0x6                                                                                             
0013b2   cff3     MOVFF     0xff3,0xfdb                                                                                     
0013b4   ffdb                                                                                                               
0013b6   0e0b     MOVLW     0xb                                 outCm.data[BOOT_DATA_ERR_INDEX] = ACK_ERR_NO_ERROR;                        F:\MCP\projects\CAN\canBase\Source\Main.c
0013b8   6adb     CLRF      0xdb,0x0                                                                                        
0013ba   0e02     MOVLW     0x2                                 while(!canSendMessage(outCm,PRIO_HIGH));                                   F:\MCP\projects\CAN\canBase\Source\Main.c
0013bc   6ee6     MOVWF     0xe6,0x0                                                                                        
0013be   cfd9     MOVFF     0xfd9,0xfe9                                                                                     
0013c0   ffe9                                                                                                               
0013c2   cfda     MOVFF     0xfda,0xfea                                                                                     
0013c4   ffea                                                                                                               
0013c6   cfee     MOVFF     0xfee,0xfe6                                                                                     
0013c8   ffe6                                                                                                               
0013ca   cfee     MOVFF     0xfee,0xfe6                                                                                     
0013cc   ffe6                                                                                                               
0013ce   cfee     MOVFF     0xfee,0xfe6                                                                                     
0013d0   ffe6                                                                                                               
0013d2   cfee     MOVFF     0xfee,0xfe6                                                                                     
0013d4   ffe6                                                                                                               
0013d6   cfee     MOVFF     0xfee,0xfe6                                                                                     
0013d8   ffe6                                                                                                               
0013da   cfee     MOVFF     0xfee,0xfe6                                                                                     
0013dc   ffe6                                                                                                               
0013de   cfee     MOVFF     0xfee,0xfe6                                                                                     
0013e0   ffe6                                                                                                               
0013e2   cfee     MOVFF     0xfee,0xfe6                                                                                     
0013e4   ffe6                                                                                                               
0013e6   cfee     MOVFF     0xfee,0xfe6                                                                                     
0013e8   ffe6                                                                                                               
0013ea   cfee     MOVFF     0xfee,0xfe6                                                                                     
0013ec   ffe6                                                                                                               
0013ee   cfee     MOVFF     0xfee,0xfe6                                                                                     
0013f0   ffe6                                                                                                               
0013f2   cfee     MOVFF     0xfee,0xfe6                                                                                     
0013f4   ffe6                                                                                                               
0013f6   cfee     MOVFF     0xfee,0xfe6                                                                                     
0013f8   ffe6                                                                                                               
0013fa   cfee     MOVFF     0xfee,0xfe6                                                                                     
0013fc   ffe6                                                                                                               
0013fe   cfee     MOVFF     0xfee,0xfe6                                                                                     
001400   ffe6                                                                                                               
001402   ec2c     CALL      0x1658,0x0                                                                                      
001404   f00b                                                                                                               
001406   6e00     MOVWF     0x0,0x0                                                                                         
001408   0e10     MOVLW     0x10                                                                                            
00140a   5ee1     SUBWF     0xe1,0x1,0x0                                                                                    
00140c   5000     MOVF      0x0,0x0,0x0                                                                                     
00140e   0900     IORLW     0x0                                                                                             
001410   e101     BNZ       0x1414                                                                                          
001412   d7d3     BRA       0x13ba                                                                                          
001414   d000     BRA       0x1416                          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
001416   d000     BRA       0x1418              break;                                                                         F:\MCP\projects\CAN\canBase\Source\Main.c
                                            }                                                                               F:\MCP\projects\CAN\canBase\Source\Main.c
001418   0e0f     MOVLW     0xf            }                                                                                F:\MCP\projects\CAN\canBase\Source\Main.c
00141a   5ce1     SUBWF     0xe1,0x0,0x0                                                                                    
00141c   e202     BC        0x1422                                                                                          
00141e   6ae1     CLRF      0xe1,0x0                                                                                        
001420   52e5     MOVF      0xe5,0x1,0x0                                                                                    
001422   6ee1     MOVWF     0xe1,0x0                                                                                        
001424   52e5     MOVF      0xe5,0x1,0x0                                                                                    
001426   cfe7     MOVFF     0xfe7,0xfd9                                                                                     
001428   ffd9                                                                                                               
00142a   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   efc3     GOTO      0x1986             _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   eff3     GOTO      0x11e6          _asm GOTO high_isr _endasm                                                      F:\MCP\projects\CAN\canBase\Source\Main.c
00100a   f008                                                                                                               
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   ef41     GOTO      0x1282             _asm GOTO low_isr _endasm                                                    F:\MCP\projects\CAN\canBase\Source\Main.c
00101a   f009                                                                                                               
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
0017f8   cfd9     MOVFF     0xfd9,0xfe6    BYTE EERead(WORD addr)                                                           F:\MCP\projects\CAN\Include\EEAccess.c
0017fa   ffe6                                                                                                               
0017fc   cfe1     MOVFF     0xfe1,0xfd9                                                                                     
0017fe   ffd9                                                                                                               
                                           {                                                                                F:\MCP\projects\CAN\Include\EEAccess.c
001800   0efd     MOVLW     0xfd            EEADRH=(BYTE)(addr>>8);                                                         F:\MCP\projects\CAN\Include\EEAccess.c
001802   cfdb     MOVFF     0xfdb,0x0                                                                                       
001804   f000                                                                                                               
001806   0efe     MOVLW     0xfe                                                                                            
001808   cfdb     MOVFF     0xfdb,0x1                                                                                       
00180a   f001                                                                                                               
00180c   c001     MOVFF     0x1,0x0                                                                                         
00180e   f000                                                                                                               
001810   6a01     CLRF      0x1,0x0                                                                                         
001812   5000     MOVF      0x0,0x0,0x0                                                                                     
001814   6eaa     MOVWF     0xaa,0x0                                                                                        
001816   0eff     MOVLW     0xff            EEADR=(BYTE)(addr & 0xFF);                                                      F:\MCP\projects\CAN\Include\EEAccess.c
001818   6ee7     MOVWF     0xe7,0x0                                                                                        
00181a   0efd     MOVLW     0xfd                                                                                            
00181c   cfdb     MOVFF     0xfdb,0x0                                                                                       
00181e   f000                                                                                                               
001820   0efe     MOVLW     0xfe                                                                                            
001822   cfdb     MOVFF     0xfdb,0x1                                                                                       
001824   f001                                                                                                               
001826   50e7     MOVF      0xe7,0x0,0x0                                                                                    
001828   1600     ANDWF     0x0,0x1,0x0                                                                                     
00182a   6a01     CLRF      0x1,0x0                                                                                         
00182c   5000     MOVF      0x0,0x0,0x0                                                                                     
00182e   6ea9     MOVWF     0xa9,0x0                                                                                        
001830   9ea6     BCF       0xa6,0x7,0x0    EECON1bits.EEPGD=0;                                                             F:\MCP\projects\CAN\Include\EEAccess.c
001832   9ca6     BCF       0xa6,0x6,0x0    EECON1bits.CFGS=0;                                                              F:\MCP\projects\CAN\Include\EEAccess.c
001834   80a6     BSF       0xa6,0x0,0x0    EECON1bits.RD=1;                                                                F:\MCP\projects\CAN\Include\EEAccess.c
001836   50a8     MOVF      0xa8,0x0,0x0    return EEDATA;                                                                   F:\MCP\projects\CAN\Include\EEAccess.c
001838   d000     BRA       0x183a                                                                                          
00183a   52e5     MOVF      0xe5,0x1,0x0   }                                                                                F:\MCP\projects\CAN\Include\EEAccess.c
00183c   cfe7     MOVFF     0xfe7,0xfd9                                                                                     
00183e   ffd9                                                                                                               
001840   0012     RETURN    0x0                                                                                             
                                                                                                                            F:\MCP\projects\CAN\Include\EEAccess.c
                                                                                                                            F:\MCP\projects\CAN\Include\EEAccess.c
001842   cfd9     MOVFF     0xfd9,0xfe6    void EEWrite(WORD addr,BYTE data)                                                F:\MCP\projects\CAN\Include\EEAccess.c
001844   ffe6                                                                                                               
001846   cfe1     MOVFF     0xfe1,0xfd9                                                                                     
001848   ffd9                                                                                                               
                                           {                                                                                F:\MCP\projects\CAN\Include\EEAccess.c
00184a   98a1     BCF       0xa1,0x4,0x0    PIR2bits.EEIF=0;                                                                F:\MCP\projects\CAN\Include\EEAccess.c
00184c   0efd     MOVLW     0xfd            EEADRH=(BYTE)(addr>>8);                                                         F:\MCP\projects\CAN\Include\EEAccess.c
00184e   cfdb     MOVFF     0xfdb,0x0                                                                                       
001850   f000                                                                                                               
001852   0efe     MOVLW     0xfe                                                                                            
001854   cfdb     MOVFF     0xfdb,0x1                                                                                       
001856   f001                                                                                                               
001858   c001     MOVFF     0x1,0x0                                                                                         
00185a   f000                                                                                                               
00185c   6a01     CLRF      0x1,0x0                                                                                         
00185e   5000     MOVF      0x0,0x0,0x0                                                                                     
001860   6eaa     MOVWF     0xaa,0x0                                                                                        
001862   0eff     MOVLW     0xff            EEADR=(BYTE)(addr & 0xFF);                                                      F:\MCP\projects\CAN\Include\EEAccess.c
001864   6ee7     MOVWF     0xe7,0x0                                                                                        
001866   0efd     MOVLW     0xfd                                                                                            
001868   cfdb     MOVFF     0xfdb,0x0                                                                                       
00186a   f000                                                                                                               
00186c   0efe     MOVLW     0xfe                                                                                            
00186e   cfdb     MOVFF     0xfdb,0x1                                                                                       
001870   f001                                                                                                               
001872   50e7     MOVF      0xe7,0x0,0x0                                                                                    
001874   1600     ANDWF     0x0,0x1,0x0                                                                                     
001876   6a01     CLRF      0x1,0x0                                                                                         
001878   5000     MOVF      0x0,0x0,0x0                                                                                     
00187a   6ea9     MOVWF     0xa9,0x0                                                                                        
00187c   0efc     MOVLW     0xfc            EEDATA=data;                                                                    F:\MCP\projects\CAN\Include\EEAccess.c
00187e   50db     MOVF      0xdb,0x0,0x0                                                                                    
001880   6ea8     MOVWF     0xa8,0x0                                                                                        
001882   9ea6     BCF       0xa6,0x7,0x0    EECON1bits.EEPGD=0;                                                             F:\MCP\projects\CAN\Include\EEAccess.c
001884   9ca6     BCF       0xa6,0x6,0x0    EECON1bits.CFGS=0;                                                              F:\MCP\projects\CAN\Include\EEAccess.c
001886   84a6     BSF       0xa6,0x2,0x0    EECON1bits.WREN=1;                                                              F:\MCP\projects\CAN\Include\EEAccess.c
001888   9ef2     BCF       0xf2,0x7,0x0    INTCONbits.GIE=0;                                                               F:\MCP\projects\CAN\Include\EEAccess.c
00188a   0e55     MOVLW     0x55            EECON2=0x55;                                                                    F:\MCP\projects\CAN\Include\EEAccess.c
00188c   6ea7     MOVWF     0xa7,0x0                                                                                        
00188e   0eaa     MOVLW     0xaa            EECON2=0xAA;                                                                    F:\MCP\projects\CAN\Include\EEAccess.c
001890   6ea7     MOVWF     0xa7,0x0                                                                                        
001892   82a6     BSF       0xa6,0x1,0x0    EECON1bits.WR=1;                                                                F:\MCP\projects\CAN\Include\EEAccess.c
001894   8ef2     BSF       0xf2,0x7,0x0    INTCONbits.GIE=1;                                                               F:\MCP\projects\CAN\Include\EEAccess.c
001896   a8a1     BTFSS     0xa1,0x4,0x0    while(!PIR2bits.EEIF);                                                          F:\MCP\projects\CAN\Include\EEAccess.c
001898   d7fe     BRA       0x1896                                                                                          
00189a   94a6     BCF       0xa6,0x2,0x0    EECON1bits.WREN=0;                                                              F:\MCP\projects\CAN\Include\EEAccess.c
00189c   52e5     MOVF      0xe5,0x1,0x0   }                                                                                F:\MCP\projects\CAN\Include\EEAccess.c
00189e   cfe7     MOVFF     0xfe7,0xfd9                                                                                     
0018a0   ffd9                                                                                                               
0018a2   0012     RETURN    0x0