Subversion Repositories HomeAutomation

Rev

Rev 282 | 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: Mon Feb 05 18:31:50 2007


Address  Value    Disassembly              Source                                                                           File
-------  -------  -----------------------  -------------------------------------------------------------------------------  -----
                                           /*********************************************************************           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: 2007-02-03 16:58:13 +0100 (lö, 03 feb 2007) $ F:\MCP\projects\CAN\canBase\Source\CAN.c
                                            * By:               $LastChangedBy: johboh $                                               F:\MCP\projects\CAN\canBase\Source\CAN.c
                                            * Revision:     $Revision: 282 $                                                   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
                                           #include <EEaccess.h>                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
                                           #include <funcdefs.h>                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
                                           #include <Tick.h>                                                                F:\MCP\projects\CAN\canBase\Source\CAN.c
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
                                           TICK heartbeat;                                                                  F:\MCP\projects\CAN\canBase\Source\CAN.c
                                           static int MY_ID = DEFAULT_ID;                                                   F:\MCP\projects\CAN\canBase\Source\CAN.c
                                           static BYTE MY_NID = DEFAULT_NID;                                                F:\MCP\projects\CAN\canBase\Source\CAN.c
                                           static CAN_MESSAGE outCm;                                                        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
                                                                                                                            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
00105c   0e80     MOVLW     0x80            CANCON = 0x80; //request config mode                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
00105e   6e6f     MOVWF     0x6f,0x0                                                                                        
001060   0ee0     MOVLW     0xe0            while ((CANSTAT & 0xE0) != 0x80 ); //wait for config mode request               F:\MCP\projects\CAN\canBase\Source\CAN.c
001062   146e     ANDWF     0x6e,0x0,0x0                                                                                    
001064   0880     SUBLW     0x80                                                                                            
001066   e001     BZ        0x106a                                                                                          
001068   d7fb     BRA       0x1060                                                                                          
                                                                                                                            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
                                            // 500Khz@40Mhz (new by the book)                                               F:\MCP\projects\CAN\canBase\Source\CAN.c
00106a   0e04     MOVLW     0x4             BRGCON1 = 0x04;                                                                 F:\MCP\projects\CAN\canBase\Source\CAN.c
00106c   6e70     MOVWF     0x70,0x0                                                                                        
00106e   0ed1     MOVLW     0xd1            BRGCON2 = 0xD1;                                                                 F:\MCP\projects\CAN\canBase\Source\CAN.c
001070   6e71     MOVWF     0x71,0x0                                                                                        
001072   0e81     MOVLW     0x81            BRGCON3 = 0x81;                                                                 F:\MCP\projects\CAN\canBase\Source\CAN.c
001074   6e72     MOVWF     0x72,0x0                                                                                        
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
                                            //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
                                            //BRGCON1bits.SJW1=0;                                                           F:\MCP\projects\CAN\canBase\Source\CAN.c
                                            //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
                                            //BRGCON1=BRGCON1|CAN_BRP;                                                      F:\MCP\projects\CAN\canBase\Source\CAN.c
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
                                            // Maximum PHEG1                                                                F:\MCP\projects\CAN\canBase\Source\CAN.c
                                            //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
                                            //BRGCON2bits.SEG1PH2 = 0;                                                      F:\MCP\projects\CAN\canBase\Source\CAN.c
                                            //BRGCON2bits.SEG1PH1 = 0;                                                      F:\MCP\projects\CAN\canBase\Source\CAN.c
                                            //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
                                            //BRGCON2bits.PRSEG2 = 0;                                                       F:\MCP\projects\CAN\canBase\Source\CAN.c
                                            //BRGCON2bits.PRSEG1 = 0;                                                       F:\MCP\projects\CAN\canBase\Source\CAN.c
                                            //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
                                            //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
                                            //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
                                            //BRGCON3bits.SEG2PH2 = 0;                                                      F:\MCP\projects\CAN\canBase\Source\CAN.c
                                            //BRGCON3bits.SEG2PH1 = 0;                                                      F:\MCP\projects\CAN\canBase\Source\CAN.c
                                            //BRGCON3bits.SEG2PH0 = 1;                                                      F:\MCP\projects\CAN\canBase\Source\CAN.c
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
001076   6a77     CLRF      0x77,0x0        ECANCON=0;                                                                      F:\MCP\projects\CAN\canBase\Source\CAN.c
001078   8e77     BSF       0x77,0x7,0x0    ECANCONbits.MDSEL1 = 1; // 0  For mode 1                                        F:\MCP\projects\CAN\canBase\Source\CAN.c
00107a   9c77     BCF       0x77,0x6,0x0    ECANCONbits.MDSEL0 = 0; // 1  For mode 1                                        F:\MCP\projects\CAN\canBase\Source\CAN.c
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
                                            // FILTERS AND MASKS                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
00107c   8c60     BSF       0x60,0x6,0x0    RXB0CONbits.RXM1=1;                                                             F:\MCP\projects\CAN\canBase\Source\CAN.c
00107e   9a60     BCF       0x60,0x5,0x0    RXB0CONbits.RXM0=0;                                                             F:\MCP\projects\CAN\canBase\Source\CAN.c
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
                                            // INTERRUPTS                                                                   F:\MCP\projects\CAN\canBase\Source\CAN.c
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
                                            // Diable transmit interrupt                                                    F:\MCP\projects\CAN\canBase\Source\CAN.c
001080   010d     MOVLB     0xd             TXBIE = 0;                                                                      F:\MCP\projects\CAN\canBase\Source\CAN.c
001082   6bfc     CLRF      0xfc,0x1                                                                                        
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
                                            //rx any interrupt                                                              F:\MCP\projects\CAN\canBase\Source\CAN.c
001084   6aa4     CLRF      0xa4,0x0        PIR3 = 0;                                                                       F:\MCP\projects\CAN\canBase\Source\CAN.c
001086   0e03     MOVLW     0x3             PIE3 = 0b00000011;                                                              F:\MCP\projects\CAN\canBase\Source\CAN.c
001088   6ea3     MOVWF     0xa3,0x0                                                                                        
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
                                            // High interrupt                                                               F:\MCP\projects\CAN\canBase\Source\CAN.c
00108a   6ea5     MOVWF     0xa5,0x0        IPR3 =0b00000011;                                                               F:\MCP\projects\CAN\canBase\Source\CAN.c
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
                                            // Programmable buffers interrupt                                               F:\MCP\projects\CAN\canBase\Source\CAN.c
00108c   69fa     SETF      0xfa,0x1        BIE0  = 0xFF;                                                                     F:\MCP\projects\CAN\canBase\Source\CAN.c
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
                                            //loopback mode or not                                                          F:\MCP\projects\CAN\canBase\Source\CAN.c
                                            #ifdef CAN_LOOPBACK_MODE                                                        F:\MCP\projects\CAN\canBase\Source\CAN.c
                                                CANCON = 0x40;//request loopback mode                                          F:\MCP\projects\CAN\canBase\Source\CAN.c
                                                while ((CANSTAT & 0xE0) != 0x40 );//wait for loopback mode                     F:\MCP\projects\CAN\canBase\Source\CAN.c
                                            #else                                                                           F:\MCP\projects\CAN\canBase\Source\CAN.c
00108e   6a6f     CLRF      0x6f,0x0            CANCON = 0x00;//request normal mode                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
001090   0ee0     MOVLW     0xe0                while ((CANSTAT & 0xE0) != 0x00 );//wait for normal mode                       F:\MCP\projects\CAN\canBase\Source\CAN.c
001092   146e     ANDWF     0x6e,0x0,0x0                                                                                    
001094   e001     BZ        0x1098                                                                                          
001096   d7fc     BRA       0x1090                                                                                          
                                            #endif                                                                          F:\MCP\projects\CAN\canBase\Source\CAN.c
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
                                            // Init ticker service                                                          F:\MCP\projects\CAN\canBase\Source\CAN.c
001098   ecc8     CALL      0x1d90,0x0      tickInit();                                                                     F:\MCP\projects\CAN\canBase\Source\CAN.c
00109a   f00e                                                                                                               
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
                                            // Read ID and NID if exist.                                                    F:\MCP\projects\CAN\canBase\Source\CAN.c
00109c   0e00     MOVLW     0x0             if (EERead(NODE_ID_EE)==NODE_HAS_ID)                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
00109e   6ee6     MOVWF     0xe6,0x0                                                                                        
0010a0   6ae6     CLRF      0xe6,0x0                                                                                        
0010a2   ec23     CALL      0x1c46,0x0                                                                                      
0010a4   f00e                                                                                                               
0010a6   52e5     MOVF      0xe5,0x1,0x0                                                                                    
0010a8   52e5     MOVF      0xe5,0x1,0x0                                                                                    
0010aa   082a     SUBLW     0x2a                                                                                            
0010ac   e12b     BNZ       0x1104                                                                                          
                                            {                                                                               F:\MCP\projects\CAN\canBase\Source\CAN.c
0010ae   0e01     MOVLW     0x1                 MY_ID=(((WORD)EERead(NODE_ID_EE + 1))<<8)+EERead(NODE_ID_EE + 2);              F:\MCP\projects\CAN\canBase\Source\CAN.c
0010b0   6ee6     MOVWF     0xe6,0x0                                                                                        
0010b2   6ae6     CLRF      0xe6,0x0                                                                                        
0010b4   ec23     CALL      0x1c46,0x0                                                                                      
0010b6   f00e                                                                                                               
0010b8   52e5     MOVF      0xe5,0x1,0x0                                                                                    
0010ba   52e5     MOVF      0xe5,0x1,0x0                                                                                    
0010bc   6e14     MOVWF     0x14,0x0                                                                                        
0010be   c014     MOVFF     0x14,0x15                                                                                       
0010c0   f015                                                                                                               
0010c2   6a14     CLRF      0x14,0x0                                                                                        
0010c4   c014     MOVFF     0x14,0xfe6                                                                                      
0010c6   ffe6                                                                                                               
0010c8   c015     MOVFF     0x15,0xfe6                                                                                      
0010ca   ffe6                                                                                                               
0010cc   0e02     MOVLW     0x2                                                                                             
0010ce   6ee6     MOVWF     0xe6,0x0                                                                                        
0010d0   6ae6     CLRF      0xe6,0x0                                                                                        
0010d2   ec23     CALL      0x1c46,0x0                                                                                      
0010d4   f00e                                                                                                               
0010d6   52e5     MOVF      0xe5,0x1,0x0                                                                                    
0010d8   52e5     MOVF      0xe5,0x1,0x0                                                                                    
0010da   52e5     MOVF      0xe5,0x1,0x0                                                                                    
0010dc   cfe7     MOVFF     0xfe7,0x15                                                                                      
0010de   f015                                                                                                               
0010e0   52e5     MOVF      0xe5,0x1,0x0                                                                                    
0010e2   cfe7     MOVFF     0xfe7,0x14                                                                                      
0010e4   f014                                                                                                               
0010e6   0100     MOVLB     0x0                                                                                             
0010e8   2414     ADDWF     0x14,0x0,0x0                                                                                    
0010ea   6f93     MOVWF     0x93,0x1                                                                                        
0010ec   0e00     MOVLW     0x0                                                                                             
0010ee   2015     ADDWFC    0x15,0x0,0x0                                                                                    
0010f0   6f94     MOVWF     0x94,0x1                                                                                        
0010f2   0e03     MOVLW     0x3                 MY_NID=EERead(NODE_ID_EE + 3);                                                 F:\MCP\projects\CAN\canBase\Source\CAN.c
0010f4   6ee6     MOVWF     0xe6,0x0                                                                                        
0010f6   6ae6     CLRF      0xe6,0x0                                                                                        
0010f8   ec23     CALL      0x1c46,0x0                                                                                      
0010fa   f00e                                                                                                               
0010fc   52e5     MOVF      0xe5,0x1,0x0                                                                                    
0010fe   52e5     MOVF      0xe5,0x1,0x0                                                                                    
001100   0100     MOVLB     0x0                                                                                             
001102   6f95     MOVWF     0x95,0x1                                                                                        
                                            }                                                                               F:\MCP\projects\CAN\canBase\Source\CAN.c
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
                                            // Send user program startup heatbeat                                           F:\MCP\projects\CAN\canBase\Source\CAN.c
001104   0100     MOVLB     0x0             outCm.funct                     = FUNCT_BOOTLOADER;                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
001106   6b64     CLRF      0x64,0x1                                                                                        
001108   0e08     MOVLW     0x8             outCm.funcc                     = FUNCC_BOOT_HEARTBEAT;                                        F:\MCP\projects\CAN\canBase\Source\CAN.c
00110a   6f65     MOVWF     0x65,0x1                                                                                        
00110c   6b66     CLRF      0x66,0x1                                                                                        
00110e   0e01     MOVLW     0x1             outCm.data_length               = 1;                                                      F:\MCP\projects\CAN\canBase\Source\CAN.c
001110   6f6a     MOVWF     0x6a,0x1                                                                                        
001112   6f6b     MOVWF     0x6b,0x1        outCm.data[BOOT_DATA_HEARTBEAT_INDEX] = HEARTBEAT_USER_STARTUP;                 F:\MCP\projects\CAN\canBase\Source\CAN.c
001114   0e02     MOVLW     0x2             canSendMessage(outCm,PRIO_HIGH);                                                F:\MCP\projects\CAN\canBase\Source\CAN.c
001116   6ee6     MOVWF     0xe6,0x0                                                                                        
001118   c064     MOVFF     0x64,0xfe6                                                                                      
00111a   ffe6                                                                                                               
00111c   c065     MOVFF     0x65,0xfe6                                                                                      
00111e   ffe6                                                                                                               
001120   c066     MOVFF     0x66,0xfe6                                                                                      
001122   ffe6                                                                                                               
001124   c067     MOVFF     0x67,0xfe6                                                                                      
001126   ffe6                                                                                                               
001128   c068     MOVFF     0x68,0xfe6                                                                                      
00112a   ffe6                                                                                                               
00112c   c069     MOVFF     0x69,0xfe6                                                                                      
00112e   ffe6                                                                                                               
001130   c06a     MOVFF     0x6a,0xfe6                                                                                      
001132   ffe6                                                                                                               
001134   c06b     MOVFF     0x6b,0xfe6                                                                                      
001136   ffe6                                                                                                               
001138   c06c     MOVFF     0x6c,0xfe6                                                                                      
00113a   ffe6                                                                                                               
00113c   c06d     MOVFF     0x6d,0xfe6                                                                                      
00113e   ffe6                                                                                                               
001140   c06e     MOVFF     0x6e,0xfe6                                                                                      
001142   ffe6                                                                                                               
001144   c06f     MOVFF     0x6f,0xfe6                                                                                      
001146   ffe6                                                                                                               
001148   c070     MOVFF     0x70,0xfe6                                                                                      
00114a   ffe6                                                                                                               
00114c   c071     MOVFF     0x71,0xfe6                                                                                      
00114e   ffe6                                                                                                               
001150   c072     MOVFF     0x72,0xfe6                                                                                      
001152   ffe6                                                                                                               
001154   d9ed     RCALL     0x1530                                                                                          
001156   6e14     MOVWF     0x14,0x0                                                                                        
001158   0e10     MOVLW     0x10                                                                                            
00115a   5ee1     SUBWF     0xe1,0x1,0x0                                                                                    
00115c   5014     MOVF      0x14,0x0,0x0                                                                                    
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
00115e   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
001160   50a4     MOVF      0xa4,0x0,0x0    if (PIR3bits.RXBnIF || PIR3bits.RXB1IF || PIR3bits.RXB0IF)                      F:\MCP\projects\CAN\canBase\Source\CAN.c
001162   0b02     ANDLW     0x2                                                                                             
001164   e106     BNZ       0x1172                                                                                          
001166   50a4     MOVF      0xa4,0x0,0x0                                                                                    
001168   0b02     ANDLW     0x2                                                                                             
00116a   e103     BNZ       0x1172                                                                                          
00116c   50a4     MOVF      0xa4,0x0,0x0                                                                                    
00116e   0b01     ANDLW     0x1                                                                                             
001170   e016     BZ        0x119e                                                                                          
                                            {                                                                               F:\MCP\projects\CAN\canBase\Source\CAN.c
001172   0e0f     MOVLW     0xf                 ECANCON=(ECANCON&0b00000)|(0b10000|(CANCON&0x0F));                             F:\MCP\projects\CAN\canBase\Source\CAN.c
001174   146f     ANDWF     0x6f,0x0,0x0                                                                                    
001176   0910     IORLW     0x10                                                                                            
001178   6e14     MOVWF     0x14,0x0                                                                                        
00117a   0e00     MOVLW     0x0                                                                                             
00117c   1477     ANDWF     0x77,0x0,0x0                                                                                    
00117e   1014     IORWF     0x14,0x0,0x0                                                                                    
001180   6e77     MOVWF     0x77,0x0                                                                                        
001182   be60     BTFSC     0x60,0x7,0x0        if (RXB0CONbits.RXFUL) canGetPacket();                                         F:\MCP\projects\CAN\canBase\Source\CAN.c
001184   d867     RCALL     0x1254                                                                                          
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
001186   a2a4     BTFSS     0xa4,0x1,0x0        if (PIR3bits.RXBnIF) {PIR3bits.RXBnIF = 0; return;}                            F:\MCP\projects\CAN\canBase\Source\CAN.c
001188   d002     BRA       0x118e                                                                                          
00118a   92a4     BCF       0xa4,0x1,0x0                                                                                    
00118c   d062     BRA       0x1252                                                                                          
00118e   a2a4     BTFSS     0xa4,0x1,0x0        if (PIR3bits.RXB1IF) {PIR3bits.RXB1IF = 0; return;}                            F:\MCP\projects\CAN\canBase\Source\CAN.c
001190   d002     BRA       0x1196                                                                                          
001192   92a4     BCF       0xa4,0x1,0x0                                                                                    
001194   d05e     BRA       0x1252                                                                                          
001196   a0a4     BTFSS     0xa4,0x0,0x0        if (PIR3bits.RXB0IF) {PIR3bits.RXB0IF = 0; return;}                            F:\MCP\projects\CAN\canBase\Source\CAN.c
001198   d002     BRA       0x119e                                                                                          
00119a   90a4     BCF       0xa4,0x0,0x0                                                                                    
00119c   d05a     BRA       0x1252                                                                                          
                                            }                                                                               F:\MCP\projects\CAN\canBase\Source\CAN.c
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
00119e   ecdc     CALL      0x1db8,0x0      tickUpdate();                                                                   F:\MCP\projects\CAN\canBase\Source\CAN.c
0011a0   f00e                                                                                                               
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
0011a2   ecd2     CALL      0x1da4,0x0      if ((tickGet()-heartbeat)>TICK_SECOND*5)                                        F:\MCP\projects\CAN\canBase\Source\CAN.c
0011a4   f00e                                                                                                               
0011a6   0100     MOVLB     0x0                                                                                             
0011a8   5160     MOVF      0x60,0x0,0x1                                                                                    
0011aa   5c04     SUBWF     0x4,0x0,0x0                                                                                     
0011ac   6e14     MOVWF     0x14,0x0                                                                                        
0011ae   0100     MOVLB     0x0                                                                                             
0011b0   5161     MOVF      0x61,0x0,0x1                                                                                    
0011b2   5805     SUBWFB    0x5,0x0,0x0                                                                                     
0011b4   6e15     MOVWF     0x15,0x0                                                                                        
0011b6   0100     MOVLB     0x0                                                                                             
0011b8   5162     MOVF      0x62,0x0,0x1                                                                                    
0011ba   5806     SUBWFB    0x6,0x0,0x0                                                                                     
0011bc   6e16     MOVWF     0x16,0x0                                                                                        
0011be   0100     MOVLB     0x0                                                                                             
0011c0   5163     MOVF      0x63,0x0,0x1                                                                                    
0011c2   5807     SUBWFB    0x7,0x0,0x0                                                                                     
0011c4   6e17     MOVWF     0x17,0x0                                                                                        
0011c6   80d8     BSF       0xd8,0x0,0x0                                                                                    
0011c8   0ef4     MOVLW     0xf4                                                                                            
0011ca   5414     SUBFWB    0x14,0x0,0x0                                                                                    
0011cc   0e01     MOVLW     0x1                                                                                             
0011ce   5415     SUBFWB    0x15,0x0,0x0                                                                                    
0011d0   0e00     MOVLW     0x0                                                                                             
0011d2   5416     SUBFWB    0x16,0x0,0x0                                                                                    
0011d4   0e00     MOVLW     0x0                                                                                             
0011d6   5417     SUBFWB    0x17,0x0,0x0                                                                                    
0011d8   e23b     BC        0x1250                                                                                          
                                            {                                                                               F:\MCP\projects\CAN\canBase\Source\CAN.c
                                                // Send alive heartbeat                                                        F:\MCP\projects\CAN\canBase\Source\CAN.c
0011da   0100     MOVLB     0x0                 outCm.funct                     = FUNCT_BOOTLOADER;                                           F:\MCP\projects\CAN\canBase\Source\CAN.c
0011dc   6b64     CLRF      0x64,0x1                                                                                        
0011de   0e08     MOVLW     0x8                 outCm.funcc                     = FUNCC_BOOT_HEARTBEAT;                                       F:\MCP\projects\CAN\canBase\Source\CAN.c
0011e0   0100     MOVLB     0x0                                                                                             
0011e2   6f65     MOVWF     0x65,0x1                                                                                        
0011e4   6b66     CLRF      0x66,0x1                                                                                        
0011e6   0100     MOVLB     0x0                 outCm.data_length               = 1;                                                     F:\MCP\projects\CAN\canBase\Source\CAN.c
0011e8   0e01     MOVLW     0x1                                                                                             
0011ea   6f6a     MOVWF     0x6a,0x1                                                                                        
0011ec   0100     MOVLB     0x0                 outCm.data[BOOT_DATA_HEARTBEAT_INDEX] = HEARTBEAT_ALIVE;                       F:\MCP\projects\CAN\canBase\Source\CAN.c
0011ee   0e02     MOVLW     0x2                                                                                             
0011f0   6f6b     MOVWF     0x6b,0x1                                                                                        
0011f2   0e02     MOVLW     0x2                 canSendMessage(outCm,PRIO_HIGH);                                               F:\MCP\projects\CAN\canBase\Source\CAN.c
0011f4   6ee6     MOVWF     0xe6,0x0                                                                                        
0011f6   c064     MOVFF     0x64,0xfe6                                                                                      
0011f8   ffe6                                                                                                               
0011fa   c065     MOVFF     0x65,0xfe6                                                                                      
0011fc   ffe6                                                                                                               
0011fe   c066     MOVFF     0x66,0xfe6                                                                                      
001200   ffe6                                                                                                               
001202   c067     MOVFF     0x67,0xfe6                                                                                      
001204   ffe6                                                                                                               
001206   c068     MOVFF     0x68,0xfe6                                                                                      
001208   ffe6                                                                                                               
00120a   c069     MOVFF     0x69,0xfe6                                                                                      
00120c   ffe6                                                                                                               
00120e   c06a     MOVFF     0x6a,0xfe6                                                                                      
001210   ffe6                                                                                                               
001212   c06b     MOVFF     0x6b,0xfe6                                                                                      
001214   ffe6                                                                                                               
001216   c06c     MOVFF     0x6c,0xfe6                                                                                      
001218   ffe6                                                                                                               
00121a   c06d     MOVFF     0x6d,0xfe6                                                                                      
00121c   ffe6                                                                                                               
00121e   c06e     MOVFF     0x6e,0xfe6                                                                                      
001220   ffe6                                                                                                               
001222   c06f     MOVFF     0x6f,0xfe6                                                                                      
001224   ffe6                                                                                                               
001226   c070     MOVFF     0x70,0xfe6                                                                                      
001228   ffe6                                                                                                               
00122a   c071     MOVFF     0x71,0xfe6                                                                                      
00122c   ffe6                                                                                                               
00122e   c072     MOVFF     0x72,0xfe6                                                                                      
001230   ffe6                                                                                                               
001232   d97e     RCALL     0x1530                                                                                          
001234   6e14     MOVWF     0x14,0x0                                                                                        
001236   0e10     MOVLW     0x10                                                                                            
001238   5ee1     SUBWF     0xe1,0x1,0x0                                                                                    
00123a   5014     MOVF      0x14,0x0,0x0                                                                                    
                                                                                                                                  F:\MCP\projects\CAN\canBase\Source\CAN.c
00123c   ecd2     CALL      0x1da4,0x0          heartbeat = tickGet();                                                         F:\MCP\projects\CAN\canBase\Source\CAN.c
00123e   f00e                                                                                                               
001240   c004     MOVFF     0x4,0x60                                                                                        
001242   f060                                                                                                               
001244   c005     MOVFF     0x5,0x61                                                                                        
001246   f061                                                                                                               
001248   c006     MOVFF     0x6,0x62                                                                                        
00124a   f062                                                                                                               
00124c   c007     MOVFF     0x7,0x63                                                                                        
00124e   f063                                                                                                               
                                            }                                                                               F:\MCP\projects\CAN\canBase\Source\CAN.c
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
001250   0004     CLRWDT                    ClrWdt();                                                                       F:\MCP\projects\CAN\canBase\Source\CAN.c
001252   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
001254   cfd9     MOVFF     0xfd9,0xfe6    void canGetPacket()                                                              F:\MCP\projects\CAN\canBase\Source\CAN.c
001256   ffe6                                                                                                               
001258   cfe1     MOVFF     0xfe1,0xfd9                                                                                     
00125a   ffd9                                                                                                               
00125c   0e0f     MOVLW     0xf                                                                                             
00125e   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
001260   0ef0     MOVLW     0xf0                    cm.funct=((RXB0SIDH & 0xF0)>>4);                                         F:\MCP\projects\CAN\canBase\Source\CAN.c
001262   1461     ANDWF     0x61,0x0,0x0                                                                                    
001264   38e8     SWAPF     0xe8,0x0,0x0                                                                                    
001266   0b0f     ANDLW     0xf                                                                                             
001268   6edf     MOVWF     0xdf,0x0                                                                                        
00126a   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
00126c   1461     ANDWF     0x61,0x0,0x0                                                                                    
00126e   6e1a     MOVWF     0x1a,0x0                                                                                        
001270   6a1b     CLRF      0x1b,0x0                                                                                        
001272   0e06     MOVLW     0x6                                                                                             
001274   90d8     BCF       0xd8,0x0,0x0                                                                                    
001276   361a     RLCF      0x1a,0x1,0x0                                                                                    
001278   361b     RLCF      0x1b,0x1,0x0                                                                                    
00127a   04e8     DECF      0xe8,0x0,0x0                                                                                    
00127c   e1fb     BNZ       0x1274                                                                                          
00127e   0ee0     MOVLW     0xe0                                                                                            
001280   1462     ANDWF     0x62,0x0,0x0                                                                                    
001282   6e1c     MOVWF     0x1c,0x0                                                                                        
001284   6a1d     CLRF      0x1d,0x0                                                                                        
001286   90d8     BCF       0xd8,0x0,0x0                                                                                    
001288   321d     RRCF      0x1d,0x1,0x0                                                                                    
00128a   321c     RRCF      0x1c,0x1,0x0                                                                                    
00128c   90d8     BCF       0xd8,0x0,0x0                                                                                    
00128e   321d     RRCF      0x1d,0x1,0x0                                                                                    
001290   321c     RRCF      0x1c,0x1,0x0                                                                                    
001292   501a     MOVF      0x1a,0x0,0x0                                                                                    
001294   241c     ADDWF     0x1c,0x0,0x0                                                                                    
001296   6e18     MOVWF     0x18,0x0                                                                                        
001298   501b     MOVF      0x1b,0x0,0x0                                                                                    
00129a   201d     ADDWFC    0x1d,0x0,0x0                                                                                    
00129c   6e19     MOVWF     0x19,0x0                                                                                        
00129e   0e03     MOVLW     0x3                                                                                             
0012a0   1462     ANDWF     0x62,0x0,0x0                                                                                    
0012a2   6e1e     MOVWF     0x1e,0x0                                                                                        
0012a4   6a1f     CLRF      0x1f,0x0                                                                                        
0012a6   90d8     BCF       0xd8,0x0,0x0                                                                                    
0012a8   361e     RLCF      0x1e,0x1,0x0                                                                                    
0012aa   361f     RLCF      0x1f,0x1,0x0                                                                                    
0012ac   5018     MOVF      0x18,0x0,0x0                                                                                    
0012ae   241e     ADDWF     0x1e,0x0,0x0                                                                                    
0012b0   6e16     MOVWF     0x16,0x0                                                                                        
0012b2   5019     MOVF      0x19,0x0,0x0                                                                                    
0012b4   201f     ADDWFC    0x1f,0x0,0x0                                                                                    
0012b6   6e17     MOVWF     0x17,0x0                                                                                        
0012b8   0e80     MOVLW     0x80                                                                                            
0012ba   1463     ANDWF     0x63,0x0,0x0                                                                                    
0012bc   6e20     MOVWF     0x20,0x0                                                                                        
0012be   6a21     CLRF      0x21,0x0                                                                                        
0012c0   0e07     MOVLW     0x7                                                                                             
0012c2   90d8     BCF       0xd8,0x0,0x0                                                                                    
0012c4   3221     RRCF      0x21,0x1,0x0                                                                                    
0012c6   3220     RRCF      0x20,0x1,0x0                                                                                    
0012c8   04e8     DECF      0xe8,0x0,0x0                                                                                    
0012ca   e1fb     BNZ       0x12c2                                                                                          
0012cc   5016     MOVF      0x16,0x0,0x0                                                                                    
0012ce   2420     ADDWF     0x20,0x0,0x0                                                                                    
0012d0   6e14     MOVWF     0x14,0x0                                                                                        
0012d2   5017     MOVF      0x17,0x0,0x0                                                                                    
0012d4   2021     ADDWFC    0x21,0x0,0x0                                                                                    
0012d6   6e15     MOVWF     0x15,0x0                                                                                        
0012d8   0e01     MOVLW     0x1                                                                                             
0012da   c014     MOVFF     0x14,0xfdb                                                                                      
0012dc   ffdb                                                                                                               
0012de   0e02     MOVLW     0x2                                                                                             
0012e0   c015     MOVFF     0x15,0xfdb                                                                                      
0012e2   ffdb                                                                                                               
0012e4   0e7e     MOVLW     0x7e                   cm.nid=((RXB0EIDH & 0x7E)>>1);                                           F:\MCP\projects\CAN\canBase\Source\CAN.c
0012e6   1463     ANDWF     0x63,0x0,0x0                                                                                    
0012e8   40e8     RRNCF     0xe8,0x0,0x0                                                                                    
0012ea   0b7f     ANDLW     0x7f                                                                                            
0012ec   6ee7     MOVWF     0xe7,0x0                                                                                        
0012ee   0e03     MOVLW     0x3                                                                                             
0012f0   cfe7     MOVFF     0xfe7,0xfdb                                                                                     
0012f2   ffdb                                                                                                               
0012f4   0e01     MOVLW     0x1                    cm.sid=(((WORD)(RXB0EIDH & 0x01))<<8)+RXB0EIDL;                          F:\MCP\projects\CAN\canBase\Source\CAN.c
0012f6   1463     ANDWF     0x63,0x0,0x0                                                                                    
0012f8   6e16     MOVWF     0x16,0x0                                                                                        
0012fa   c016     MOVFF     0x16,0x17                                                                                       
0012fc   f017                                                                                                               
0012fe   6a16     CLRF      0x16,0x0                                                                                        
001300   5064     MOVF      0x64,0x0,0x0                                                                                    
001302   0100     MOVLB     0x0                                                                                             
001304   2416     ADDWF     0x16,0x0,0x0                                                                                    
001306   6e14     MOVWF     0x14,0x0                                                                                        
001308   0e00     MOVLW     0x0                                                                                             
00130a   2017     ADDWFC    0x17,0x0,0x0                                                                                    
00130c   6e15     MOVWF     0x15,0x0                                                                                        
00130e   0e04     MOVLW     0x4                                                                                             
001310   c014     MOVFF     0x14,0xfdb                                                                                      
001312   ffdb                                                                                                               
001314   0e05     MOVLW     0x5                                                                                             
001316   c015     MOVFF     0x15,0xfdb                                                                                      
001318   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
00131a   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
00131c   0b01     ANDLW     0x1                                                                                             
00131e   6e16     MOVWF     0x16,0x0                                                                                        
001320   5065     MOVF      0x65,0x0,0x0                                                                                    
001322   0b02     ANDLW     0x2                                                                                             
001324   e001     BZ        0x1328                                                                                          
001326   0e01     MOVLW     0x1                                                                                             
001328   24e8     ADDWF     0xe8,0x0,0x0                                                                                    
00132a   6e15     MOVWF     0x15,0x0                                                                                        
00132c   5065     MOVF      0x65,0x0,0x0                                                                                    
00132e   0b04     ANDLW     0x4                                                                                             
001330   e001     BZ        0x1334                                                                                          
001332   0e01     MOVLW     0x1                                                                                             
001334   0d04     MULLW     0x4                                                                                             
001336   cff3     MOVFF     0xff3,0x14                                                                                      
001338   f014                                                                                                               
00133a   5065     MOVF      0x65,0x0,0x0                                                                                    
00133c   0b08     ANDLW     0x8                                                                                             
00133e   e001     BZ        0x1342                                                                                          
001340   0e01     MOVLW     0x1                                                                                             
001342   0d08     MULLW     0x8                                                                                             
001344   50f3     MOVF      0xf3,0x0,0x0                                                                                    
001346   2414     ADDWF     0x14,0x0,0x0                                                                                    
001348   2415     ADDWF     0x15,0x0,0x0                                                                                    
00134a   2416     ADDWF     0x16,0x0,0x0                                                                                    
00134c   6ee7     MOVWF     0xe7,0x0                                                                                        
00134e   0e06     MOVLW     0x6                                                                                             
001350   cfe7     MOVFF     0xfe7,0xfdb                                                                                     
001352   ffdb                                                                                                               
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
                                                // Data one bye one, for speed                                                 F:\MCP\projects\CAN\canBase\Source\CAN.c
001354   0e07     MOVLW     0x7                 cm.data[0]=RXB0D0;  cm.data[1]=RXB0D1;                                          F:\MCP\projects\CAN\canBase\Source\CAN.c
001356   cf66     MOVFF     0xf66,0xfdb                                                                                     
001358   ffdb                                                                                                               
00135a   0e08     MOVLW     0x8                                                                                             
00135c   cf67     MOVFF     0xf67,0xfdb                                                                                     
00135e   ffdb                                                                                                               
001360   0e09     MOVLW     0x9                 cm.data[2]=RXB0D2;  cm.data[3]=RXB0D3;                                         F:\MCP\projects\CAN\canBase\Source\CAN.c
001362   cf68     MOVFF     0xf68,0xfdb                                                                                     
001364   ffdb                                                                                                               
001366   0e0a     MOVLW     0xa                                                                                             
001368   cf69     MOVFF     0xf69,0xfdb                                                                                     
00136a   ffdb                                                                                                               
00136c   0e0b     MOVLW     0xb                 cm.data[4]=RXB0D4;  cm.data[5]=RXB0D5;                                         F:\MCP\projects\CAN\canBase\Source\CAN.c
00136e   cf6a     MOVFF     0xf6a,0xfdb                                                                                     
001370   ffdb                                                                                                               
001372   0e0c     MOVLW     0xc                                                                                             
001374   cf6b     MOVFF     0xf6b,0xfdb                                                                                     
001376   ffdb                                                                                                               
001378   0e0d     MOVLW     0xd                 cm.data[6]=RXB0D6;  cm.data[7]=RXB0D7;                                         F:\MCP\projects\CAN\canBase\Source\CAN.c
00137a   cf6c     MOVFF     0xf6c,0xfdb                                                                                     
00137c   ffdb                                                                                                               
00137e   0e0e     MOVLW     0xe                                                                                             
001380   cf6d     MOVFF     0xf6d,0xfdb                                                                                     
001382   ffdb                                                                                                               
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
                                                // Clear ful status                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
001384   9e60     BCF       0x60,0x7,0x0        RXB0CONbits.RXFUL=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
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
                                                // Check if FUNCT_BOOTLOADER specific.                                         F:\MCP\projects\CAN\canBase\Source\CAN.c
                                                // reset and id change                                                         F:\MCP\projects\CAN\canBase\Source\CAN.c
001386   50df     MOVF      0xdf,0x0,0x0        if (cm.funct==FUNCT_BOOTLOADER)                                                F:\MCP\projects\CAN\canBase\Source\CAN.c
001388   e001     BZ        0x138c                                                                                          
00138a   d0a0     BRA       0x14cc                                                                                          
                                                {                                                                              F:\MCP\projects\CAN\canBase\Source\CAN.c
00138c   0e03     MOVLW     0x3                     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\CAN.c
00138e   50db     MOVF      0xdb,0x0,0x0                                                                                    
001390   0100     MOVLB     0x0                                                                                             
001392   5d95     SUBWF     0x95,0x0,0x1                                                                                    
001394   e001     BZ        0x1398                                                                                          
001396   d09a     BRA       0x14cc                                                                                          
001398   0e0c     MOVLW     0xc                                                                                             
00139a   cfdb     MOVFF     0xfdb,0x16                                                                                      
00139c   f016                                                                                                               
00139e   c016     MOVFF     0x16,0x17                                                                                       
0013a0   f017                                                                                                               
0013a2   6a16     CLRF      0x16,0x0                                                                                        
0013a4   0e0b     MOVLW     0xb                                                                                             
0013a6   50db     MOVF      0xdb,0x0,0x0                                                                                    
0013a8   0100     MOVLB     0x0                                                                                             
0013aa   2416     ADDWF     0x16,0x0,0x0                                                                                    
0013ac   6e14     MOVWF     0x14,0x0                                                                                        
0013ae   0e00     MOVLW     0x0                                                                                             
0013b0   2017     ADDWFC    0x17,0x0,0x0                                                                                    
0013b2   6e15     MOVWF     0x15,0x0                                                                                        
0013b4   0100     MOVLB     0x0                                                                                             
0013b6   5193     MOVF      0x93,0x0,0x1                                                                                    
0013b8   1814     XORWF     0x14,0x0,0x0                                                                                    
0013ba   e102     BNZ       0x13c0                                                                                          
0013bc   5194     MOVF      0x94,0x0,0x1                                                                                    
0013be   1815     XORWF     0x15,0x0,0x0                                                                                    
0013c0   e001     BZ        0x13c4                                                                                          
0013c2   d084     BRA       0x14cc                                                                                          
                                                    {                                                                             F:\MCP\projects\CAN\canBase\Source\CAN.c
0013c4   50d9     MOVF      0xd9,0x0,0x0                if (cm.funcc==FUNCC_BOOT_INIT) Reset(); // Reset me.                         F:\MCP\projects\CAN\canBase\Source\CAN.c
0013c6   0f01     ADDLW     0x1                                                                                             
0013c8   6ee9     MOVWF     0xe9,0x0                                                                                        
0013ca   cfda     MOVFF     0xfda,0xfea                                                                                     
0013cc   ffea                                                                                                               
0013ce   0e01     MOVLW     0x1                                                                                             
0013d0   18ee     XORWF     0xee,0x0,0x0                                                                                    
0013d2   e101     BNZ       0x13d6                                                                                          
0013d4   50ed     MOVF      0xed,0x0,0x0                                                                                    
0013d6   e101     BNZ       0x13da                                                                                          
0013d8   00ff     RESET                                                                                                     
0013da   50d9     MOVF      0xd9,0x0,0x0                if (cm.funcc==FUNCC_BOOT_SET_ID)                                             F:\MCP\projects\CAN\canBase\Source\CAN.c
0013dc   0f01     ADDLW     0x1                                                                                             
0013de   6ee9     MOVWF     0xe9,0x0                                                                                        
0013e0   cfda     MOVFF     0xfda,0xfea                                                                                     
0013e2   ffea                                                                                                               
0013e4   0e06     MOVLW     0x6                                                                                             
0013e6   18ee     XORWF     0xee,0x0,0x0                                                                                    
0013e8   e101     BNZ       0x13ec                                                                                          
0013ea   50ed     MOVF      0xed,0x0,0x0                                                                                    
0013ec   e16f     BNZ       0x14cc                                                                                          
                                                        {                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
                                                                // Change my ID and NID                                                    F:\MCP\projects\CAN\canBase\Source\CAN.c
0013ee   0e08     MOVLW     0x8                                 MY_ID=(((WORD)cm.data[BOOT_DATA_NEW_ID_HIGH_INDEX])<<8)+cm.data[BOOT_DATA_NEW_ID_LOW_INDEX]; F:\MCP\projects\CAN\canBase\Source\CAN.c
0013f0   cfdb     MOVFF     0xfdb,0x14                                                                                      
0013f2   f014                                                                                                               
0013f4   c014     MOVFF     0x14,0x15                                                                                       
0013f6   f015                                                                                                               
0013f8   6a14     CLRF      0x14,0x0                                                                                        
0013fa   0e07     MOVLW     0x7                                                                                             
0013fc   50db     MOVF      0xdb,0x0,0x0                                                                                    
0013fe   0100     MOVLB     0x0                                                                                             
001400   2414     ADDWF     0x14,0x0,0x0                                                                                    
001402   6f93     MOVWF     0x93,0x1                                                                                        
001404   0e00     MOVLW     0x0                                                                                             
001406   2015     ADDWFC    0x15,0x0,0x0                                                                                    
001408   6f94     MOVWF     0x94,0x1                                                                                        
00140a   0e09     MOVLW     0x9                                 MY_NID=cm.data[BOOT_DATA_NEW_NID_INDEX];                                   F:\MCP\projects\CAN\canBase\Source\CAN.c
00140c   cfdb     MOVFF     0xfdb,0x95                                                                                      
00140e   f095                                                                                                               
001410   0e08     MOVLW     0x8                                 EEWrite(NODE_ID_EE+1,cm.data[BOOT_DATA_NEW_ID_HIGH_INDEX]);                F:\MCP\projects\CAN\canBase\Source\CAN.c
001412   cfdb     MOVFF     0xfdb,0xfe6                                                                                     
001414   ffe6                                                                                                               
001416   0e01     MOVLW     0x1                                                                                             
001418   6ee6     MOVWF     0xe6,0x0                                                                                        
00141a   6ae6     CLRF      0xe6,0x0                                                                                        
00141c   ec48     CALL      0x1c90,0x0                                                                                      
00141e   f00e                                                                                                               
001420   52e5     MOVF      0xe5,0x1,0x0                                                                                    
001422   52e5     MOVF      0xe5,0x1,0x0                                                                                    
001424   52e5     MOVF      0xe5,0x1,0x0                                                                                    
001426   0e07     MOVLW     0x7                                 EEWrite(NODE_ID_EE+2,cm.data[BOOT_DATA_NEW_ID_LOW_INDEX]);                 F:\MCP\projects\CAN\canBase\Source\CAN.c
001428   cfdb     MOVFF     0xfdb,0xfe6                                                                                     
00142a   ffe6                                                                                                               
00142c   0e02     MOVLW     0x2                                                                                             
00142e   6ee6     MOVWF     0xe6,0x0                                                                                        
001430   6ae6     CLRF      0xe6,0x0                                                                                        
001432   ec48     CALL      0x1c90,0x0                                                                                      
001434   f00e                                                                                                               
001436   52e5     MOVF      0xe5,0x1,0x0                                                                                    
001438   52e5     MOVF      0xe5,0x1,0x0                                                                                    
00143a   52e5     MOVF      0xe5,0x1,0x0                                                                                    
00143c   0e09     MOVLW     0x9                                 EEWrite(NODE_ID_EE+3,cm.data[BOOT_DATA_NEW_NID_INDEX]);                    F:\MCP\projects\CAN\canBase\Source\CAN.c
00143e   cfdb     MOVFF     0xfdb,0xfe6                                                                                     
001440   ffe6                                                                                                               
001442   0e03     MOVLW     0x3                                                                                             
001444   6ee6     MOVWF     0xe6,0x0                                                                                        
001446   6ae6     CLRF      0xe6,0x0                                                                                        
001448   ec48     CALL      0x1c90,0x0                                                                                      
00144a   f00e                                                                                                               
00144c   52e5     MOVF      0xe5,0x1,0x0                                                                                    
00144e   52e5     MOVF      0xe5,0x1,0x0                                                                                    
001450   52e5     MOVF      0xe5,0x1,0x0                                                                                    
001452   0e2a     MOVLW     0x2a                                EEWrite(NODE_ID_EE,NODE_HAS_ID);                                           F:\MCP\projects\CAN\canBase\Source\CAN.c
001454   6ee6     MOVWF     0xe6,0x0                                                                                        
001456   0e00     MOVLW     0x0                                                                                             
001458   6ee6     MOVWF     0xe6,0x0                                                                                        
00145a   6ae6     CLRF      0xe6,0x0                                                                                        
00145c   ec48     CALL      0x1c90,0x0                                                                                      
00145e   f00e                                                                                                               
001460   52e5     MOVF      0xe5,0x1,0x0                                                                                    
001462   52e5     MOVF      0xe5,0x1,0x0                                                                                    
001464   52e5     MOVF      0xe5,0x1,0x0                                                                                    
                                                                // Send ack with new id.                                                   F:\MCP\projects\CAN\canBase\Source\CAN.c
001466   0100     MOVLB     0x0                                 outCm.funct                     = FUNCT_BOOTLOADER;                                       F:\MCP\projects\CAN\canBase\Source\CAN.c
001468   6b64     CLRF      0x64,0x1                                                                                        
00146a   0e04     MOVLW     0x4                                 outCm.funcc                     = FUNCC_BOOT_ACK;                                         F:\MCP\projects\CAN\canBase\Source\CAN.c
00146c   0100     MOVLB     0x0                                                                                             
00146e   6f65     MOVWF     0x65,0x1                                                                                        
001470   6b66     CLRF      0x66,0x1                                                                                        
001472   0100     MOVLB     0x0                                 outCm.data_length               = 8;                                                 F:\MCP\projects\CAN\canBase\Source\CAN.c
001474   0e08     MOVLW     0x8                                                                                             
001476   6f6a     MOVWF     0x6a,0x1                                                                                        
001478   0100     MOVLB     0x0                                 outCm.data[BOOT_DATA_ERR_INDEX] = ACK_ERR_NO_ERROR;                        F:\MCP\projects\CAN\canBase\Source\CAN.c
00147a   6b6f     CLRF      0x6f,0x1                                                                                        
00147c   0e02     MOVLW     0x2                                 while(!canSendMessage(outCm,PRIO_HIGH));                                   F:\MCP\projects\CAN\canBase\Source\CAN.c
00147e   6ee6     MOVWF     0xe6,0x0                                                                                        
001480   c064     MOVFF     0x64,0xfe6                                                                                      
001482   ffe6                                                                                                               
001484   c065     MOVFF     0x65,0xfe6                                                                                      
001486   ffe6                                                                                                               
001488   c066     MOVFF     0x66,0xfe6                                                                                      
00148a   ffe6                                                                                                               
00148c   c067     MOVFF     0x67,0xfe6                                                                                      
00148e   ffe6                                                                                                               
001490   c068     MOVFF     0x68,0xfe6                                                                                      
001492   ffe6                                                                                                               
001494   c069     MOVFF     0x69,0xfe6                                                                                      
001496   ffe6                                                                                                               
001498   c06a     MOVFF     0x6a,0xfe6                                                                                      
00149a   ffe6                                                                                                               
00149c   c06b     MOVFF     0x6b,0xfe6                                                                                      
00149e   ffe6                                                                                                               
0014a0   c06c     MOVFF     0x6c,0xfe6                                                                                      
0014a2   ffe6                                                                                                               
0014a4   c06d     MOVFF     0x6d,0xfe6                                                                                      
0014a6   ffe6                                                                                                               
0014a8   c06e     MOVFF     0x6e,0xfe6                                                                                      
0014aa   ffe6                                                                                                               
0014ac   c06f     MOVFF     0x6f,0xfe6                                                                                      
0014ae   ffe6                                                                                                               
0014b0   c070     MOVFF     0x70,0xfe6                                                                                      
0014b2   ffe6                                                                                                               
0014b4   c071     MOVFF     0x71,0xfe6                                                                                      
0014b6   ffe6                                                                                                               
0014b8   c072     MOVFF     0x72,0xfe6                                                                                      
0014ba   ffe6                                                                                                               
0014bc   d839     RCALL     0x1530                                                                                          
0014be   6e14     MOVWF     0x14,0x0                                                                                        
0014c0   0e10     MOVLW     0x10                                                                                            
0014c2   5ee1     SUBWF     0xe1,0x1,0x0                                                                                    
0014c4   5014     MOVF      0x14,0x0,0x0                                                                                    
0014c6   0900     IORLW     0x0                                                                                             
0014c8   e101     BNZ       0x14cc                                                                                          
0014ca   d7d8     BRA       0x147c                                                                                          
                                                        }                                                                            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
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
                                                //Call main parser                                                             F:\MCP\projects\CAN\canBase\Source\CAN.c
0014cc   cfd9     MOVFF     0xfd9,0xfe9         canParse(cm);                                                                  F:\MCP\projects\CAN\canBase\Source\CAN.c
0014ce   ffe9                                                                                                               
0014d0   cfda     MOVFF     0xfda,0xfea                                                                                     
0014d2   ffea                                                                                                               
0014d4   cfee     MOVFF     0xfee,0xfe6                                                                                     
0014d6   ffe6                                                                                                               
0014d8   cfee     MOVFF     0xfee,0xfe6                                                                                     
0014da   ffe6                                                                                                               
0014dc   cfee     MOVFF     0xfee,0xfe6                                                                                     
0014de   ffe6                                                                                                               
0014e0   cfee     MOVFF     0xfee,0xfe6                                                                                     
0014e2   ffe6                                                                                                               
0014e4   cfee     MOVFF     0xfee,0xfe6                                                                                     
0014e6   ffe6                                                                                                               
0014e8   cfee     MOVFF     0xfee,0xfe6                                                                                     
0014ea   ffe6                                                                                                               
0014ec   cfee     MOVFF     0xfee,0xfe6                                                                                     
0014ee   ffe6                                                                                                               
0014f0   cfee     MOVFF     0xfee,0xfe6                                                                                     
0014f2   ffe6                                                                                                               
0014f4   cfee     MOVFF     0xfee,0xfe6                                                                                     
0014f6   ffe6                                                                                                               
0014f8   cfee     MOVFF     0xfee,0xfe6                                                                                     
0014fa   ffe6                                                                                                               
0014fc   cfee     MOVFF     0xfee,0xfe6                                                                                     
0014fe   ffe6                                                                                                               
001500   cfee     MOVFF     0xfee,0xfe6                                                                                     
001502   ffe6                                                                                                               
001504   cfee     MOVFF     0xfee,0xfe6                                                                                     
001506   ffe6                                                                                                               
001508   cfee     MOVFF     0xfee,0xfe6                                                                                     
00150a   ffe6                                                                                                               
00150c   cfee     MOVFF     0xfee,0xfe6                                                                                     
00150e   ffe6                                                                                                               
001510   ec77     CALL      0x1aee,0x0                                                                                      
001512   f00d                                                                                                               
001514   6e14     MOVWF     0x14,0x0                                                                                        
001516   0e0f     MOVLW     0xf                                                                                             
001518   5ee1     SUBWF     0xe1,0x1,0x0                                                                                    
00151a   5014     MOVF      0x14,0x0,0x0                                                                                    
00151c   0e0f     MOVLW     0xf            }                                                                                F:\MCP\projects\CAN\canBase\Source\CAN.c
00151e   5ce1     SUBWF     0xe1,0x0,0x0                                                                                    
001520   e202     BC        0x1526                                                                                          
001522   6ae1     CLRF      0xe1,0x0                                                                                        
001524   52e5     MOVF      0xe5,0x1,0x0                                                                                    
001526   6ee1     MOVWF     0xe1,0x0                                                                                        
001528   52e5     MOVF      0xe5,0x1,0x0                                                                                    
00152a   cfe7     MOVFF     0xfe7,0xfd9                                                                                     
00152c   ffd9                                                                                                               
00152e   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
001530   cfd9     MOVFF     0xfd9,0xfe6    BOOL canSendMessage(CAN_MESSAGE cm,CAN_PRIORITY prio)                            F:\MCP\projects\CAN\canBase\Source\CAN.c
001532   ffe6                                                                                                               
001534   cfe1     MOVFF     0xfe1,0xfd9                                                                                     
001536   ffd9                                                                                                               
                                           {                                                                                F:\MCP\projects\CAN\canBase\Source\CAN.c
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
001538   010f     MOVLB     0xf             if ( TXB0CONbits.TXREQ == 0 )  { ECANCON=(ECANCON&0b00000)|0b00011; }           F:\MCP\projects\CAN\canBase\Source\CAN.c
00153a   b740     BTFSC     0x40,0x3,0x1                                                                                    
00153c   d004     BRA       0x1546                                                                                          
00153e   0e00     MOVLW     0x0                                                                                             
001540   1477     ANDWF     0x77,0x0,0x0                                                                                    
001542   0903     IORLW     0x3                                                                                             
001544   6e77     MOVWF     0x77,0x0                                                                                        
001546   010f     MOVLB     0xf             if ( TXB1CONbits.TXREQ == 0 )  { ECANCON=(ECANCON&0b00000)|0b00100; }           F:\MCP\projects\CAN\canBase\Source\CAN.c
001548   b730     BTFSC     0x30,0x3,0x1                                                                                    
00154a   d004     BRA       0x1554                                                                                          
00154c   0e00     MOVLW     0x0                                                                                             
00154e   1477     ANDWF     0x77,0x0,0x0                                                                                    
001550   0904     IORLW     0x4                                                                                             
001552   6e77     MOVWF     0x77,0x0                                                                                        
001554   010f     MOVLB     0xf             if ( TXB2CONbits.TXREQ == 0 )  { ECANCON=(ECANCON&0b00000)|0b00101; }           F:\MCP\projects\CAN\canBase\Source\CAN.c
001556   b720     BTFSC     0x20,0x3,0x1                                                                                    
001558   d005     BRA       0x1564                                                                                          
00155a   0e00     MOVLW     0x0                                                                                             
00155c   1477     ANDWF     0x77,0x0,0x0                                                                                    
00155e   0905     IORLW     0x5                                                                                             
001560   6e77     MOVWF     0x77,0x0                                                                                        
                                            // None of the transmit buffers were empty.                                     F:\MCP\projects\CAN\canBase\Source\CAN.c
001562   d002     BRA       0x1568          else { return FALSE;}                                                           F:\MCP\projects\CAN\canBase\Source\CAN.c
001564   0e00     MOVLW     0x0                                                                                             
001566   d0b9     BRA       0x16da                                                                                          
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
001568   0eef     MOVLW     0xef            if (prio<0 || prio>3) prio = 0;                                                 F:\MCP\projects\CAN\canBase\Source\CAN.c
00156a   cfdb     MOVFF     0xfdb,0x14                                                                                      
00156c   f014                                                                                                               
00156e   3414     RLCF      0x14,0x0,0x0                                                                                    
001570   e20e     BC        0x158e                                                                                          
001572   0eef     MOVLW     0xef                                                                                            
001574   cfdb     MOVFF     0xfdb,0x15                                                                                      
001576   f015                                                                                                               
001578   0e03     MOVLW     0x3                                                                                             
00157a   6ee7     MOVWF     0xe7,0x0                                                                                        
00157c   1815     XORWF     0x15,0x0,0x0                                                                                    
00157e   aee8     BTFSS     0xe8,0x7,0x0                                                                                    
001580   d002     BRA       0x1586                                                                                          
001582   3415     RLCF      0x15,0x0,0x0                                                                                    
001584   d003     BRA       0x158c                                                                                          
001586   50e7     MOVF      0xe7,0x0,0x0                                                                                    
001588   80d8     BSF       0xd8,0x0,0x0                                                                                    
00158a   5415     SUBFWB    0x15,0x0,0x0                                                                                    
00158c   e202     BC        0x1592                                                                                          
00158e   0eef     MOVLW     0xef                                                                                            
001590   6adb     CLRF      0xdb,0x0                                                                                        
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
                                                // Append my id and nid                                                        F:\MCP\projects\CAN\canBase\Source\CAN.c
001592   0ef3     MOVLW     0xf3                cm.nid  = MY_NID;                                                               F:\MCP\projects\CAN\canBase\Source\CAN.c
001594   c095     MOVFF     0x95,0xfdb                                                                                      
001596   ffdb                                                                                                               
001598   0ef4     MOVLW     0xf4                cm.sid  = MY_ID;                                                                F:\MCP\projects\CAN\canBase\Source\CAN.c
00159a   c093     MOVFF     0x93,0xfdb                                                                                      
00159c   ffdb                                                                                                               
00159e   0ef5     MOVLW     0xf5                                                                                            
0015a0   c094     MOVFF     0x94,0xfdb                                                                                      
0015a2   ffdb                                                                                                               
                                                                                                                            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
0015a4   0ef1     MOVLW     0xf1                RXB0SIDH = (BYTE)((cm.funct & 0x0F)<<4)+(BYTE)((cm.funcc & 0x03C0)>>6);        F:\MCP\projects\CAN\canBase\Source\CAN.c
0015a6   cfdb     MOVFF     0xfdb,0x14                                                                                      
0015a8   f014                                                                                                               
0015aa   0ef2     MOVLW     0xf2                                                                                            
0015ac   cfdb     MOVFF     0xfdb,0x15                                                                                      
0015ae   f015                                                                                                               
0015b0   0ec0     MOVLW     0xc0                                                                                            
0015b2   1614     ANDWF     0x14,0x1,0x0                                                                                    
0015b4   0e03     MOVLW     0x3                                                                                             
0015b6   1615     ANDWF     0x15,0x1,0x0                                                                                    
0015b8   0e06     MOVLW     0x6                                                                                             
0015ba   90d8     BCF       0xd8,0x0,0x0                                                                                    
0015bc   3215     RRCF      0x15,0x1,0x0                                                                                    
0015be   3214     RRCF      0x14,0x1,0x0                                                                                    
0015c0   04e8     DECF      0xe8,0x0,0x0                                                                                    
0015c2   e1fb     BNZ       0x15ba                                                                                          
0015c4   0ef0     MOVLW     0xf0                                                                                            
0015c6   50db     MOVF      0xdb,0x0,0x0                                                                                    
0015c8   0b0f     ANDLW     0xf                                                                                             
0015ca   0d10     MULLW     0x10                                                                                            
0015cc   50f3     MOVF      0xf3,0x0,0x0                                                                                    
0015ce   2414     ADDWF     0x14,0x0,0x0                                                                                    
0015d0   6e61     MOVWF     0x61,0x0                                                                                        
0015d2   0e06     MOVLW     0x6                 RXB0SIDL = (BYTE)((cm.funcc & 0x003F)<<2)+(BYTE)((cm.funcc & 0x0006)>>1);      F:\MCP\projects\CAN\canBase\Source\CAN.c
0015d4   6ee7     MOVWF     0xe7,0x0                                                                                        
0015d6   0ef1     MOVLW     0xf1                                                                                            
0015d8   cfdb     MOVFF     0xfdb,0x16                                                                                      
0015da   f016                                                                                                               
0015dc   0ef2     MOVLW     0xf2                                                                                            
0015de   cfdb     MOVFF     0xfdb,0x17                                                                                      
0015e0   f017                                                                                                               
0015e2   50e7     MOVF      0xe7,0x0,0x0                                                                                    
0015e4   1616     ANDWF     0x16,0x1,0x0                                                                                    
0015e6   6a17     CLRF      0x17,0x0                                                                                        
0015e8   90d8     BCF       0xd8,0x0,0x0                                                                                    
0015ea   3217     RRCF      0x17,0x1,0x0                                                                                    
0015ec   3216     RRCF      0x16,0x1,0x0                                                                                    
0015ee   0e3f     MOVLW     0x3f                                                                                            
0015f0   6ee7     MOVWF     0xe7,0x0                                                                                        
0015f2   0ef1     MOVLW     0xf1                                                                                            
0015f4   cfdb     MOVFF     0xfdb,0x14                                                                                      
0015f6   f014                                                                                                               
0015f8   0ef2     MOVLW     0xf2                                                                                            
0015fa   cfdb     MOVFF     0xfdb,0x15                                                                                      
0015fc   f015                                                                                                               
0015fe   50e7     MOVF      0xe7,0x0,0x0                                                                                    
001600   1614     ANDWF     0x14,0x1,0x0                                                                                    
001602   6a15     CLRF      0x15,0x0                                                                                        
001604   90d8     BCF       0xd8,0x0,0x0                                                                                    
001606   3614     RLCF      0x14,0x1,0x0                                                                                    
001608   3615     RLCF      0x15,0x1,0x0                                                                                    
00160a   90d8     BCF       0xd8,0x0,0x0                                                                                    
00160c   3614     RLCF      0x14,0x1,0x0                                                                                    
00160e   3615     RLCF      0x15,0x1,0x0                                                                                    
001610   5014     MOVF      0x14,0x0,0x0                                                                                    
001612   2416     ADDWF     0x16,0x0,0x0                                                                                    
001614   6e62     MOVWF     0x62,0x0                                                                                        
001616   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
001618   cfdb     MOVFF     0xfdb,0x16                                                                                      
00161a   f016                                                                                                               
00161c   0ef5     MOVLW     0xf5                                                                                            
00161e   cfdb     MOVFF     0xfdb,0x17                                                                                      
001620   f017                                                                                                               
001622   0e00     MOVLW     0x0                                                                                             
001624   1616     ANDWF     0x16,0x1,0x0                                                                                    
001626   0e01     MOVLW     0x1                                                                                             
001628   1617     ANDWF     0x17,0x1,0x0                                                                                    
00162a   c017     MOVFF     0x17,0x16                                                                                       
00162c   f016                                                                                                               
00162e   6a17     CLRF      0x17,0x0                                                                                        
001630   0e01     MOVLW     0x1                                                                                             
001632   6ee7     MOVWF     0xe7,0x0                                                                                        
001634   0ef1     MOVLW     0xf1                                                                                            
001636   cfdb     MOVFF     0xfdb,0x14                                                                                      
001638   f014                                                                                                               
00163a   0ef2     MOVLW     0xf2                                                                                            
00163c   cfdb     MOVFF     0xfdb,0x15                                                                                      
00163e   f015                                                                                                               
001640   50e7     MOVF      0xe7,0x0,0x0                                                                                    
001642   1614     ANDWF     0x14,0x1,0x0                                                                                    
001644   6a15     CLRF      0x15,0x0                                                                                        
001646   0e07     MOVLW     0x7                                                                                             
001648   90d8     BCF       0xd8,0x0,0x0                                                                                    
00164a   3614     RLCF      0x14,0x1,0x0                                                                                    
00164c   3615     RLCF      0x15,0x1,0x0                                                                                    
00164e   04e8     DECF      0xe8,0x0,0x0                                                                                    
001650   e1fb     BNZ       0x1648                                                                                          
001652   0ef3     MOVLW     0xf3                                                                                            
001654   50db     MOVF      0xdb,0x0,0x0                                                                                    
001656   0b3f     ANDLW     0x3f                                                                                            
001658   24e8     ADDWF     0xe8,0x0,0x0                                                                                    
00165a   2414     ADDWF     0x14,0x0,0x0                                                                                    
00165c   2416     ADDWF     0x16,0x0,0x0                                                                                    
00165e   6e63     MOVWF     0x63,0x0                                                                                        
001660   0eff     MOVLW     0xff                RXB0EIDL = (BYTE)((cm.sid & 0x00FF));                                          F:\MCP\projects\CAN\canBase\Source\CAN.c
001662   6ee7     MOVWF     0xe7,0x0                                                                                        
001664   0ef4     MOVLW     0xf4                                                                                            
001666   cfdb     MOVFF     0xfdb,0x14                                                                                      
001668   f014                                                                                                               
00166a   0ef5     MOVLW     0xf5                                                                                            
00166c   cfdb     MOVFF     0xfdb,0x15                                                                                      
00166e   f015                                                                                                               
001670   50e7     MOVF      0xe7,0x0,0x0                                                                                    
001672   1614     ANDWF     0x14,0x1,0x0                                                                                    
001674   6a15     CLRF      0x15,0x0                                                                                        
001676   5014     MOVF      0x14,0x0,0x0                                                                                    
001678   6e64     MOVWF     0x64,0x0                                                                                        
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
                                                // Data length                                                                 F:\MCP\projects\CAN\canBase\Source\CAN.c
00167a   6a65     CLRF      0x65,0x0            RXB0DLC = 0;                                                                   F:\MCP\projects\CAN\canBase\Source\CAN.c
00167c   0ef6     MOVLW     0xf6                if (cm.data_length>8) RXB0DLC=8; else RXB0DLC=cm.data_length;                  F:\MCP\projects\CAN\canBase\Source\CAN.c
00167e   50db     MOVF      0xdb,0x0,0x0                                                                                    
001680   0808     SUBLW     0x8                                                                                             
001682   e203     BC        0x168a                                                                                          
001684   0e08     MOVLW     0x8                                                                                             
001686   6e65     MOVWF     0x65,0x0                                                                                        
001688   d003     BRA       0x1690                                                                                          
00168a   0ef6     MOVLW     0xf6                                                                                            
00168c   50db     MOVF      0xdb,0x0,0x0                                                                                    
00168e   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
001690   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
001692   0ef7     MOVLW     0xf7                RXB0D0=cm.data[0];  RXB0D1=cm.data[1];                                          F:\MCP\projects\CAN\canBase\Source\CAN.c
001694   50db     MOVF      0xdb,0x0,0x0                                                                                    
001696   6e66     MOVWF     0x66,0x0                                                                                        
001698   0ef8     MOVLW     0xf8                                                                                            
00169a   50db     MOVF      0xdb,0x0,0x0                                                                                    
00169c   6e67     MOVWF     0x67,0x0                                                                                        
00169e   0ef9     MOVLW     0xf9                RXB0D2=cm.data[2];  RXB0D3=cm.data[3];                                         F:\MCP\projects\CAN\canBase\Source\CAN.c
0016a0   50db     MOVF      0xdb,0x0,0x0                                                                                    
0016a2   6e68     MOVWF     0x68,0x0                                                                                        
0016a4   0efa     MOVLW     0xfa                                                                                            
0016a6   50db     MOVF      0xdb,0x0,0x0                                                                                    
0016a8   6e69     MOVWF     0x69,0x0                                                                                        
0016aa   0efb     MOVLW     0xfb                RXB0D4=cm.data[4];  RXB0D5=cm.data[5];                                         F:\MCP\projects\CAN\canBase\Source\CAN.c
0016ac   50db     MOVF      0xdb,0x0,0x0                                                                                    
0016ae   6e6a     MOVWF     0x6a,0x0                                                                                        
0016b0   0efc     MOVLW     0xfc                                                                                            
0016b2   50db     MOVF      0xdb,0x0,0x0                                                                                    
0016b4   6e6b     MOVWF     0x6b,0x0                                                                                        
0016b6   0efd     MOVLW     0xfd                RXB0D6=cm.data[6];  RXB0D7=cm.data[7];                                         F:\MCP\projects\CAN\canBase\Source\CAN.c
0016b8   50db     MOVF      0xdb,0x0,0x0                                                                                    
0016ba   6e6c     MOVWF     0x6c,0x0                                                                                        
0016bc   0efe     MOVLW     0xfe                                                                                            
0016be   50db     MOVF      0xdb,0x0,0x0                                                                                    
0016c0   6e6d     MOVWF     0x6d,0x0                                                                                        
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
                                                // set extended                                                                F:\MCP\projects\CAN\canBase\Source\CAN.c
0016c2   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
0016c4   0eef     MOVLW     0xef                RXB0CON = (RXB0CON & 0b11111100) | prio;                                       F:\MCP\projects\CAN\canBase\Source\CAN.c
0016c6   cfdb     MOVFF     0xfdb,0xfe6                                                                                     
0016c8   ffe6                                                                                                               
0016ca   0efc     MOVLW     0xfc                                                                                            
0016cc   1460     ANDWF     0x60,0x0,0x0                                                                                    
0016ce   52e5     MOVF      0xe5,0x1,0x0                                                                                    
0016d0   10e7     IORWF     0xe7,0x0,0x0                                                                                    
0016d2   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
0016d4   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
0016d6   0e01     MOVLW     0x1                 return TRUE;                                                                   F:\MCP\projects\CAN\canBase\Source\CAN.c
0016d8   d000     BRA       0x16da                                                                                          
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
0016da   52e5     MOVF      0xe5,0x1,0x0   }                                                                                F:\MCP\projects\CAN\canBase\Source\CAN.c
0016dc   cfe7     MOVFF     0xfe7,0xfd9                                                                                     
0016de   ffd9                                                                                                               
0016e0   0012     RETURN    0x0                                                                                             
                                           /*********************************************************************           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
001d90   0e79     MOVLW     0x79               TMR0L = TICK_COUNTER_LOW;                                                    F:\MCP\projects\CAN\canBase\Source\Tick.c
001d92   6ed6     MOVWF     0xd6,0x0                                                                                        
001d94   0efe     MOVLW     0xfe               TMR0H = TICK_COUNTER_HIGH;                                                   F:\MCP\projects\CAN\canBase\Source\Tick.c
001d96   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
001d98   0e07     MOVLW     0x7                T0CON = 0b00000000 | TIMER_PRESCALE;                                         F:\MCP\projects\CAN\canBase\Source\Tick.c
001d9a   6ed5     MOVWF     0xd5,0x0                                                                                        
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Tick.c
                                               // Start the timer.                                                          F:\MCP\projects\CAN\canBase\Source\Tick.c
001d9c   8ed5     BSF       0xd5,0x7,0x0       T0CONbits.TMR0ON = 1;                                                        F:\MCP\projects\CAN\canBase\Source\Tick.c
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Tick.c
001d9e   84f2     BSF       0xf2,0x2,0x0       INTCONbits.TMR0IF = 1;                                                       F:\MCP\projects\CAN\canBase\Source\Tick.c
001da0   8af2     BSF       0xf2,0x5,0x0       INTCONbits.TMR0IE = 1;                                                       F:\MCP\projects\CAN\canBase\Source\Tick.c
001da2   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
001da4   c08f     MOVFF     0x8f,0x4           return TickCount;                                                            F:\MCP\projects\CAN\canBase\Source\Tick.c
001da6   f004                                                                                                               
001da8   c090     MOVFF     0x90,0x5                                                                                        
001daa   f005                                                                                                               
001dac   c091     MOVFF     0x91,0x6                                                                                        
001dae   f006                                                                                                               
001db0   c092     MOVFF     0x92,0x7                                                                                        
001db2   f007                                                                                                               
001db4   d000     BRA       0x1db6                                                                                          
001db6   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
001db8   a4f2     BTFSS     0xf2,0x2,0x0       if(INTCONbits.TMR0IF)                                                        F:\MCP\projects\CAN\canBase\Source\Tick.c
001dba   d00b     BRA       0x1dd2                                                                                          
                                               {                                                                            F:\MCP\projects\CAN\canBase\Source\Tick.c
001dbc   0efe     MOVLW     0xfe                   TMR0H = TICK_COUNTER_HIGH;                                               F:\MCP\projects\CAN\canBase\Source\Tick.c
001dbe   6ed7     MOVWF     0xd7,0x0                                                                                        
001dc0   0e79     MOVLW     0x79                   TMR0L = TICK_COUNTER_LOW;                                                F:\MCP\projects\CAN\canBase\Source\Tick.c
001dc2   6ed6     MOVWF     0xd6,0x0                                                                                        
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Tick.c
001dc4   0100     MOVLB     0x0                    TickCount++;                                                             F:\MCP\projects\CAN\canBase\Source\Tick.c
001dc6   2b8f     INCF      0x8f,0x1,0x1                                                                                    
001dc8   0e00     MOVLW     0x0                                                                                             
001dca   2390     ADDWFC    0x90,0x1,0x1                                                                                    
001dcc   2391     ADDWFC    0x91,0x1,0x1                                                                                    
001dce   2392     ADDWFC    0x92,0x1,0x1                                                                                    
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Tick.c
001dd0   94f2     BCF       0xf2,0x2,0x0           INTCONbits.TMR0IF = 0;                                                   F:\MCP\projects\CAN\canBase\Source\Tick.c
                                               }                                                                            F:\MCP\projects\CAN\canBase\Source\Tick.c
001dd2   0012     RETURN    0x0            }                                                                                F:\MCP\projects\CAN\canBase\Source\Tick.c
                                           /*********************************************************************           F:\MCP\projects\CAN\canTemp\Source\Main.c
                                            *                                                                               F:\MCP\projects\CAN\canTemp\Source\Main.c
                                            *                  Main application                                             F:\MCP\projects\CAN\canTemp\Source\Main.c
                                            *                                                                               F:\MCP\projects\CAN\canTemp\Source\Main.c
                                            *********************************************************************           F:\MCP\projects\CAN\canTemp\Source\Main.c
                                            * FileName:        $HeadURL: http://svn.arune.se/svn/HomeAutomation/trunk/EmbeddedSoftware/PIC/canTemp/Source/Main.c $ F:\MCP\projects\CAN\canTemp\Source\Main.c
                                            * Last changed: $LastChangedDate: 2007-02-03 16:58:13 +0100 (lö, 03 feb 2007) $ F:\MCP\projects\CAN\canTemp\Source\Main.c
                                            * By:               $LastChangedBy: johboh $                                               F:\MCP\projects\CAN\canTemp\Source\Main.c
                                            * Revision:     $Revision: 282 $                                                   F:\MCP\projects\CAN\canTemp\Source\Main.c
                                            ********************************************************************/           F:\MCP\projects\CAN\canTemp\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canTemp\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canTemp\Source\Main.c
                                           #include <compiler.h>                                                            F:\MCP\projects\CAN\canTemp\Source\Main.c
                                           #include <stackTasks.h>                                                          F:\MCP\projects\CAN\canTemp\Source\Main.c
                                           #include <Tick.h>                                                                F:\MCP\projects\CAN\canTemp\Source\Main.c
                                           #include <funcdefs.h>                                                            F:\MCP\projects\CAN\canTemp\Source\Main.c
                                           #include <CAN.h>                                                                 F:\MCP\projects\CAN\canTemp\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canTemp\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canTemp\Source\Main.c
                                           #ifdef USE_ADC                                                                   F:\MCP\projects\CAN\canTemp\Source\Main.c
                                            #include <adc.h>                                                                F:\MCP\projects\CAN\canTemp\Source\Main.c
                                           #endif                                                                           F:\MCP\projects\CAN\canTemp\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canTemp\Source\Main.c
                                           #ifdef USE_BLINDS                                                                F:\MCP\projects\CAN\canTemp\Source\Main.c
                                            #include <blinds.h>                                                             F:\MCP\projects\CAN\canTemp\Source\Main.c
                                           #endif                                                                           F:\MCP\projects\CAN\canTemp\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canTemp\Source\Main.c
                                           static void mainInit(void);                                                      F:\MCP\projects\CAN\canTemp\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canTemp\Source\Main.c
001950   cfd9     MOVFF     0xfd9,0xfe6    void main()                                                                      F:\MCP\projects\CAN\canTemp\Source\Main.c
001952   ffe6                                                                                                               
001954   cfe1     MOVFF     0xfe1,0xfd9                                                                                     
001956   ffd9                                                                                                               
001958   0e0f     MOVLW     0xf                                                                                             
00195a   26e1     ADDWF     0xe1,0x1,0x0                                                                                    
                                           {                                                                                F:\MCP\projects\CAN\canTemp\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canTemp\Source\Main.c
                                            static TICK t = 0;                                                              F:\MCP\projects\CAN\canTemp\Source\Main.c
                                            CAN_MESSAGE outCm;                                                              F:\MCP\projects\CAN\canTemp\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canTemp\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canTemp\Source\Main.c
                                            // Inits                                                                        F:\MCP\projects\CAN\canTemp\Source\Main.c
00195c   d8c1     RCALL     0x1ae0          mainInit();                                                                     F:\MCP\projects\CAN\canTemp\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canTemp\Source\Main.c
00195e   ec2e     CALL      0x105c,0x0      canInit();                                                                      F:\MCP\projects\CAN\canTemp\Source\Main.c
001960   f008                                                                                                               
                                                                                                                            F:\MCP\projects\CAN\canTemp\Source\Main.c
                                            #ifdef USE_ADC                                                                  F:\MCP\projects\CAN\canTemp\Source\Main.c
                                                adcInit(TRUE,0b1011);                                                          F:\MCP\projects\CAN\canTemp\Source\Main.c
                                            #endif                                                                          F:\MCP\projects\CAN\canTemp\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canTemp\Source\Main.c
                                            #ifdef USE_BLINDS                                                               F:\MCP\projects\CAN\canTemp\Source\Main.c
001962   ec86     CALL      0x1b0c,0x0          blindsInit();                                                                  F:\MCP\projects\CAN\canTemp\Source\Main.c
001964   f00d                                                                                                               
                                            #endif                                                                          F:\MCP\projects\CAN\canTemp\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canTemp\Source\Main.c
001966   8a82     BSF       0x82,0x5,0x0    BLINDS0P_IO=1;                                                                  F:\MCP\projects\CAN\canTemp\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canTemp\Source\Main.c
001a1e   d7a4     BRA       0x1968          while(1)                                                                        F:\MCP\projects\CAN\canTemp\Source\Main.c
                                            {                                                                               F:\MCP\projects\CAN\canTemp\Source\Main.c
                                                static TICK t = 0;                                                             F:\MCP\projects\CAN\canTemp\Source\Main.c
                                                static TICK temperature = 0;                                                   F:\MCP\projects\CAN\canTemp\Source\Main.c
                                                static BYTE lastTemperature = TEMPERATURE_INSIDE;                              F:\MCP\projects\CAN\canTemp\Source\Main.c
                                                static signed char angle = 70;                                                 F:\MCP\projects\CAN\canTemp\Source\Main.c
                                                static TICK blinds = 0;                                                        F:\MCP\projects\CAN\canTemp\Source\Main.c
                                                                                                                               F:\MCP\projects\CAN\canTemp\Source\Main.c
001968   ecd2     CALL      0x1da4,0x0          if ((tickGet()-t)>TICK_SECOND)                                                 F:\MCP\projects\CAN\canTemp\Source\Main.c
00196a   f00e                                                                                                               
00196c   0100     MOVLB     0x0                                                                                             
00196e   5177     MOVF      0x77,0x0,0x1                                                                                    
001970   5c04     SUBWF     0x4,0x0,0x0                                                                                     
001972   6e14     MOVWF     0x14,0x0                                                                                        
001974   5178     MOVF      0x78,0x0,0x1                                                                                    
001976   5805     SUBWFB    0x5,0x0,0x0                                                                                     
001978   6e15     MOVWF     0x15,0x0                                                                                        
00197a   5179     MOVF      0x79,0x0,0x1                                                                                    
00197c   5806     SUBWFB    0x6,0x0,0x0                                                                                     
00197e   6e16     MOVWF     0x16,0x0                                                                                        
001980   517a     MOVF      0x7a,0x0,0x1                                                                                    
001982   5807     SUBWFB    0x7,0x0,0x0                                                                                     
001984   6e17     MOVWF     0x17,0x0                                                                                        
001986   80d8     BSF       0xd8,0x0,0x0                                                                                    
001988   0e64     MOVLW     0x64                                                                                            
00198a   5414     SUBFWB    0x14,0x0,0x0                                                                                    
00198c   0e00     MOVLW     0x0                                                                                             
00198e   5415     SUBFWB    0x15,0x0,0x0                                                                                    
001990   0e00     MOVLW     0x0                                                                                             
001992   5416     SUBFWB    0x16,0x0,0x0                                                                                    
001994   0e00     MOVLW     0x0                                                                                             
001996   5417     SUBFWB    0x17,0x0,0x0                                                                                    
001998   e20b     BC        0x19b0                                                                                          
                                                {                                                                              F:\MCP\projects\CAN\canTemp\Source\Main.c
00199a   7282     BTG       0x82,0x1,0x0            LED0_IO=~LED0_IO;                                                             F:\MCP\projects\CAN\canTemp\Source\Main.c
00199c   ecd2     CALL      0x1da4,0x0              t = tickGet();                                                                F:\MCP\projects\CAN\canTemp\Source\Main.c
00199e   f00e                                                                                                               
0019a0   c004     MOVFF     0x4,0x77                                                                                        
0019a2   f077                                                                                                               
0019a4   c005     MOVFF     0x5,0x78                                                                                        
0019a6   f078                                                                                                               
0019a8   c006     MOVFF     0x6,0x79                                                                                        
0019aa   f079                                                                                                               
0019ac   c007     MOVFF     0x7,0x7a                                                                                        
0019ae   f07a                                                                                                               
                                                }                                                                              F:\MCP\projects\CAN\canTemp\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canTemp\Source\Main.c
                                                #ifdef USE_BLINDS                                                              F:\MCP\projects\CAN\canTemp\Source\Main.c
0019b0   ecd2     CALL      0x1da4,0x0          if ((tickGet()-blinds)>2*TICK_SECOND)                                          F:\MCP\projects\CAN\canTemp\Source\Main.c
0019b2   f00e                                                                                                               
0019b4   0100     MOVLB     0x0                                                                                             
0019b6   5181     MOVF      0x81,0x0,0x1                                                                                    
0019b8   5c04     SUBWF     0x4,0x0,0x0                                                                                     
0019ba   6e14     MOVWF     0x14,0x0                                                                                        
0019bc   5182     MOVF      0x82,0x0,0x1                                                                                    
0019be   5805     SUBWFB    0x5,0x0,0x0                                                                                     
0019c0   6e15     MOVWF     0x15,0x0                                                                                        
0019c2   5183     MOVF      0x83,0x0,0x1                                                                                    
0019c4   5806     SUBWFB    0x6,0x0,0x0                                                                                     
0019c6   6e16     MOVWF     0x16,0x0                                                                                        
0019c8   5184     MOVF      0x84,0x0,0x1                                                                                    
0019ca   5807     SUBWFB    0x7,0x0,0x0                                                                                     
0019cc   6e17     MOVWF     0x17,0x0                                                                                        
0019ce   80d8     BSF       0xd8,0x0,0x0                                                                                    
0019d0   0ec8     MOVLW     0xc8                                                                                            
0019d2   5414     SUBFWB    0x14,0x0,0x0                                                                                    
0019d4   0e00     MOVLW     0x0                                                                                             
0019d6   5415     SUBFWB    0x15,0x0,0x0                                                                                    
0019d8   0e00     MOVLW     0x0                                                                                             
0019da   5416     SUBFWB    0x16,0x0,0x0                                                                                    
0019dc   0e00     MOVLW     0x0                                                                                             
0019de   5417     SUBFWB    0x17,0x0,0x0                                                                                    
0019e0   e21e     BC        0x1a1e                                                                                          
                                                {                                                                              F:\MCP\projects\CAN\canTemp\Source\Main.c
0019e2   0e00     MOVLW     0x0                     angle = (angle>0?-70:70);                                                     F:\MCP\projects\CAN\canTemp\Source\Main.c
0019e4   6ee7     MOVWF     0xe7,0x0                                                                                        
0019e6   1980     XORWF     0x80,0x0,0x1                                                                                    
0019e8   aee8     BTFSS     0xe8,0x7,0x0                                                                                    
0019ea   d002     BRA       0x19f0                                                                                          
0019ec   3580     RLCF      0x80,0x0,0x1                                                                                    
0019ee   d003     BRA       0x19f6                                                                                          
0019f0   50e7     MOVF      0xe7,0x0,0x0                                                                                    
0019f2   80d8     BSF       0xd8,0x0,0x0                                                                                    
0019f4   5580     SUBFWB    0x80,0x0,0x1                                                                                    
0019f6   e202     BC        0x19fc                                                                                          
0019f8   0eba     MOVLW     0xba                                                                                            
0019fa   d001     BRA       0x19fe                                                                                          
0019fc   0e46     MOVLW     0x46                                                                                            
0019fe   6f80     MOVWF     0x80,0x1                                                                                        
001a00   c080     MOVFF     0x80,0xfe6              blindsTurn(angle);                                                            F:\MCP\projects\CAN\canTemp\Source\Main.c
001a02   ffe6                                                                                                               
001a04   ec9a     CALL      0x1b34,0x0                                                                                      
001a06   f00d                                                                                                               
001a08   52e5     MOVF      0xe5,0x1,0x0                                                                                    
001a0a   ecd2     CALL      0x1da4,0x0              blinds = tickGet();                                                           F:\MCP\projects\CAN\canTemp\Source\Main.c
001a0c   f00e                                                                                                               
001a0e   c004     MOVFF     0x4,0x81                                                                                        
001a10   f081                                                                                                               
001a12   c005     MOVFF     0x5,0x82                                                                                        
001a14   f082                                                                                                               
001a16   c006     MOVFF     0x6,0x83                                                                                        
001a18   f083                                                                                                               
001a1a   c007     MOVFF     0x7,0x84                                                                                        
001a1c   f084                                                                                                               
                                                }                                                                              F:\MCP\projects\CAN\canTemp\Source\Main.c
                                                #endif                                                                         F:\MCP\projects\CAN\canTemp\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canTemp\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canTemp\Source\Main.c
                                                #ifdef USE_ADC                                                                 F:\MCP\projects\CAN\canTemp\Source\Main.c
                                                if ((tickGet()-temperature)>TICK_SECOND*2) // Each 2 second, read temperature. F:\MCP\projects\CAN\canTemp\Source\Main.c
                                                {                                                                              F:\MCP\projects\CAN\canTemp\Source\Main.c
                                                    if (lastTemperature==TEMPERATURE_INSIDE) lastTemperature=TEMPERATURE_OUTSIDE; else lastTemperature=TEMPERATURE_INSIDE; F:\MCP\projects\CAN\canTemp\Source\Main.c
                                                    adcConvert(lastTemperature);                                                  F:\MCP\projects\CAN\canTemp\Source\Main.c
                                                    temperature = tickGet();                                                      F:\MCP\projects\CAN\canTemp\Source\Main.c
                                                }                                                                              F:\MCP\projects\CAN\canTemp\Source\Main.c
                                                #endif                                                                         F:\MCP\projects\CAN\canTemp\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canTemp\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canTemp\Source\Main.c
                                                #ifdef USE_ADC                                                                 F:\MCP\projects\CAN\canTemp\Source\Main.c
                                                if (adcDone()) // Has temperature, send it to the bus                          F:\MCP\projects\CAN\canTemp\Source\Main.c
                                                {                                                                              F:\MCP\projects\CAN\canTemp\Source\Main.c
                                                    BYTE decimal;                                                                 F:\MCP\projects\CAN\canTemp\Source\Main.c
                                                    signed char tenth;                                                            F:\MCP\projects\CAN\canTemp\Source\Main.c
                                                    temperatureRead(&tenth,&decimal);                                             F:\MCP\projects\CAN\canTemp\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canTemp\Source\Main.c
                                                    outCm.funct                     = FUNCT_SENSORS;                                             F:\MCP\projects\CAN\canTemp\Source\Main.c
                                                    outCm.funcc                     = (lastTemperature==TEMPERATURE_INSIDE?FUNCC_SENSORS_TEMPERATURE_INSIDE:FUNCC_SENSORS_TEMPERATURE_OUTSIDE); F:\MCP\projects\CAN\canTemp\Source\Main.c
                                                    outCm.data_length               = 2;                                                    F:\MCP\projects\CAN\canTemp\Source\Main.c
                                                    outCm.data[1]                   = tenth; //  signed 10 an 1 decimal.                        F:\MCP\projects\CAN\canTemp\Source\Main.c
                                                    outCm.data[0]                   = decimal; //  Decimal value, 0-9                           F:\MCP\projects\CAN\canTemp\Source\Main.c
                                                    while(!canSendMessage(outCm,PRIO_HIGH));                                      F:\MCP\projects\CAN\canTemp\Source\Main.c
                                                }                                                                              F:\MCP\projects\CAN\canTemp\Source\Main.c
                                                #endif                                                                         F:\MCP\projects\CAN\canTemp\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canTemp\Source\Main.c
                                            }                                                                               F:\MCP\projects\CAN\canTemp\Source\Main.c
001a20   0e0f     MOVLW     0xf            }                                                                                F:\MCP\projects\CAN\canTemp\Source\Main.c
001a22   5ce1     SUBWF     0xe1,0x0,0x0                                                                                    
001a24   e202     BC        0x1a2a                                                                                          
001a26   6ae1     CLRF      0xe1,0x0                                                                                        
001a28   52e5     MOVF      0xe5,0x1,0x0                                                                                    
001a2a   6ee1     MOVWF     0xe1,0x0                                                                                        
001a2c   52e5     MOVF      0xe5,0x1,0x0                                                                                    
001a2e   cfe7     MOVFF     0xfe7,0xfd9                                                                                     
001a30   ffd9                                                                                                               
001a32   0012     RETURN    0x0                                                                                             
                                                                                                                            F:\MCP\projects\CAN\canTemp\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canTemp\Source\Main.c
                                           #pragma interrupt high_isr                                                       F:\MCP\projects\CAN\canTemp\Source\Main.c
001a34   cfda     MOVFF     0xfda,0xfe4    void high_isr(void)                                                              F:\MCP\projects\CAN\canTemp\Source\Main.c
001a36   ffe4                                                                                                               
001a38   cfe2     MOVFF     0xfe2,0xfda                                                                                     
001a3a   ffda                                                                                                               
001a3c   cfe9     MOVFF     0xfe9,0xfe4                                                                                     
001a3e   ffe4                                                                                                               
001a40   cfea     MOVFF     0xfea,0xfe4                                                                                     
001a42   ffe4                                                                                                               
001a44   cff6     MOVFF     0xff6,0xfe4                                                                                     
001a46   ffe4                                                                                                               
001a48   cff7     MOVFF     0xff7,0xfe4                                                                                     
001a4a   ffe4                                                                                                               
001a4c   cff5     MOVFF     0xff5,0xfe4                                                                                     
001a4e   ffe4                                                                                                               
001a50   cff3     MOVFF     0xff3,0xfe4                                                                                     
001a52   ffe4                                                                                                               
001a54   cff4     MOVFF     0xff4,0xfe4                                                                                     
001a56   ffe4                                                                                                               
001a58   cffa     MOVFF     0xffa,0xfe4                                                                                     
001a5a   ffe4                                                                                                               
001a5c   ee00     LFSR      0x0,0x0                                                                                         
001a5e   f000                                                                                                               
001a60   0e14     MOVLW     0x14                                                                                            
001a62   04e8     DECF      0xe8,0x0,0x0                                                                                    
001a64   e303     BNC       0x1a6c                                                                                          
001a66   cfee     MOVFF     0xfee,0xfe4                                                                                     
001a68   ffe4                                                                                                               
001a6a   d7fb     BRA       0x1a62                                                                                          
001a6c   ee00     LFSR      0x0,0x14                                                                                        
001a6e   f014                                                                                                               
001a70   0e0f     MOVLW     0xf                                                                                             
001a72   04e8     DECF      0xe8,0x0,0x0                                                                                    
001a74   e303     BNC       0x1a7c                                                                                          
001a76   cfee     MOVFF     0xfee,0xfe4                                                                                     
001a78   ffe4                                                                                                               
001a7a   d7fb     BRA       0x1a72                                                                                          
001a7c   52e6     MOVF      0xe6,0x1,0x0                                                                                    
                                           {                                                                                F:\MCP\projects\CAN\canTemp\Source\Main.c
001a7e   ecb0     CALL      0x1160,0x0      canISR();                                                                       F:\MCP\projects\CAN\canTemp\Source\Main.c
001a80   f008                                                                                                               
                                                                                                                            F:\MCP\projects\CAN\canTemp\Source\Main.c
                                            #ifdef USE_BLINDS                                                               F:\MCP\projects\CAN\canTemp\Source\Main.c
001a82   ec0c     CALL      0x1c18,0x0          blindsISR();                                                                   F:\MCP\projects\CAN\canTemp\Source\Main.c
001a84   f00e                                                                                                               
                                            #endif                                                                          F:\MCP\projects\CAN\canTemp\Source\Main.c
001a86   52e5     MOVF      0xe5,0x1,0x0   }                                                                                F:\MCP\projects\CAN\canTemp\Source\Main.c
001a88   ee00     LFSR      0x0,0x22                                                                                        
001a8a   f022                                                                                                               
001a8c   0e0f     MOVLW     0xf                                                                                             
001a8e   04e8     DECF      0xe8,0x0,0x0                                                                                    
001a90   e303     BNC       0x1a98                                                                                          
001a92   cfe5     MOVFF     0xfe5,0xfed                                                                                     
001a94   ffed                                                                                                               
001a96   d7fb     BRA       0x1a8e                                                                                          
001a98   ee00     LFSR      0x0,0x13                                                                                        
001a9a   f013                                                                                                               
001a9c   0e14     MOVLW     0x14                                                                                            
001a9e   04e8     DECF      0xe8,0x0,0x0                                                                                    
001aa0   e303     BNC       0x1aa8                                                                                          
001aa2   cfe5     MOVFF     0xfe5,0xfed                                                                                     
001aa4   ffed                                                                                                               
001aa6   d7fb     BRA       0x1a9e                                                                                          
001aa8   cfe5     MOVFF     0xfe5,0xffa                                                                                     
001aaa   fffa                                                                                                               
001aac   cfe5     MOVFF     0xfe5,0xff4                                                                                     
001aae   fff4                                                                                                               
001ab0   cfe5     MOVFF     0xfe5,0xff3                                                                                     
001ab2   fff3                                                                                                               
001ab4   cfe5     MOVFF     0xfe5,0xff5                                                                                     
001ab6   fff5                                                                                                               
001ab8   cfe5     MOVFF     0xfe5,0xff7                                                                                     
001aba   fff7                                                                                                               
001abc   cfe5     MOVFF     0xfe5,0xff6                                                                                     
001abe   fff6                                                                                                               
001ac0   cfe5     MOVFF     0xfe5,0xfea                                                                                     
001ac2   ffea                                                                                                               
001ac4   cfe5     MOVFF     0xfe5,0xfe9                                                                                     
001ac6   ffe9                                                                                                               
001ac8   cfe5     MOVFF     0xfe5,0xfda                                                                                     
001aca   ffda                                                                                                               
001acc   0011     RETFIE    0x1                                                                                             
                                                                                                                            F:\MCP\projects\CAN\canTemp\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canTemp\Source\Main.c
                                           #pragma interrupt low_isr                                                        F:\MCP\projects\CAN\canTemp\Source\Main.c
001ace   cfda     MOVFF     0xfda,0xfe4    void low_isr(void)                                                               F:\MCP\projects\CAN\canTemp\Source\Main.c
001ad0   ffe4                                                                                                               
001ad2   cfe2     MOVFF     0xfe2,0xfda                                                                                     
001ad4   ffda                                                                                                               
001ad6   52e6     MOVF      0xe6,0x1,0x0                                                                                    
                                           {                                                                                F:\MCP\projects\CAN\canTemp\Source\Main.c
                                            #ifdef USE_ADC                                                                  F:\MCP\projects\CAN\canTemp\Source\Main.c
                                                adcISR();                                                                      F:\MCP\projects\CAN\canTemp\Source\Main.c
                                            #endif                                                                          F:\MCP\projects\CAN\canTemp\Source\Main.c
001ad8   52e5     MOVF      0xe5,0x1,0x0   }                                                                                F:\MCP\projects\CAN\canTemp\Source\Main.c
001ada   cfe5     MOVFF     0xfe5,0xfda                                                                                     
001adc   ffda                                                                                                               
001ade   0011     RETFIE    0x1                                                                                             
                                                                                                                            F:\MCP\projects\CAN\canTemp\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canTemp\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canTemp\Source\Main.c
                                           /*                                                                               F:\MCP\projects\CAN\canTemp\Source\Main.c
                                           *    Function: mainInit                                                             F:\MCP\projects\CAN\canTemp\Source\Main.c
                                           *                                                                                F:\MCP\projects\CAN\canTemp\Source\Main.c
                                           *    Input:  none                                                                    F:\MCP\projects\CAN\canTemp\Source\Main.c
                                           *    Output: none                                                                   F:\MCP\projects\CAN\canTemp\Source\Main.c
                                           *    Pre-conditions: none                                                           F:\MCP\projects\CAN\canTemp\Source\Main.c
                                           *    Affects: Se code                                                               F:\MCP\projects\CAN\canTemp\Source\Main.c
                                           *    Depends: none.                                                                 F:\MCP\projects\CAN\canTemp\Source\Main.c
                                           */                                                                               F:\MCP\projects\CAN\canTemp\Source\Main.c
                                           void mainInit()                                                                  F:\MCP\projects\CAN\canTemp\Source\Main.c
                                           {                                                                                F:\MCP\projects\CAN\canTemp\Source\Main.c
001ae0   9294     BCF       0x94,0x1,0x0    LED0_TRIS=0;                                                                    F:\MCP\projects\CAN\canTemp\Source\Main.c
001ae2   9894     BCF       0x94,0x4,0x0    BLINDS0_TRIS=0;                                                                 F:\MCP\projects\CAN\canTemp\Source\Main.c
001ae4   9a94     BCF       0x94,0x5,0x0    BLINDS0P_TRIS=0;                                                                F:\MCP\projects\CAN\canTemp\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canTemp\Source\Main.c
                                            // Enable Interrupts                                                            F:\MCP\projects\CAN\canTemp\Source\Main.c
001ae6   8ef2     BSF       0xf2,0x7,0x0       INTCONbits.GIEH = 1;                                                         F:\MCP\projects\CAN\canTemp\Source\Main.c
001ae8   8cf2     BSF       0xf2,0x6,0x0       INTCONbits.GIEL = 1;                                                         F:\MCP\projects\CAN\canTemp\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canTemp\Source\Main.c
                                            // Enable interrupt prirority                                                   F:\MCP\projects\CAN\canTemp\Source\Main.c
001aea   8ed0     BSF       0xd0,0x7,0x0    RCONbits.IPEN=1;                                                                F:\MCP\projects\CAN\canTemp\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canTemp\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canTemp\Source\Main.c
001aec   0012     RETURN    0x0            }                                                                                F:\MCP\projects\CAN\canTemp\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canTemp\Source\Main.c
                                           /*                                                                               F:\MCP\projects\CAN\canTemp\Source\Main.c
                                           *    Function: canParse                                                             F:\MCP\projects\CAN\canTemp\Source\Main.c
                                           *                                                                                F:\MCP\projects\CAN\canTemp\Source\Main.c
                                           *    Input:  Received can message                                                    F:\MCP\projects\CAN\canTemp\Source\Main.c
                                           *    Output: none                                                                   F:\MCP\projects\CAN\canTemp\Source\Main.c
                                           *    Pre-conditions: canInit and received packet.                                   F:\MCP\projects\CAN\canTemp\Source\Main.c
                                           *    Affects: Sensors/actuators/etc. See code.                                      F:\MCP\projects\CAN\canTemp\Source\Main.c
                                           *    Depends: none.                                                                 F:\MCP\projects\CAN\canTemp\Source\Main.c
                                           */                                                                               F:\MCP\projects\CAN\canTemp\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canTemp\Source\Main.c
001aee   cfd9     MOVFF     0xfd9,0xfe6    void canParse(CAN_MESSAGE cm)                                                    F:\MCP\projects\CAN\canTemp\Source\Main.c
001af0   ffe6                                                                                                               
001af2   cfe1     MOVFF     0xfe1,0xfd9                                                                                     
001af4   ffd9                                                                                                               
001af6   0e0f     MOVLW     0xf                                                                                             
001af8   26e1     ADDWF     0xe1,0x1,0x0                                                                                    
                                           {                                                                                F:\MCP\projects\CAN\canTemp\Source\Main.c
                                            CAN_MESSAGE outCm;                                                              F:\MCP\projects\CAN\canTemp\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canTemp\Source\Main.c
001afa   5ce1     SUBWF     0xe1,0x0,0x0   }                                                                                F:\MCP\projects\CAN\canTemp\Source\Main.c
001afc   e202     BC        0x1b02                                                                                          
001afe   6ae1     CLRF      0xe1,0x0                                                                                        
001b00   52e5     MOVF      0xe5,0x1,0x0                                                                                    
001b02   6ee1     MOVWF     0xe1,0x0                                                                                        
001b04   52e5     MOVF      0xe5,0x1,0x0                                                                                    
001b06   cfe7     MOVFF     0xfe7,0xfd9                                                                                     
001b08   ffd9                                                                                                               
001b0a   0012     RETURN    0x0                                                                                             
                                                                                                                            F:\MCP\projects\CAN\canTemp\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canTemp\Source\Main.c
                                           // Below are mandantory when using bootloader                                    F:\MCP\projects\CAN\canTemp\Source\Main.c
                                           // define DEBUG_MODE to use without bootloader.                                  F:\MCP\projects\CAN\canTemp\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canTemp\Source\Main.c
                                           #ifndef DEBUG_MODE                                                               F:\MCP\projects\CAN\canTemp\Source\Main.c
                                           extern void _startup (void);                                                     F:\MCP\projects\CAN\canTemp\Source\Main.c
                                           #pragma code _RESET_INTERRUPT_VECTOR = 0x001000                                  F:\MCP\projects\CAN\canTemp\Source\Main.c
                                           void _reset (void)                                                               F:\MCP\projects\CAN\canTemp\Source\Main.c
                                           {                                                                                F:\MCP\projects\CAN\canTemp\Source\Main.c
001000   efea     GOTO      0x1dd4             _asm goto _startup _endasm                                                   F:\MCP\projects\CAN\canTemp\Source\Main.c
001002   f00e                                                                                                               
001004   0012     RETURN    0x0            }                                                                                F:\MCP\projects\CAN\canTemp\Source\Main.c
                                           #pragma code                                                                     F:\MCP\projects\CAN\canTemp\Source\Main.c
                                           #endif                                                                           F:\MCP\projects\CAN\canTemp\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canTemp\Source\Main.c
                                           #pragma code _HIGH_INTERRUPT_VECTOR = 0x001008                                   F:\MCP\projects\CAN\canTemp\Source\Main.c
                                           void _high_ISR (void)                                                            F:\MCP\projects\CAN\canTemp\Source\Main.c
                                           {                                                                                F:\MCP\projects\CAN\canTemp\Source\Main.c
001008   ef1a     GOTO      0x1a34          _asm GOTO high_isr _endasm                                                      F:\MCP\projects\CAN\canTemp\Source\Main.c
00100a   f00d                                                                                                               
00100c   0012     RETURN    0x0            }                                                                                F:\MCP\projects\CAN\canTemp\Source\Main.c
                                           #pragma code                                                                     F:\MCP\projects\CAN\canTemp\Source\Main.c
                                                                                                                            F:\MCP\projects\CAN\canTemp\Source\Main.c
                                           #pragma code _LOW_INTERRUPT_VECTOR = 0x001018                                    F:\MCP\projects\CAN\canTemp\Source\Main.c
                                           void _low_ISR (void)                                                             F:\MCP\projects\CAN\canTemp\Source\Main.c
                                           {                                                                                F:\MCP\projects\CAN\canTemp\Source\Main.c
001018   ef67     GOTO      0x1ace             _asm GOTO low_isr _endasm                                                    F:\MCP\projects\CAN\canTemp\Source\Main.c
00101a   f00d                                                                                                               
00101c   0012     RETURN    0x0            }                                                                                F:\MCP\projects\CAN\canTemp\Source\Main.c
                                           #pragma code                                                                     F:\MCP\projects\CAN\canTemp\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-20 21:31:03 +0100 (må, 20 nov 2006) $ F:\MCP\projects\CAN\Include\EEAccess.c
                                            * By:           $LastChangedBy: johboh $                                                F:\MCP\projects\CAN\Include\EEAccess.c
                                            * Revision:     $Revision: 139 $                                                   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
                                           /*                                                                               F:\MCP\projects\CAN\Include\EEAccess.c
                                           *    Function: EERead                                                               F:\MCP\projects\CAN\Include\EEAccess.c
                                           *                                                                                F:\MCP\projects\CAN\Include\EEAccess.c
                                           *    Input:  WORD address to read from.                                              F:\MCP\projects\CAN\Include\EEAccess.c
                                           *    Output: Byte read.                                                             F:\MCP\projects\CAN\Include\EEAccess.c
                                           *    Pre-conditions: none                                                           F:\MCP\projects\CAN\Include\EEAccess.c
                                           *    Affects: none.                                                                 F:\MCP\projects\CAN\Include\EEAccess.c
                                           *    Depends: none.                                                                 F:\MCP\projects\CAN\Include\EEAccess.c
                                           */                                                                               F:\MCP\projects\CAN\Include\EEAccess.c
001c46   cfd9     MOVFF     0xfd9,0xfe6    BYTE EERead(WORD addr)                                                           F:\MCP\projects\CAN\Include\EEAccess.c
001c48   ffe6                                                                                                               
001c4a   cfe1     MOVFF     0xfe1,0xfd9                                                                                     
001c4c   ffd9                                                                                                               
                                           {                                                                                F:\MCP\projects\CAN\Include\EEAccess.c
001c4e   0efd     MOVLW     0xfd            EEADRH=(BYTE)(addr>>8);                                                         F:\MCP\projects\CAN\Include\EEAccess.c
001c50   cfdb     MOVFF     0xfdb,0x14                                                                                      
001c52   f014                                                                                                               
001c54   0efe     MOVLW     0xfe                                                                                            
001c56   cfdb     MOVFF     0xfdb,0x15                                                                                      
001c58   f015                                                                                                               
001c5a   c015     MOVFF     0x15,0x14                                                                                       
001c5c   f014                                                                                                               
001c5e   6a15     CLRF      0x15,0x0                                                                                        
001c60   5014     MOVF      0x14,0x0,0x0                                                                                    
001c62   6eaa     MOVWF     0xaa,0x0                                                                                        
001c64   0eff     MOVLW     0xff            EEADR=(BYTE)(addr & 0xFF);                                                      F:\MCP\projects\CAN\Include\EEAccess.c
001c66   6ee7     MOVWF     0xe7,0x0                                                                                        
001c68   0efd     MOVLW     0xfd                                                                                            
001c6a   cfdb     MOVFF     0xfdb,0x14                                                                                      
001c6c   f014                                                                                                               
001c6e   0efe     MOVLW     0xfe                                                                                            
001c70   cfdb     MOVFF     0xfdb,0x15                                                                                      
001c72   f015                                                                                                               
001c74   50e7     MOVF      0xe7,0x0,0x0                                                                                    
001c76   1614     ANDWF     0x14,0x1,0x0                                                                                    
001c78   6a15     CLRF      0x15,0x0                                                                                        
001c7a   5014     MOVF      0x14,0x0,0x0                                                                                    
001c7c   6ea9     MOVWF     0xa9,0x0                                                                                        
001c7e   9ea6     BCF       0xa6,0x7,0x0    EECON1bits.EEPGD=0;                                                             F:\MCP\projects\CAN\Include\EEAccess.c
001c80   9ca6     BCF       0xa6,0x6,0x0    EECON1bits.CFGS=0;                                                              F:\MCP\projects\CAN\Include\EEAccess.c
001c82   80a6     BSF       0xa6,0x0,0x0    EECON1bits.RD=1;                                                                F:\MCP\projects\CAN\Include\EEAccess.c
001c84   50a8     MOVF      0xa8,0x0,0x0    return EEDATA;                                                                   F:\MCP\projects\CAN\Include\EEAccess.c
001c86   d000     BRA       0x1c88                                                                                          
001c88   52e5     MOVF      0xe5,0x1,0x0   }                                                                                F:\MCP\projects\CAN\Include\EEAccess.c
001c8a   cfe7     MOVFF     0xfe7,0xfd9                                                                                     
001c8c   ffd9                                                                                                               
001c8e   0012     RETURN    0x0                                                                                             
                                                                                                                            F:\MCP\projects\CAN\Include\EEAccess.c
                                                                                                                            F:\MCP\projects\CAN\Include\EEAccess.c
                                           /*                                                                               F:\MCP\projects\CAN\Include\EEAccess.c
                                           *    Function: EEWrite                                                              F:\MCP\projects\CAN\Include\EEAccess.c
                                           *                                                                                F:\MCP\projects\CAN\Include\EEAccess.c
                                           *    Input:  WORD address to write to and BYTE data to write.                        F:\MCP\projects\CAN\Include\EEAccess.c
                                           *    Output: none.                                                                  F:\MCP\projects\CAN\Include\EEAccess.c
                                           *    Pre-conditions: none                                                           F:\MCP\projects\CAN\Include\EEAccess.c
                                           *    Affects: none.                                                                 F:\MCP\projects\CAN\Include\EEAccess.c
                                           *    Depends: none.                                                                 F:\MCP\projects\CAN\Include\EEAccess.c
                                           */                                                                               F:\MCP\projects\CAN\Include\EEAccess.c
001c90   cfd9     MOVFF     0xfd9,0xfe6    void EEWrite(WORD addr,BYTE data)                                                F:\MCP\projects\CAN\Include\EEAccess.c
001c92   ffe6                                                                                                               
001c94   cfe1     MOVFF     0xfe1,0xfd9                                                                                     
001c96   ffd9                                                                                                               
                                           {                                                                                F:\MCP\projects\CAN\Include\EEAccess.c
001c98   98a1     BCF       0xa1,0x4,0x0    PIR2bits.EEIF=0;                                                                F:\MCP\projects\CAN\Include\EEAccess.c
001c9a   0efd     MOVLW     0xfd            EEADRH=(BYTE)(addr>>8);                                                         F:\MCP\projects\CAN\Include\EEAccess.c
001c9c   cfdb     MOVFF     0xfdb,0x14                                                                                      
001c9e   f014                                                                                                               
001ca0   0efe     MOVLW     0xfe                                                                                            
001ca2   cfdb     MOVFF     0xfdb,0x15                                                                                      
001ca4   f015                                                                                                               
001ca6   c015     MOVFF     0x15,0x14                                                                                       
001ca8   f014                                                                                                               
001caa   6a15     CLRF      0x15,0x0                                                                                        
001cac   5014     MOVF      0x14,0x0,0x0                                                                                    
001cae   6eaa     MOVWF     0xaa,0x0                                                                                        
001cb0   0eff     MOVLW     0xff            EEADR=(BYTE)(addr & 0xFF);                                                      F:\MCP\projects\CAN\Include\EEAccess.c
001cb2   6ee7     MOVWF     0xe7,0x0                                                                                        
001cb4   0efd     MOVLW     0xfd                                                                                            
001cb6   cfdb     MOVFF     0xfdb,0x14                                                                                      
001cb8   f014                                                                                                               
001cba   0efe     MOVLW     0xfe                                                                                            
001cbc   cfdb     MOVFF     0xfdb,0x15                                                                                      
001cbe   f015                                                                                                               
001cc0   50e7     MOVF      0xe7,0x0,0x0                                                                                    
001cc2   1614     ANDWF     0x14,0x1,0x0                                                                                    
001cc4   6a15     CLRF      0x15,0x0                                                                                        
001cc6   5014     MOVF      0x14,0x0,0x0                                                                                    
001cc8   6ea9     MOVWF     0xa9,0x0                                                                                        
001cca   0efc     MOVLW     0xfc            EEDATA=data;                                                                    F:\MCP\projects\CAN\Include\EEAccess.c
001ccc   50db     MOVF      0xdb,0x0,0x0                                                                                    
001cce   6ea8     MOVWF     0xa8,0x0                                                                                        
001cd0   9ea6     BCF       0xa6,0x7,0x0    EECON1bits.EEPGD=0;                                                             F:\MCP\projects\CAN\Include\EEAccess.c
001cd2   9ca6     BCF       0xa6,0x6,0x0    EECON1bits.CFGS=0;                                                              F:\MCP\projects\CAN\Include\EEAccess.c
001cd4   84a6     BSF       0xa6,0x2,0x0    EECON1bits.WREN=1;                                                              F:\MCP\projects\CAN\Include\EEAccess.c
001cd6   9ef2     BCF       0xf2,0x7,0x0    INTCONbits.GIE=0;                                                               F:\MCP\projects\CAN\Include\EEAccess.c
001cd8   0e55     MOVLW     0x55            EECON2=0x55;                                                                    F:\MCP\projects\CAN\Include\EEAccess.c
001cda   6ea7     MOVWF     0xa7,0x0                                                                                        
001cdc   0eaa     MOVLW     0xaa            EECON2=0xAA;                                                                    F:\MCP\projects\CAN\Include\EEAccess.c
001cde   6ea7     MOVWF     0xa7,0x0                                                                                        
001ce0   82a6     BSF       0xa6,0x1,0x0    EECON1bits.WR=1;                                                                F:\MCP\projects\CAN\Include\EEAccess.c
001ce2   8ef2     BSF       0xf2,0x7,0x0    INTCONbits.GIE=1;                                                               F:\MCP\projects\CAN\Include\EEAccess.c
001ce4   a8a1     BTFSS     0xa1,0x4,0x0    while(!PIR2bits.EEIF);                                                          F:\MCP\projects\CAN\Include\EEAccess.c
001ce6   d7fe     BRA       0x1ce4                                                                                          
001ce8   94a6     BCF       0xa6,0x2,0x0    EECON1bits.WREN=0;                                                              F:\MCP\projects\CAN\Include\EEAccess.c
001cea   52e5     MOVF      0xe5,0x1,0x0   }                                                                                F:\MCP\projects\CAN\Include\EEAccess.c
001cec   cfe7     MOVFF     0xfe7,0xfd9                                                                                     
001cee   ffd9                                                                                                               
001cf0   0012     RETURN    0x0                                                                                             
                                           /*********************************************************************           F:\MCP\projects\CAN\Include\adc.c
                                            *                                                                               F:\MCP\projects\CAN\Include\adc.c
                                            *   Functions for reading ADC                                                   F:\MCP\projects\CAN\Include\adc.c
                                            *                                                                               F:\MCP\projects\CAN\Include\adc.c
                                            *********************************************************************           F:\MCP\projects\CAN\Include\adc.c
                                            * FileName:        $HeadURL: http://svn.arune.se/svn/HomeAutomation/trunk/EmbeddedSoftware/PIC/Include/adc.c $ F:\MCP\projects\CAN\Include\adc.c
                                            * Last changed: $LastChangedDate: 2006-11-20 21:31:03 +0100 (må, 20 nov 2006) $ F:\MCP\projects\CAN\Include\adc.c
                                            * By:               $LastChangedBy: johboh $                                               F:\MCP\projects\CAN\Include\adc.c
                                            * Revision:     $Revision: 139 $                                                   F:\MCP\projects\CAN\Include\adc.c
                                            ********************************************************************/           F:\MCP\projects\CAN\Include\adc.c
                                           #include <adc.h>                                                                 F:\MCP\projects\CAN\Include\adc.c
                                                                                                                            F:\MCP\projects\CAN\Include\adc.c
                                           #ifdef USE_ADC                                                                   F:\MCP\projects\CAN\Include\adc.c
                                                                                                                            F:\MCP\projects\CAN\Include\adc.c
                                           static unsigned long TEMP_VALUE;                                                 F:\MCP\projects\CAN\Include\adc.c
                                           static unsigned int TEMP_COUNT;                                                  F:\MCP\projects\CAN\Include\adc.c
                                                                                                                            F:\MCP\projects\CAN\Include\adc.c
                                           BOOL TEMP_DONE = FALSE;                                                          F:\MCP\projects\CAN\Include\adc.c
                                                                                                                            F:\MCP\projects\CAN\Include\adc.c
                                           /*                                                                               F:\MCP\projects\CAN\Include\adc.c
                                           *    Function: adcInit                                                              F:\MCP\projects\CAN\Include\adc.c
                                           *                                                                                F:\MCP\projects\CAN\Include\adc.c
                                           *    Input:  True or false to use external voltage reference or not. portCfg is portconfiguration. F:\MCP\projects\CAN\Include\adc.c
                                           *    Output: none.                                                                  F:\MCP\projects\CAN\Include\adc.c
                                           *    Pre-conditions: none                                                           F:\MCP\projects\CAN\Include\adc.c
                                           *    Affects: none.                                                                 F:\MCP\projects\CAN\Include\adc.c
                                           *    Depends: none.                                                                 F:\MCP\projects\CAN\Include\adc.c
                                           */                                                                               F:\MCP\projects\CAN\Include\adc.c
                                           void adcInit(BOOL useExtRef,BYTE portCfg)                                        F:\MCP\projects\CAN\Include\adc.c
                                           {                                                                                F:\MCP\projects\CAN\Include\adc.c
                                            // Setup ADC to use low interrupt prior and external ref or not.                F:\MCP\projects\CAN\Include\adc.c
                                                                                                                            F:\MCP\projects\CAN\Include\adc.c
                                            ADCON1 = 0b00000000 | ((1 & useExtRef)<<4) | (0xF & portCfg);                   F:\MCP\projects\CAN\Include\adc.c
                                            ADCON0 = 0b00000000;                                                            F:\MCP\projects\CAN\Include\adc.c
                                            ADCON2 = 0b10101011;                                                            F:\MCP\projects\CAN\Include\adc.c
                                            //useExtRef                                                                     F:\MCP\projects\CAN\Include\adc.c
                                            ADCON0bits.ADON = 1;                                                            F:\MCP\projects\CAN\Include\adc.c
                                            PIR1bits.ADIF = 0;                                                              F:\MCP\projects\CAN\Include\adc.c
                                            PIE1bits.ADIE = 1;                                                              F:\MCP\projects\CAN\Include\adc.c
                                            IPR1bits.ADIP = 0; // Low priority                                              F:\MCP\projects\CAN\Include\adc.c
                                           }                                                                                F:\MCP\projects\CAN\Include\adc.c
                                                                                                                            F:\MCP\projects\CAN\Include\adc.c
                                                                                                                            F:\MCP\projects\CAN\Include\adc.c
                                           /*                                                                               F:\MCP\projects\CAN\Include\adc.c
                                           *    Function: adcISR                                                               F:\MCP\projects\CAN\Include\adc.c
                                           *                                                                                F:\MCP\projects\CAN\Include\adc.c
                                           *    Input:  ADC interrupt rotune. Need to be called from LOW ISR.                   F:\MCP\projects\CAN\Include\adc.c
                                           *    Output: none.                                                                  F:\MCP\projects\CAN\Include\adc.c
                                           *    Pre-conditions: none                                                           F:\MCP\projects\CAN\Include\adc.c
                                           *    Affects: none.                                                                 F:\MCP\projects\CAN\Include\adc.c
                                           *    Depends: none.                                                                 F:\MCP\projects\CAN\Include\adc.c
                                           */                                                                               F:\MCP\projects\CAN\Include\adc.c
                                           void adcISR(void)                                                                F:\MCP\projects\CAN\Include\adc.c
                                           {                                                                                F:\MCP\projects\CAN\Include\adc.c
                                            if (PIE1bits.ADIE && PIR1bits.ADIF)                                             F:\MCP\projects\CAN\Include\adc.c
                                            {                                                                               F:\MCP\projects\CAN\Include\adc.c
                                                PIR1bits.ADIF = 0;                                                             F:\MCP\projects\CAN\Include\adc.c
                                                                                                                            F:\MCP\projects\CAN\Include\adc.c
                                                TEMP_VALUE+=((int)ADRESH)<<8 | ADRESL;                                         F:\MCP\projects\CAN\Include\adc.c
                                                TEMP_COUNT++;                                                                  F:\MCP\projects\CAN\Include\adc.c
                                                                                                                            F:\MCP\projects\CAN\Include\adc.c
                                                if (TEMP_COUNT>=TEMP_SAMPLES)                                                  F:\MCP\projects\CAN\Include\adc.c
                                                {                                                                              F:\MCP\projects\CAN\Include\adc.c
                                                    TEMP_VALUE = TEMP_VALUE/TEMP_COUNT;                                           F:\MCP\projects\CAN\Include\adc.c
                                                    TEMP_DONE = TRUE;                                                             F:\MCP\projects\CAN\Include\adc.c
                                                }                                                                              F:\MCP\projects\CAN\Include\adc.c
                                                else                                                                           F:\MCP\projects\CAN\Include\adc.c
                                                {                                                                              F:\MCP\projects\CAN\Include\adc.c
                                                    Delay10TCYx(100);                                                             F:\MCP\projects\CAN\Include\adc.c
                                                    ADCON0bits.GO = 1;                                                            F:\MCP\projects\CAN\Include\adc.c
                                                }                                                                              F:\MCP\projects\CAN\Include\adc.c
                                                                                                                            F:\MCP\projects\CAN\Include\adc.c
                                            }                                                                               F:\MCP\projects\CAN\Include\adc.c
                                           }                                                                                F:\MCP\projects\CAN\Include\adc.c
                                                                                                                            F:\MCP\projects\CAN\Include\adc.c
                                                                                                                            F:\MCP\projects\CAN\Include\adc.c
                                           /*                                                                               F:\MCP\projects\CAN\Include\adc.c
                                           *    Function: adcConvert                                                           F:\MCP\projects\CAN\Include\adc.c
                                           *                                                                                F:\MCP\projects\CAN\Include\adc.c
                                           *    Input:  Channel to start convert. Between 0 and 15                              F:\MCP\projects\CAN\Include\adc.c
                                           *    Output: none.                                                                  F:\MCP\projects\CAN\Include\adc.c
                                           *    Pre-conditions: none                                                           F:\MCP\projects\CAN\Include\adc.c
                                           *    Affects: none.                                                                 F:\MCP\projects\CAN\Include\adc.c
                                           *    Depends: none.                                                                 F:\MCP\projects\CAN\Include\adc.c
                                           */                                                                               F:\MCP\projects\CAN\Include\adc.c
                                           BOOL adcConvert(BYTE channel)                                                    F:\MCP\projects\CAN\Include\adc.c
                                           {                                                                                F:\MCP\projects\CAN\Include\adc.c
                                            if (channel>15) return FALSE;                                                   F:\MCP\projects\CAN\Include\adc.c
                                                                                                                            F:\MCP\projects\CAN\Include\adc.c
                                            TEMP_VALUE = 0;                                                                 F:\MCP\projects\CAN\Include\adc.c
                                            TEMP_COUNT = 0;                                                                 F:\MCP\projects\CAN\Include\adc.c
                                                                                                                            F:\MCP\projects\CAN\Include\adc.c
                                            ADCON0 = (channel << 2)  | (ADCON0 & 0b11000011);                               F:\MCP\projects\CAN\Include\adc.c
                                                                                                                            F:\MCP\projects\CAN\Include\adc.c
                                            TEMP_DONE = FALSE;                                                              F:\MCP\projects\CAN\Include\adc.c
                                                                                                                            F:\MCP\projects\CAN\Include\adc.c
                                            ADCON0bits.GO = 1;                                                              F:\MCP\projects\CAN\Include\adc.c
                                                                                                                            F:\MCP\projects\CAN\Include\adc.c
                                            return TRUE;                                                                    F:\MCP\projects\CAN\Include\adc.c
                                           }                                                                                F:\MCP\projects\CAN\Include\adc.c
                                                                                                                            F:\MCP\projects\CAN\Include\adc.c
                                                                                                                            F:\MCP\projects\CAN\Include\adc.c
                                           /*                                                                               F:\MCP\projects\CAN\Include\adc.c
                                           *    Function: adcRead                                                              F:\MCP\projects\CAN\Include\adc.c
                                           *                                                                                F:\MCP\projects\CAN\Include\adc.c
                                           *    Input:  none.                                                                   F:\MCP\projects\CAN\Include\adc.c
                                           *    Output: Raw read data.                                                         F:\MCP\projects\CAN\Include\adc.c
                                           *    Pre-conditions: none                                                           F:\MCP\projects\CAN\Include\adc.c
                                           *    Affects: none.                                                                 F:\MCP\projects\CAN\Include\adc.c
                                           *    Depends: none.                                                                 F:\MCP\projects\CAN\Include\adc.c
                                           */                                                                               F:\MCP\projects\CAN\Include\adc.c
                                           int adcRead(void)                                                                F:\MCP\projects\CAN\Include\adc.c
                                           {                                                                                F:\MCP\projects\CAN\Include\adc.c
                                            TEMP_DONE=FALSE;                                                                F:\MCP\projects\CAN\Include\adc.c
                                            return TEMP_VALUE;                                                              F:\MCP\projects\CAN\Include\adc.c
                                           }                                                                                F:\MCP\projects\CAN\Include\adc.c
                                                                                                                            F:\MCP\projects\CAN\Include\adc.c
                                                                                                                            F:\MCP\projects\CAN\Include\adc.c
                                           /*                                                                               F:\MCP\projects\CAN\Include\adc.c
                                           *    Function: temperatureRead                                                      F:\MCP\projects\CAN\Include\adc.c
                                           *                                                                                F:\MCP\projects\CAN\Include\adc.c
                                           *    Input:  none.                                                                   F:\MCP\projects\CAN\Include\adc.c
                                           *    Output: XX.Y C, where tenth is XX and decimal is Y                             F:\MCP\projects\CAN\Include\adc.c
                                           *    Pre-conditions: none                                                           F:\MCP\projects\CAN\Include\adc.c
                                           *    Affects: none.                                                                 F:\MCP\projects\CAN\Include\adc.c
                                           *    Depends: none.                                                                 F:\MCP\projects\CAN\Include\adc.c
                                           */                                                                               F:\MCP\projects\CAN\Include\adc.c
                                           void temperatureRead(signed char *tenth, BYTE *decimal)                          F:\MCP\projects\CAN\Include\adc.c
                                           {                                                                                F:\MCP\projects\CAN\Include\adc.c
                                            // assuming 2.5V ref and TC47                                                   F:\MCP\projects\CAN\Include\adc.c
                                            signed int i = 0, v11,v01,tfloat;                                               F:\MCP\projects\CAN\Include\adc.c
                                                                                                                            F:\MCP\projects\CAN\Include\adc.c
                                            tfloat =((TEMP_VALUE * 39)>>4) - 499;                                           F:\MCP\projects\CAN\Include\adc.c
                                                                                                                            F:\MCP\projects\CAN\Include\adc.c
                                            v11 = tfloat/10;                                                                F:\MCP\projects\CAN\Include\adc.c
                                            v01 = tfloat-v11*10;                                                            F:\MCP\projects\CAN\Include\adc.c
                                                                                                                            F:\MCP\projects\CAN\Include\adc.c
                                                 if (v01>=0 && v01<=2) v01 = 0;                                             F:\MCP\projects\CAN\Include\adc.c
                                            else if (v01>=3 && v01<=7) v01 = 5;                                             F:\MCP\projects\CAN\Include\adc.c
                                            else  { v01 = 0; v11++;}                                                        F:\MCP\projects\CAN\Include\adc.c
                                                                                                                            F:\MCP\projects\CAN\Include\adc.c
                                            tenth = (signed char *)v11;                                                     F:\MCP\projects\CAN\Include\adc.c
                                            decimal = (BYTE *)v01;                                                          F:\MCP\projects\CAN\Include\adc.c
                                                                                                                            F:\MCP\projects\CAN\Include\adc.c
                                                                                                                            F:\MCP\projects\CAN\Include\adc.c
                                                TEMP_DONE=FALSE;                                                               F:\MCP\projects\CAN\Include\adc.c
                                           }                                                                                F:\MCP\projects\CAN\Include\adc.c
                                                                                                                            F:\MCP\projects\CAN\Include\adc.c
                                                                                                                            F:\MCP\projects\CAN\Include\adc.c
                                           /*                                                                               F:\MCP\projects\CAN\Include\adc.c
                                           *    Function: adcDone                                                              F:\MCP\projects\CAN\Include\adc.c
                                           *                                                                                F:\MCP\projects\CAN\Include\adc.c
                                           *    Input:  none.                                                                   F:\MCP\projects\CAN\Include\adc.c
                                           *    Output: If adc convertion is done or not.                                      F:\MCP\projects\CAN\Include\adc.c
                                           *    Pre-conditions: none                                                           F:\MCP\projects\CAN\Include\adc.c
                                           *    Affects: none.                                                                 F:\MCP\projects\CAN\Include\adc.c
                                           *    Depends: none.                                                                 F:\MCP\projects\CAN\Include\adc.c
                                           */                                                                               F:\MCP\projects\CAN\Include\adc.c
                                           BOOL adcDone(void)                                                               F:\MCP\projects\CAN\Include\adc.c
                                           {                                                                                F:\MCP\projects\CAN\Include\adc.c
                                            return TEMP_DONE;                                                               F:\MCP\projects\CAN\Include\adc.c
                                           }                                                                                F:\MCP\projects\CAN\Include\adc.c
                                                                                                                            F:\MCP\projects\CAN\Include\adc.c
                                           #endif                                                                           F:\MCP\projects\CAN\Include\adc.c
                                           /*********************************************************************           F:\MCP\projects\CAN\canTemp\Source\blinds.c
                                            *                                                                               F:\MCP\projects\CAN\canTemp\Source\blinds.c
                                            *   Functions for controlling blinds                                            F:\MCP\projects\CAN\canTemp\Source\blinds.c
                                            *                                                                               F:\MCP\projects\CAN\canTemp\Source\blinds.c
                                            *********************************************************************           F:\MCP\projects\CAN\canTemp\Source\blinds.c
                                            * FileName:        $HeadURL: http://svn.arune.se/svn/HomeAutomation/trunk/EmbeddedSoftware/PIC/canTemp/Source/blinds.c $ F:\MCP\projects\CAN\canTemp\Source\blinds.c
                                            * Last changed: $LastChangedDate: 2007-02-03 16:58:13 +0100 (lö, 03 feb 2007) $ F:\MCP\projects\CAN\canTemp\Source\blinds.c
                                            * By:               $LastChangedBy: johboh $                                               F:\MCP\projects\CAN\canTemp\Source\blinds.c
                                            * Revision:     $Revision: 282 $                                                   F:\MCP\projects\CAN\canTemp\Source\blinds.c
                                            ********************************************************************/           F:\MCP\projects\CAN\canTemp\Source\blinds.c
                                           #include <blinds.h>                                                              F:\MCP\projects\CAN\canTemp\Source\blinds.c
                                                                                                                            F:\MCP\projects\CAN\canTemp\Source\blinds.c
                                           #ifdef USE_BLINDS                                                                F:\MCP\projects\CAN\canTemp\Source\blinds.c
                                                                                                                            F:\MCP\projects\CAN\canTemp\Source\blinds.c
                                           static unsigned int timerVal = 50536;                                            F:\MCP\projects\CAN\canTemp\Source\blinds.c
                                                                                                                            F:\MCP\projects\CAN\canTemp\Source\blinds.c
                                           /*                                                                               F:\MCP\projects\CAN\canTemp\Source\blinds.c
                                           *    Function: blindsInit                                                           F:\MCP\projects\CAN\canTemp\Source\blinds.c
                                           *                                                                                F:\MCP\projects\CAN\canTemp\Source\blinds.c
                                           *    Input:  none.                                                                   F:\MCP\projects\CAN\canTemp\Source\blinds.c
                                           *    Output: none.                                                                  F:\MCP\projects\CAN\canTemp\Source\blinds.c
                                           *    Pre-conditions: none                                                           F:\MCP\projects\CAN\canTemp\Source\blinds.c
                                           *    Affects: none.                                                                 F:\MCP\projects\CAN\canTemp\Source\blinds.c
                                           *    Depends: none.                                                                 F:\MCP\projects\CAN\canTemp\Source\blinds.c
                                           */                                                                               F:\MCP\projects\CAN\canTemp\Source\blinds.c
                                           void blindsInit()                                                                F:\MCP\projects\CAN\canTemp\Source\blinds.c
                                           {                                                                                F:\MCP\projects\CAN\canTemp\Source\blinds.c
                                            // setup timer one on 0.5ms.                                                    F:\MCP\projects\CAN\canTemp\Source\blinds.c
                                            // 16 bit write, system clock, prescale 2 bit, oscillator off,                  F:\MCP\projects\CAN\canTemp\Source\blinds.c
001b0c   0ec1     MOVLW     0xc1            T1CON = 0b11000001;                                                             F:\MCP\projects\CAN\canTemp\Source\blinds.c
001b0e   6ecd     MOVWF     0xcd,0x0                                                                                        
001b10   0e00     MOVLW     0x0             TMR1H=((timerVal&0xFF00)>>8);                                                   F:\MCP\projects\CAN\canTemp\Source\blinds.c
001b12   0100     MOVLB     0x0                                                                                             
001b14   1596     ANDWF     0x96,0x0,0x1                                                                                    
001b16   6e14     MOVWF     0x14,0x0                                                                                        
001b18   0eff     MOVLW     0xff                                                                                            
001b1a   1597     ANDWF     0x97,0x0,0x1                                                                                    
001b1c   6e15     MOVWF     0x15,0x0                                                                                        
001b1e   c015     MOVFF     0x15,0x14                                                                                       
001b20   f014                                                                                                               
001b22   6a15     CLRF      0x15,0x0                                                                                        
001b24   5014     MOVF      0x14,0x0,0x0                                                                                    
001b26   6ecf     MOVWF     0xcf,0x0                                                                                        
001b28   5196     MOVF      0x96,0x0,0x1    TMR1L=(timerVal&0xFF);                                                          F:\MCP\projects\CAN\canTemp\Source\blinds.c
001b2a   6ece     MOVWF     0xce,0x0                                                                                        
001b2c   909e     BCF       0x9e,0x0,0x0    PIR1bits.TMR1IF = 0;                                                            F:\MCP\projects\CAN\canTemp\Source\blinds.c
001b2e   809d     BSF       0x9d,0x0,0x0    PIE1bits.TMR1IE = 1;                                                            F:\MCP\projects\CAN\canTemp\Source\blinds.c
001b30   809f     BSF       0x9f,0x0,0x0    IPR1bits.TMR1IP = 1; // high prior?                                             F:\MCP\projects\CAN\canTemp\Source\blinds.c
001b32   0012     RETURN    0x0            }                                                                                F:\MCP\projects\CAN\canTemp\Source\blinds.c
                                                                                                                            F:\MCP\projects\CAN\canTemp\Source\blinds.c
                                           /*                                                                               F:\MCP\projects\CAN\canTemp\Source\blinds.c
                                           *    Function: blindsTurn                                                           F:\MCP\projects\CAN\canTemp\Source\blinds.c
                                           *                                                                                F:\MCP\projects\CAN\canTemp\Source\blinds.c
                                           *    Input:  Angle to turn to.                                                       F:\MCP\projects\CAN\canTemp\Source\blinds.c
                                           *    Output: none.                                                                  F:\MCP\projects\CAN\canTemp\Source\blinds.c
                                           *    Pre-conditions: none                                                           F:\MCP\projects\CAN\canTemp\Source\blinds.c
                                           *    Affects: none.                                                                 F:\MCP\projects\CAN\canTemp\Source\blinds.c
                                           *    Depends: none.                                                                 F:\MCP\projects\CAN\canTemp\Source\blinds.c
                                           */                                                                               F:\MCP\projects\CAN\canTemp\Source\blinds.c
001b34   cfd9     MOVFF     0xfd9,0xfe6    void blindsTurn(signed char angle)                                               F:\MCP\projects\CAN\canTemp\Source\blinds.c
001b36   ffe6                                                                                                               
001b38   cfe1     MOVFF     0xfe1,0xfd9                                                                                     
001b3a   ffd9                                                                                                               
                                           {                                                                                F:\MCP\projects\CAN\canTemp\Source\blinds.c
                                            // 65536-TIME/0,0000001                                                         F:\MCP\projects\CAN\canTemp\Source\blinds.c
                                            // -90 0.5 ms = 60536 (5000)                                                    F:\MCP\projects\CAN\canTemp\Source\blinds.c
                                            // 0   1.5 ms = 50536 (15000)                                                   F:\MCP\projects\CAN\canTemp\Source\blinds.c
                                            // 90  2.5 ms = 40536 (25000)                                                   F:\MCP\projects\CAN\canTemp\Source\blinds.c
                                                                                                                            F:\MCP\projects\CAN\canTemp\Source\blinds.c
001b3c   0efe     MOVLW     0xfe            if (angle<-90) timerVal=60536;                                                  F:\MCP\projects\CAN\canTemp\Source\blinds.c
001b3e   cfdb     MOVFF     0xfdb,0x14                                                                                      
001b40   f014                                                                                                               
001b42   0ea6     MOVLW     0xa6                                                                                            
001b44   6ee7     MOVWF     0xe7,0x0                                                                                        
001b46   1814     XORWF     0x14,0x0,0x0                                                                                    
001b48   aee8     BTFSS     0xe8,0x7,0x0                                                                                    
001b4a   d002     BRA       0x1b50                                                                                          
001b4c   34e7     RLCF      0xe7,0x0,0x0                                                                                    
001b4e   d002     BRA       0x1b54                                                                                          
001b50   50e7     MOVF      0xe7,0x0,0x0                                                                                    
001b52   5c14     SUBWF     0x14,0x0,0x0                                                                                    
001b54   e206     BC        0x1b62                                                                                          
001b56   0100     MOVLB     0x0                                                                                             
001b58   0e78     MOVLW     0x78                                                                                            
001b5a   6f96     MOVWF     0x96,0x1                                                                                        
001b5c   0eec     MOVLW     0xec                                                                                            
001b5e   6f97     MOVWF     0x97,0x1                                                                                        
001b60   d057     BRA       0x1c10          else if (angle>90) timerVal=40536;                                              F:\MCP\projects\CAN\canTemp\Source\blinds.c
001b62   0efe     MOVLW     0xfe                                                                                            
001b64   cfdb     MOVFF     0xfdb,0x14                                                                                      
001b66   f014                                                                                                               
001b68   0e5a     MOVLW     0x5a                                                                                            
001b6a   6ee7     MOVWF     0xe7,0x0                                                                                        
001b6c   1814     XORWF     0x14,0x0,0x0                                                                                    
001b6e   aee8     BTFSS     0xe8,0x7,0x0                                                                                    
001b70   d002     BRA       0x1b76                                                                                          
001b72   3414     RLCF      0x14,0x0,0x0                                                                                    
001b74   d003     BRA       0x1b7c                                                                                          
001b76   50e7     MOVF      0xe7,0x0,0x0                                                                                    
001b78   80d8     BSF       0xd8,0x0,0x0                                                                                    
001b7a   5414     SUBFWB    0x14,0x0,0x0                                                                                    
001b7c   e206     BC        0x1b8a                                                                                          
001b7e   0100     MOVLB     0x0                                                                                             
001b80   0e58     MOVLW     0x58                                                                                            
001b82   6f96     MOVWF     0x96,0x1                                                                                        
001b84   0e9e     MOVLW     0x9e                                                                                            
001b86   6f97     MOVWF     0x97,0x1                                                                                        
001b88   d043     BRA       0x1c10          else                                                                            F:\MCP\projects\CAN\canTemp\Source\blinds.c
                                            {                                                                               F:\MCP\projects\CAN\canTemp\Source\blinds.c
001b8a   0e78     MOVLW     0x78                timerVal=60536-(unsigned int)((90+(signed int)angle)*111.111);                 F:\MCP\projects\CAN\canTemp\Source\blinds.c
001b8c   6e17     MOVWF     0x17,0x0                                                                                        
001b8e   0eec     MOVLW     0xec                                                                                            
001b90   6e18     MOVWF     0x18,0x0                                                                                        
001b92   6a19     CLRF      0x19,0x0                                                                                        
001b94   0efe     MOVLW     0xfe                                                                                            
001b96   cfdb     MOVFF     0xfdb,0x21                                                                                      
001b98   f021                                                                                                               
001b9a   6a22     CLRF      0x22,0x0                                                                                        
001b9c   be21     BTFSC     0x21,0x7,0x0                                                                                    
001b9e   6822     SETF      0x22,0x0                                                                                        
001ba0   0e5a     MOVLW     0x5a                                                                                            
001ba2   2621     ADDWF     0x21,0x1,0x0                                                                                    
001ba4   0e00     MOVLW     0x0                                                                                             
001ba6   2222     ADDWFC    0x22,0x1,0x0                                                                                    
001ba8   c021     MOVFF     0x21,0x6                                                                                        
001baa   f006                                                                                                               
001bac   c022     MOVFF     0x22,0x7                                                                                        
001bae   f007                                                                                                               
001bb0   ec73     CALL      0x16e6,0x0                                                                                      
001bb2   f00b                                                                                                               
001bb4   c005     MOVFF     0x5,0x1d                                                                                        
001bb6   f01d                                                                                                               
001bb8   c006     MOVFF     0x6,0x1e                                                                                        
001bba   f01e                                                                                                               
001bbc   c007     MOVFF     0x7,0x1f                                                                                        
001bbe   f01f                                                                                                               
001bc0   c008     MOVFF     0x8,0x20                                                                                        
001bc2   f020                                                                                                               
001bc4   0ed5     MOVLW     0xd5                                                                                            
001bc6   6e0a     MOVWF     0xa,0x0                                                                                         
001bc8   0e38     MOVLW     0x38                                                                                            
001bca   6e0b     MOVWF     0xb,0x0                                                                                         
001bcc   0ede     MOVLW     0xde                                                                                            
001bce   6e0c     MOVWF     0xc,0x0                                                                                         
001bd0   0e42     MOVLW     0x42                                                                                            
001bd2   6e0d     MOVWF     0xd,0x0                                                                                         
001bd4   c01d     MOVFF     0x1d,0x5                                                                                        
001bd6   f005                                                                                                               
001bd8   c01e     MOVFF     0x1e,0x6                                                                                        
001bda   f006                                                                                                               
001bdc   c01f     MOVFF     0x1f,0x7                                                                                        
001bde   f007                                                                                                               
001be0   c020     MOVFF     0x20,0x8                                                                                        
001be2   f008                                                                                                               
001be4   ec86     CALL      0x170c,0x0                                                                                      
001be6   f00b                                                                                                               
001be8   ecf3     CALL      0x17e6,0x0                                                                                      
001bea   f00b                                                                                                               
001bec   c006     MOVFF     0x6,0x1a                                                                                        
001bee   f01a                                                                                                               
001bf0   c007     MOVFF     0x7,0x1b                                                                                        
001bf2   f01b                                                                                                               
001bf4   6a1c     CLRF      0x1c,0x0                                                                                        
001bf6   501a     MOVF      0x1a,0x0,0x0                                                                                    
001bf8   5c17     SUBWF     0x17,0x0,0x0                                                                                    
001bfa   6e14     MOVWF     0x14,0x0                                                                                        
001bfc   501b     MOVF      0x1b,0x0,0x0                                                                                    
001bfe   5818     SUBWFB    0x18,0x0,0x0                                                                                    
001c00   6e15     MOVWF     0x15,0x0                                                                                        
001c02   501c     MOVF      0x1c,0x0,0x0                                                                                    
001c04   5819     SUBWFB    0x19,0x0,0x0                                                                                    
001c06   6e16     MOVWF     0x16,0x0                                                                                        
001c08   c014     MOVFF     0x14,0x96                                                                                       
001c0a   f096                                                                                                               
001c0c   c015     MOVFF     0x15,0x97                                                                                       
001c0e   f097                                                                                                               
                                            }                                                                               F:\MCP\projects\CAN\canTemp\Source\blinds.c
001c10   52e5     MOVF      0xe5,0x1,0x0   }                                                                                F:\MCP\projects\CAN\canTemp\Source\blinds.c
001c12   cfe7     MOVFF     0xfe7,0xfd9                                                                                     
001c14   ffd9                                                                                                               
001c16   0012     RETURN    0x0                                                                                             
                                                                                                                            F:\MCP\projects\CAN\canTemp\Source\blinds.c
                                                                                                                            F:\MCP\projects\CAN\canTemp\Source\blinds.c
                                           /*                                                                               F:\MCP\projects\CAN\canTemp\Source\blinds.c
                                           *    Function: blindsISR                                                            F:\MCP\projects\CAN\canTemp\Source\blinds.c
                                           *                                                                                F:\MCP\projects\CAN\canTemp\Source\blinds.c
                                           *    Input:  none.                                                                   F:\MCP\projects\CAN\canTemp\Source\blinds.c
                                           *    Output: none.                                                                  F:\MCP\projects\CAN\canTemp\Source\blinds.c
                                           *    Pre-conditions: none                                                           F:\MCP\projects\CAN\canTemp\Source\blinds.c
                                           *    Affects: none.                                                                 F:\MCP\projects\CAN\canTemp\Source\blinds.c
                                           *    Depends: none.                                                                 F:\MCP\projects\CAN\canTemp\Source\blinds.c
                                           */                                                                               F:\MCP\projects\CAN\canTemp\Source\blinds.c
                                           void blindsISR(void)                                                             F:\MCP\projects\CAN\canTemp\Source\blinds.c
                                           {                                                                                F:\MCP\projects\CAN\canTemp\Source\blinds.c
001c18   509e     MOVF      0x9e,0x0,0x0    if (PIR1bits.TMR1IF == 1 && PIE1bits.TMR1IE == 1)                               F:\MCP\projects\CAN\canTemp\Source\blinds.c
001c1a   0b01     ANDLW     0x1                                                                                             
001c1c   e013     BZ        0x1c44                                                                                          
001c1e   509d     MOVF      0x9d,0x0,0x0                                                                                    
001c20   0b01     ANDLW     0x1                                                                                             
001c22   e010     BZ        0x1c44                                                                                          
                                            {                                                                               F:\MCP\projects\CAN\canTemp\Source\blinds.c
001c24   0e00     MOVLW     0x0                 TMR1H=((timerVal&0xFF00)>>8);                                                  F:\MCP\projects\CAN\canTemp\Source\blinds.c
001c26   0100     MOVLB     0x0                                                                                             
001c28   1596     ANDWF     0x96,0x0,0x1                                                                                    
001c2a   6e14     MOVWF     0x14,0x0                                                                                        
001c2c   0eff     MOVLW     0xff                                                                                            
001c2e   1597     ANDWF     0x97,0x0,0x1                                                                                    
001c30   6e15     MOVWF     0x15,0x0                                                                                        
001c32   c015     MOVFF     0x15,0x14                                                                                       
001c34   f014                                                                                                               
001c36   6a15     CLRF      0x15,0x0                                                                                        
001c38   5014     MOVF      0x14,0x0,0x0                                                                                    
001c3a   6ecf     MOVWF     0xcf,0x0                                                                                        
001c3c   5196     MOVF      0x96,0x0,0x1        TMR1L=(timerVal&0xFF);                                                         F:\MCP\projects\CAN\canTemp\Source\blinds.c
001c3e   6ece     MOVWF     0xce,0x0                                                                                        
                                                                                                                            F:\MCP\projects\CAN\canTemp\Source\blinds.c
001c40   7882     BTG       0x82,0x4,0x0        BLINDS0_IO=~BLINDS0_IO;                                                        F:\MCP\projects\CAN\canTemp\Source\blinds.c
                                                                                                                            F:\MCP\projects\CAN\canTemp\Source\blinds.c
001c42   909e     BCF       0x9e,0x0,0x0        PIR1bits.TMR1IF = 0;                                                           F:\MCP\projects\CAN\canTemp\Source\blinds.c
                                            }                                                                               F:\MCP\projects\CAN\canTemp\Source\blinds.c
001c44   0012     RETURN    0x0            }                                                                                F:\MCP\projects\CAN\canTemp\Source\blinds.c
                                                                                                                            F:\MCP\projects\CAN\canTemp\Source\blinds.c
                                           #endif                                                                           F:\MCP\projects\CAN\canTemp\Source\blinds.c