Subversion Repositories HomeAutomation

Rev

Details | Last modification | View Log | SVN | RSS feed

Rev Author Line No. Line
85 johboh 1
MP2COD 4.02, COFF to COD File Converter
2
Copyright (c) 2006 Microchip Technology Inc.
109 johboh 3
Listing File Generated: Wed Nov 15 18:47:42 2006
85 johboh 4
 
5
 
6
Address  Value    Disassembly              Source                                                                           File
7
-------  -------  -----------------------  -------------------------------------------------------------------------------  -----
8
                                           /*********************************************************************           F:\MCP\projects\CAN\canBase\Source\Tick.c
9
                                            *                                                                               F:\MCP\projects\CAN\canBase\Source\Tick.c
86 johboh 10
                                            *                  Ticker module service                                        F:\MCP\projects\CAN\canBase\Source\Tick.c
85 johboh 11
                                            *                                                                               F:\MCP\projects\CAN\canBase\Source\Tick.c
12
                                            *********************************************************************           F:\MCP\projects\CAN\canBase\Source\Tick.c
87 johboh 13
                                            * FileName:        $HeadURL: http://svn.arune.se/svn/HomeAutomation/trunk/EmbeddedSoftware/PIC/canBase/Source/Tick.c $ F:\MCP\projects\CAN\canBase\Source\Tick.c
14
                                            * Last changed:	$LastChangedDate: 2006-11-14 10:55:38 +0100 (ti, 14 nov 2006) $ F:\MCP\projects\CAN\canBase\Source\Tick.c
15
                                            * By:				$LastChangedBy: johboh $                                               F:\MCP\projects\CAN\canBase\Source\Tick.c
16
                                            * Revision:		$Revision: 86 $                                                    F:\MCP\projects\CAN\canBase\Source\Tick.c
85 johboh 17
                                            ********************************************************************/           F:\MCP\projects\CAN\canBase\Source\Tick.c
18
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Tick.c
19
                                           #define TICK_INCLUDE                                                             F:\MCP\projects\CAN\canBase\Source\Tick.c
20
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Tick.c
21
                                           #include <Tick.h>                                                                F:\MCP\projects\CAN\canBase\Source\Tick.c
22
                                           #include <Compiler.h>                                                            F:\MCP\projects\CAN\canBase\Source\Tick.c
23
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Tick.c
24
                                           #define TICK_TEMP_VALUE_1 ((INSTR_FREQ) / (TICKS_PER_SECOND * TICK_PRESCALE_VALUE)) F:\MCP\projects\CAN\canBase\Source\Tick.c
25
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Tick.c
26
                                           #if TICK_TEMP_VALUE_1 > 60000                                                    F:\MCP\projects\CAN\canBase\Source\Tick.c
27
                                           #error TICK_PER_SECOND value cannot be programmed with current CLOCK_FREQ        F:\MCP\projects\CAN\canBase\Source\Tick.c
28
                                           #error Either lower TICK_PER_SECOND or manually configure the Timer              F:\MCP\projects\CAN\canBase\Source\Tick.c
29
                                           #endif                                                                           F:\MCP\projects\CAN\canBase\Source\Tick.c
30
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Tick.c
31
                                           #define TICK_TEMP_VALUE         (65535 - TICK_TEMP_VALUE_1)                      F:\MCP\projects\CAN\canBase\Source\Tick.c
32
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Tick.c
33
                                           #define TICK_COUNTER_HIGH       ((TICK_TEMP_VALUE >> 8) & 0xff)                  F:\MCP\projects\CAN\canBase\Source\Tick.c
34
                                           #define TICK_COUNTER_LOW        (TICK_TEMP_VALUE & 0xff)                         F:\MCP\projects\CAN\canBase\Source\Tick.c
35
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Tick.c
36
                                           #if (TICK_PRESCALE_VALUE == 2)                                                   F:\MCP\projects\CAN\canBase\Source\Tick.c
37
                                               #define TIMER_PRESCALE  (0)                                                  F:\MCP\projects\CAN\canBase\Source\Tick.c
38
                                           #elif ( TICK_PRESCALE_VALUE == 4 )                                               F:\MCP\projects\CAN\canBase\Source\Tick.c
39
                                               #define TIMER_PRESCALE  (1)                                                  F:\MCP\projects\CAN\canBase\Source\Tick.c
40
                                           #elif ( TICK_PRESCALE_VALUE == 8 )                                               F:\MCP\projects\CAN\canBase\Source\Tick.c
41
                                               #define TIMER_PRESCALE  (2)                                                  F:\MCP\projects\CAN\canBase\Source\Tick.c
42
                                           #elif ( TICK_PRESCALE_VALUE == 16 )                                              F:\MCP\projects\CAN\canBase\Source\Tick.c
43
                                               #define TIMER_PRESCALE  (3)                                                  F:\MCP\projects\CAN\canBase\Source\Tick.c
44
                                           #elif ( TICK_PRESCALE_VALUE == 32 )                                              F:\MCP\projects\CAN\canBase\Source\Tick.c
45
                                               #define TIMER_PRESCALE  (4)                                                  F:\MCP\projects\CAN\canBase\Source\Tick.c
46
                                           #elif ( TICK_PRESCALE_VALUE == 64 )                                              F:\MCP\projects\CAN\canBase\Source\Tick.c
47
                                               #define TIMER_PRESCALE  (5)                                                  F:\MCP\projects\CAN\canBase\Source\Tick.c
48
                                           #elif ( TICK_PRESCALE_VALUE == 128 )                                             F:\MCP\projects\CAN\canBase\Source\Tick.c
49
                                               #define TIMER_PRESCALE  (6)                                                  F:\MCP\projects\CAN\canBase\Source\Tick.c
50
                                           #elif ( TICK_PRESCALE_VALUE == 256 )                                             F:\MCP\projects\CAN\canBase\Source\Tick.c
51
                                               #define TIMER_PRESCALE  (7)                                                  F:\MCP\projects\CAN\canBase\Source\Tick.c
52
                                           #else                                                                            F:\MCP\projects\CAN\canBase\Source\Tick.c
53
                                               #error Invalid TICK_PRESCALE_VALUE specified.                                F:\MCP\projects\CAN\canBase\Source\Tick.c
54
                                           #endif                                                                           F:\MCP\projects\CAN\canBase\Source\Tick.c
55
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Tick.c
56
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Tick.c
57
                                           TICK TickCount = 0;	// 10ms/unit                                                 F:\MCP\projects\CAN\canBase\Source\Tick.c
58
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Tick.c
59
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Tick.c
60
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Tick.c
61
                                           /*                                                                               F:\MCP\projects\CAN\canBase\Source\Tick.c
62
                                           *	Function: TickInit                                                             F:\MCP\projects\CAN\canBase\Source\Tick.c
63
                                           *                                                                                F:\MCP\projects\CAN\canBase\Source\Tick.c
64
                                           *	Input:	none                                                                    F:\MCP\projects\CAN\canBase\Source\Tick.c
65
                                           *	Output: Tick manager is initialized.                                           F:\MCP\projects\CAN\canBase\Source\Tick.c
66
                                           *	Pre-conditions: TickInit                                                       F:\MCP\projects\CAN\canBase\Source\Tick.c
67
                                           *	Affects: none                                                                  F:\MCP\projects\CAN\canBase\Source\Tick.c
68
                                           *	Depends: none                                                                  F:\MCP\projects\CAN\canBase\Source\Tick.c
69
                                           */                                                                               F:\MCP\projects\CAN\canBase\Source\Tick.c
70
                                           #define PERIOD (INSTR_FREQ/256/1000)*TICK_PERIOD_MS                              F:\MCP\projects\CAN\canBase\Source\Tick.c
71
                                           void tickInit(void)                                                              F:\MCP\projects\CAN\canBase\Source\Tick.c
72
                                           {                                                                                F:\MCP\projects\CAN\canBase\Source\Tick.c
73
                                               // Start the timer.                                                          F:\MCP\projects\CAN\canBase\Source\Tick.c
109 johboh 74
0019e2   0e79     MOVLW     0x79               TMR0L = TICK_COUNTER_LOW;                                                    F:\MCP\projects\CAN\canBase\Source\Tick.c
75
0019e4   6ed6     MOVWF     0xd6,0x0                                                                                        
76
0019e6   0efe     MOVLW     0xfe               TMR0H = TICK_COUNTER_HIGH;                                                   F:\MCP\projects\CAN\canBase\Source\Tick.c
77
0019e8   6ed7     MOVWF     0xd7,0x0                                                                                        
85 johboh 78
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Tick.c
79
                                               // 16-BIT, internal timer, PSA set to 1:256                                  F:\MCP\projects\CAN\canBase\Source\Tick.c
109 johboh 80
0019ea   0e07     MOVLW     0x7                T0CON = 0b00000000 | TIMER_PRESCALE;                                         F:\MCP\projects\CAN\canBase\Source\Tick.c
81
0019ec   6ed5     MOVWF     0xd5,0x0                                                                                        
85 johboh 82
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Tick.c
83
                                               // Start the timer.                                                          F:\MCP\projects\CAN\canBase\Source\Tick.c
109 johboh 84
0019ee   8ed5     BSF       0xd5,0x7,0x0       T0CONbits.TMR0ON = 1;                                                        F:\MCP\projects\CAN\canBase\Source\Tick.c
85 johboh 85
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Tick.c
109 johboh 86
0019f0   84f2     BSF       0xf2,0x2,0x0       INTCONbits.TMR0IF = 1;                                                       F:\MCP\projects\CAN\canBase\Source\Tick.c
87
0019f2   8af2     BSF       0xf2,0x5,0x0       INTCONbits.TMR0IE = 1;                                                       F:\MCP\projects\CAN\canBase\Source\Tick.c
88
0019f4   0012     RETURN    0x0            }                                                                                F:\MCP\projects\CAN\canBase\Source\Tick.c
85 johboh 89
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Tick.c
90
                                           /*                                                                               F:\MCP\projects\CAN\canBase\Source\Tick.c
91
                                           *	Function: TickGet                                                              F:\MCP\projects\CAN\canBase\Source\Tick.c
92
                                           *                                                                                F:\MCP\projects\CAN\canBase\Source\Tick.c
93
                                           *	Input:	none                                                                    F:\MCP\projects\CAN\canBase\Source\Tick.c
94
                                           *	Output: Current tick value is given, 1 tick represents approximately 10ms      F:\MCP\projects\CAN\canBase\Source\Tick.c
95
                                           *	Pre-conditions: TickInit                                                       F:\MCP\projects\CAN\canBase\Source\Tick.c
96
                                           *	Affects: none                                                                  F:\MCP\projects\CAN\canBase\Source\Tick.c
97
                                           *	Depends: none                                                                  F:\MCP\projects\CAN\canBase\Source\Tick.c
98
                                           */                                                                               F:\MCP\projects\CAN\canBase\Source\Tick.c
99
                                           TICK tickGet(void)                                                               F:\MCP\projects\CAN\canBase\Source\Tick.c
100
                                           {                                                                                F:\MCP\projects\CAN\canBase\Source\Tick.c
109 johboh 101
0019f6   c079     MOVFF     0x79,0x12          return TickCount;                                                            F:\MCP\projects\CAN\canBase\Source\Tick.c
102
0019f8   f012                                                                                                               
103
0019fa   c07a     MOVFF     0x7a,0x13                                                                                       
104
0019fc   f013                                                                                                               
105
0019fe   c07b     MOVFF     0x7b,0x14                                                                                       
106
001a00   f014                                                                                                               
107
001a02   c07c     MOVFF     0x7c,0x15                                                                                       
108
001a04   f015                                                                                                               
109
001a06   d000     BRA       0x1a08                                                                                          
110
001a08   0012     RETURN    0x0            }                                                                                F:\MCP\projects\CAN\canBase\Source\Tick.c
85 johboh 111
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Tick.c
112
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Tick.c
113
                                           /*                                                                               F:\MCP\projects\CAN\canBase\Source\Tick.c
114
                                           *	Function: tickUpdate                                                           F:\MCP\projects\CAN\canBase\Source\Tick.c
115
                                           *                                                                                F:\MCP\projects\CAN\canBase\Source\Tick.c
116
                                           *	Input:	none                                                                    F:\MCP\projects\CAN\canBase\Source\Tick.c
117
                                           *	Output: none                                                                   F:\MCP\projects\CAN\canBase\Source\Tick.c
118
                                           *	Pre-conditions: TickInit                                                       F:\MCP\projects\CAN\canBase\Source\Tick.c
119
                                           *	Affects: none                                                                  F:\MCP\projects\CAN\canBase\Source\Tick.c
120
                                           *	Depends: none                                                                  F:\MCP\projects\CAN\canBase\Source\Tick.c
121
                                           */                                                                               F:\MCP\projects\CAN\canBase\Source\Tick.c
122
                                           void tickUpdate(void)                                                            F:\MCP\projects\CAN\canBase\Source\Tick.c
123
                                           {                                                                                F:\MCP\projects\CAN\canBase\Source\Tick.c
109 johboh 124
001a0a   a4f2     BTFSS     0xf2,0x2,0x0       if(INTCONbits.TMR0IF)                                                        F:\MCP\projects\CAN\canBase\Source\Tick.c
125
001a0c   d00b     BRA       0x1a24                                                                                          
85 johboh 126
                                               {                                                                            F:\MCP\projects\CAN\canBase\Source\Tick.c
109 johboh 127
001a0e   0efe     MOVLW     0xfe                   TMR0H = TICK_COUNTER_HIGH;                                               F:\MCP\projects\CAN\canBase\Source\Tick.c
128
001a10   6ed7     MOVWF     0xd7,0x0                                                                                        
129
001a12   0e79     MOVLW     0x79                   TMR0L = TICK_COUNTER_LOW;                                                F:\MCP\projects\CAN\canBase\Source\Tick.c
130
001a14   6ed6     MOVWF     0xd6,0x0                                                                                        
85 johboh 131
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Tick.c
109 johboh 132
001a16   0100     MOVLB     0x0                    TickCount++;                                                             F:\MCP\projects\CAN\canBase\Source\Tick.c
133
001a18   2b79     INCF      0x79,0x1,0x1                                                                                    
134
001a1a   0e00     MOVLW     0x0                                                                                             
135
001a1c   237a     ADDWFC    0x7a,0x1,0x1                                                                                    
136
001a1e   237b     ADDWFC    0x7b,0x1,0x1                                                                                    
137
001a20   237c     ADDWFC    0x7c,0x1,0x1                                                                                    
85 johboh 138
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Tick.c
109 johboh 139
001a22   94f2     BCF       0xf2,0x2,0x0           INTCONbits.TMR0IF = 0;                                                   F:\MCP\projects\CAN\canBase\Source\Tick.c
85 johboh 140
                                               }                                                                            F:\MCP\projects\CAN\canBase\Source\Tick.c
109 johboh 141
001a24   0012     RETURN    0x0            }                                                                                F:\MCP\projects\CAN\canBase\Source\Tick.c
85 johboh 142
                                           /*********************************************************************           F:\MCP\projects\CAN\canBase\Source\CAN.c
143
                                            *                                                                               F:\MCP\projects\CAN\canBase\Source\CAN.c
86 johboh 144
                                            *                  CAN module                                                   F:\MCP\projects\CAN\canBase\Source\CAN.c
85 johboh 145
                                            *                                                                               F:\MCP\projects\CAN\canBase\Source\CAN.c
146
                                            *********************************************************************           F:\MCP\projects\CAN\canBase\Source\CAN.c
87 johboh 147
                                            * FileName:        $HeadURL: http://svn.arune.se/svn/HomeAutomation/trunk/EmbeddedSoftware/PIC/canBase/Source/CAN.c $ F:\MCP\projects\CAN\canBase\Source\CAN.c
100 johboh 148
                                            * Last changed:	$LastChangedDate: 2006-11-14 21:11:28 +0100 (ti, 14 nov 2006) $ F:\MCP\projects\CAN\canBase\Source\CAN.c
87 johboh 149
                                            * By:				$LastChangedBy: johboh $                                               F:\MCP\projects\CAN\canBase\Source\CAN.c
100 johboh 150
                                            * Revision:		$Revision: 95 $                                                    F:\MCP\projects\CAN\canBase\Source\CAN.c
85 johboh 151
                                            ********************************************************************/           F:\MCP\projects\CAN\canBase\Source\CAN.c
152
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
153
                                           #include <CANdefs.h>                                                             F:\MCP\projects\CAN\canBase\Source\CAN.c
154
                                           #include <stackTasks.h>                                                          F:\MCP\projects\CAN\canBase\Source\CAN.c
155
                                           #include <CAN.h>                                                                 F:\MCP\projects\CAN\canBase\Source\CAN.c
156
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
157
                                           static void canGetPacket(void);                                                  F:\MCP\projects\CAN\canBase\Source\CAN.c
158
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
159
                                           #ifdef USE_CAN                                                                   F:\MCP\projects\CAN\canBase\Source\CAN.c
160
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
161
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
162
                                           /*                                                                               F:\MCP\projects\CAN\canBase\Source\CAN.c
163
                                           *	Function: canInit                                                              F:\MCP\projects\CAN\canBase\Source\CAN.c
164
                                           *                                                                                F:\MCP\projects\CAN\canBase\Source\CAN.c
165
                                           *	Input:	none                                                                    F:\MCP\projects\CAN\canBase\Source\CAN.c
166
                                           *	Output: none                                                                   F:\MCP\projects\CAN\canBase\Source\CAN.c
167
                                           *	Pre-conditions: none                                                           F:\MCP\projects\CAN\canBase\Source\CAN.c
168
                                           *	Affects: Changes can registers.                                                F:\MCP\projects\CAN\canBase\Source\CAN.c
169
                                           *	Depends: none.                                                                 F:\MCP\projects\CAN\canBase\Source\CAN.c
170
                                           */                                                                               F:\MCP\projects\CAN\canBase\Source\CAN.c
171
                                           void canInit()                                                                   F:\MCP\projects\CAN\canBase\Source\CAN.c
172
                                           {                                                                                F:\MCP\projects\CAN\canBase\Source\CAN.c
109 johboh 173
0014cc   0e80     MOVLW     0x80           	CANCON = 0x80; //request config mode                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
174
0014ce   6e6f     MOVWF     0x6f,0x0                                                                                        
175
0014d0   0ee0     MOVLW     0xe0           	while ((CANSTAT & 0xE0) != 0x80 ); //wait for config mode request               F:\MCP\projects\CAN\canBase\Source\CAN.c
176
0014d2   146e     ANDWF     0x6e,0x0,0x0                                                                                    
177
0014d4   0880     SUBLW     0x80                                                                                            
178
0014d6   e001     BZ        0x14da                                                                                          
179
0014d8   d7fb     BRA       0x14d0                                                                                          
85 johboh 180
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
181
                                           	// BAUD AND TQS                                                                 F:\MCP\projects\CAN\canBase\Source\CAN.c
182
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
109 johboh 183
0014da   6a70     CLRF      0x70,0x0       	BRGCON1=0;                                                                      F:\MCP\projects\CAN\canBase\Source\CAN.c
85 johboh 184
                                           	                                                                                F:\MCP\projects\CAN\canBase\Source\CAN.c
185
                                           	// Sync_Seq = 2 x TQ = 1                                                        F:\MCP\projects\CAN\canBase\Source\CAN.c
109 johboh 186
0014dc   9e70     BCF       0x70,0x7,0x0   	BRGCON1bits.SJW1=0;                                                             F:\MCP\projects\CAN\canBase\Source\CAN.c
187
0014de   8c70     BSF       0x70,0x6,0x0   	BRGCON1bits.SJW0=1;                                                             F:\MCP\projects\CAN\canBase\Source\CAN.c
85 johboh 188
                                           	                                                                                F:\MCP\projects\CAN\canBase\Source\CAN.c
189
                                           	// Setting BRP.                                                                 F:\MCP\projects\CAN\canBase\Source\CAN.c
109 johboh 190
0014e0   0e04     MOVLW     0x4            	BRGCON1=BRGCON1|CAN_BRP;                                                        F:\MCP\projects\CAN\canBase\Source\CAN.c
191
0014e2   1070     IORWF     0x70,0x0,0x0                                                                                    
192
0014e4   6e70     MOVWF     0x70,0x0                                                                                        
85 johboh 193
                                           	                                                                                F:\MCP\projects\CAN\canBase\Source\CAN.c
194
                                           	// Maximum PHEG1                                                                F:\MCP\projects\CAN\canBase\Source\CAN.c
109 johboh 195
0014e6   8e71     BSF       0x71,0x7,0x0   	BRGCON2bits.SEG2PHTS = 1;                                                       F:\MCP\projects\CAN\canBase\Source\CAN.c
85 johboh 196
                                           	                                                                                F:\MCP\projects\CAN\canBase\Source\CAN.c
197
                                           	// Phase_Seg1 = 2 x TQ = 1                                                      F:\MCP\projects\CAN\canBase\Source\CAN.c
109 johboh 198
0014e8   9a71     BCF       0x71,0x5,0x0   	BRGCON2bits.SEG1PH2 = 0;                                                        F:\MCP\projects\CAN\canBase\Source\CAN.c
199
0014ea   9871     BCF       0x71,0x4,0x0   	BRGCON2bits.SEG1PH1 = 0;                                                        F:\MCP\projects\CAN\canBase\Source\CAN.c
200
0014ec   8671     BSF       0x71,0x3,0x0   	BRGCON2bits.SEG1PH0 = 1;                                                        F:\MCP\projects\CAN\canBase\Source\CAN.c
85 johboh 201
                                           	                                                                                F:\MCP\projects\CAN\canBase\Source\CAN.c
202
                                           	// Prop_Seq = 2 x TQ = 1                                                        F:\MCP\projects\CAN\canBase\Source\CAN.c
109 johboh 203
0014ee   9471     BCF       0x71,0x2,0x0   	BRGCON2bits.PRSEG2 = 0;                                                         F:\MCP\projects\CAN\canBase\Source\CAN.c
204
0014f0   9271     BCF       0x71,0x1,0x0   	BRGCON2bits.PRSEG1 = 0;                                                         F:\MCP\projects\CAN\canBase\Source\CAN.c
205
0014f2   8071     BSF       0x71,0x0,0x0   	BRGCON2bits.PRSEG0 = 1;                                                         F:\MCP\projects\CAN\canBase\Source\CAN.c
85 johboh 206
                                           	                                                                                F:\MCP\projects\CAN\canBase\Source\CAN.c
207
                                           	//  Enableing bus wake-up                                                       F:\MCP\projects\CAN\canBase\Source\CAN.c
109 johboh 208
0014f4   9e72     BCF       0x72,0x7,0x0   	BRGCON3bits.WAKDIS = 0;                                                         F:\MCP\projects\CAN\canBase\Source\CAN.c
85 johboh 209
                                           	                                                                                F:\MCP\projects\CAN\canBase\Source\CAN.c
210
                                           	// Dont use filter when wakeup                                                  F:\MCP\projects\CAN\canBase\Source\CAN.c
109 johboh 211
0014f6   9c72     BCF       0x72,0x6,0x0   	BRGCON3bits.WAKFIL = 0;                                                         F:\MCP\projects\CAN\canBase\Source\CAN.c
85 johboh 212
                                           	                                                                                F:\MCP\projects\CAN\canBase\Source\CAN.c
213
                                           	// Phase_Seg2 = 2 x TQ = 1                                                      F:\MCP\projects\CAN\canBase\Source\CAN.c
109 johboh 214
0014f8   9472     BCF       0x72,0x2,0x0   	BRGCON3bits.SEG2PH2 = 0;                                                        F:\MCP\projects\CAN\canBase\Source\CAN.c
215
0014fa   9272     BCF       0x72,0x1,0x0   	BRGCON3bits.SEG2PH1 = 0;                                                        F:\MCP\projects\CAN\canBase\Source\CAN.c
216
0014fc   8072     BSF       0x72,0x0,0x0   	BRGCON3bits.SEG2PH0 = 1;                                                        F:\MCP\projects\CAN\canBase\Source\CAN.c
85 johboh 217
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
109 johboh 218
0014fe   6a77     CLRF      0x77,0x0       	ECANCON=0;                                                                      F:\MCP\projects\CAN\canBase\Source\CAN.c
219
001500   8e77     BSF       0x77,0x7,0x0   	ECANCONbits.MDSEL1 = 1; // 0  For mode 1                                        F:\MCP\projects\CAN\canBase\Source\CAN.c
220
001502   9c77     BCF       0x77,0x6,0x0   	ECANCONbits.MDSEL0 = 0; // 1  For mode 1                                        F:\MCP\projects\CAN\canBase\Source\CAN.c
85 johboh 221
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
222
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
223
                                           	// FILTERS AND MASKS                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
109 johboh 224
001504   8c60     BSF       0x60,0x6,0x0   	RXB0CONbits.RXM1=1;                                                             F:\MCP\projects\CAN\canBase\Source\CAN.c
225
001506   9a60     BCF       0x60,0x5,0x0   	RXB0CONbits.RXM0=0;                                                             F:\MCP\projects\CAN\canBase\Source\CAN.c
85 johboh 226
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
227
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
228
                                           	// INTERRUPTS                                                                   F:\MCP\projects\CAN\canBase\Source\CAN.c
229
                                           	                                                                                F:\MCP\projects\CAN\canBase\Source\CAN.c
230
                                           	// Diable transmit interrupt                                                    F:\MCP\projects\CAN\canBase\Source\CAN.c
109 johboh 231
001508   010d     MOVLB     0xd            	TXBIE = 0;                                                                      F:\MCP\projects\CAN\canBase\Source\CAN.c
232
00150a   6bfc     CLRF      0xfc,0x1                                                                                        
85 johboh 233
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
234
                                           	//rx any interrupt                                                              F:\MCP\projects\CAN\canBase\Source\CAN.c
109 johboh 235
00150c   6aa4     CLRF      0xa4,0x0       	PIR3 = 0;                                                                       F:\MCP\projects\CAN\canBase\Source\CAN.c
236
00150e   0e03     MOVLW     0x3            	PIE3 = 0b00000011;                                                              F:\MCP\projects\CAN\canBase\Source\CAN.c
237
001510   6ea3     MOVWF     0xa3,0x0                                                                                        
85 johboh 238
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
239
                                           	// High interrupt                                                               F:\MCP\projects\CAN\canBase\Source\CAN.c
109 johboh 240
001512   6ea5     MOVWF     0xa5,0x0       	IPR3 =0b00000011;                                                               F:\MCP\projects\CAN\canBase\Source\CAN.c
85 johboh 241
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
242
                                           	// Programmable buffers interrupt                                               F:\MCP\projects\CAN\canBase\Source\CAN.c
109 johboh 243
001514   69fa     SETF      0xfa,0x1       	BIE0  = 0xFF;	                                                                  F:\MCP\projects\CAN\canBase\Source\CAN.c
85 johboh 244
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
245
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
246
                                           	//loopback mode or not                                                          F:\MCP\projects\CAN\canBase\Source\CAN.c
247
                                           	#ifdef CAN_LOOPBACK_MODE                                                        F:\MCP\projects\CAN\canBase\Source\CAN.c
248
                                           		CANCON = 0x40;//request loopback mode                                          F:\MCP\projects\CAN\canBase\Source\CAN.c
249
                                           		while ((CANSTAT & 0xE0) != 0x40 );//wait for loopback mode                     F:\MCP\projects\CAN\canBase\Source\CAN.c
250
                                           	#else                                                                           F:\MCP\projects\CAN\canBase\Source\CAN.c
109 johboh 251
001516   6a6f     CLRF      0x6f,0x0       		CANCON = 0x00;//request normal mode                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
252
001518   0ee0     MOVLW     0xe0           		while ((CANSTAT & 0xE0) != 0x00 );//wait for normal mode                       F:\MCP\projects\CAN\canBase\Source\CAN.c
253
00151a   146e     ANDWF     0x6e,0x0,0x0                                                                                    
254
00151c   e001     BZ        0x1520                                                                                          
255
00151e   d7fc     BRA       0x1518                                                                                          
85 johboh 256
                                           	#endif                                                                          F:\MCP\projects\CAN\canBase\Source\CAN.c
257
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
109 johboh 258
001520   0012     RETURN    0x0            }                                                                                F:\MCP\projects\CAN\canBase\Source\CAN.c
85 johboh 259
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
260
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
261
                                           /*                                                                               F:\MCP\projects\CAN\canBase\Source\CAN.c
262
                                           *	Function: canISR                                                               F:\MCP\projects\CAN\canBase\Source\CAN.c
263
                                           *                                                                                F:\MCP\projects\CAN\canBase\Source\CAN.c
264
                                           *	Input:	none                                                                    F:\MCP\projects\CAN\canBase\Source\CAN.c
265
                                           *	Output: none                                                                   F:\MCP\projects\CAN\canBase\Source\CAN.c
266
                                           *	Pre-conditions: a call to canInit()                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
267
                                           *	Affects: interrupt registers and receive data buffers                          F:\MCP\projects\CAN\canBase\Source\CAN.c
268
                                           *	Depends: ..                                                                    F:\MCP\projects\CAN\canBase\Source\CAN.c
269
                                           */                                                                               F:\MCP\projects\CAN\canBase\Source\CAN.c
270
                                           void canISR()                                                                    F:\MCP\projects\CAN\canBase\Source\CAN.c
271
                                           {                                                                                F:\MCP\projects\CAN\canBase\Source\CAN.c
109 johboh 272
001522   50a4     MOVF      0xa4,0x0,0x0   	if (PIR3bits.RXBnIF || PIR3bits.RXB1IF || PIR3bits.RXB0IF)                      F:\MCP\projects\CAN\canBase\Source\CAN.c
273
001524   0b02     ANDLW     0x2                                                                                             
274
001526   e106     BNZ       0x1534                                                                                          
275
001528   50a4     MOVF      0xa4,0x0,0x0                                                                                    
276
00152a   0b02     ANDLW     0x2                                                                                             
277
00152c   e103     BNZ       0x1534                                                                                          
278
00152e   50a4     MOVF      0xa4,0x0,0x0                                                                                    
279
001530   0b01     ANDLW     0x1                                                                                             
280
001532   e016     BZ        0x1560                                                                                          
85 johboh 281
                                           	{                                                                               F:\MCP\projects\CAN\canBase\Source\CAN.c
109 johboh 282
001534   0e0f     MOVLW     0xf            		ECANCON=(ECANCON&0b00000)|(0b10000|(CANCON&0x0F));                             F:\MCP\projects\CAN\canBase\Source\CAN.c
283
001536   146f     ANDWF     0x6f,0x0,0x0                                                                                    
284
001538   0910     IORLW     0x10                                                                                            
285
00153a   6e00     MOVWF     0x0,0x0                                                                                         
286
00153c   0e00     MOVLW     0x0                                                                                             
287
00153e   1477     ANDWF     0x77,0x0,0x0                                                                                    
288
001540   1000     IORWF     0x0,0x0,0x0                                                                                     
289
001542   6e77     MOVWF     0x77,0x0                                                                                        
290
001544   be60     BTFSC     0x60,0x7,0x0   		if (RXB0CONbits.RXFUL) canGetPacket();                                         F:\MCP\projects\CAN\canBase\Source\CAN.c
291
001546   d80d     RCALL     0x1562                                                                                          
85 johboh 292
                                           	                                                                                F:\MCP\projects\CAN\canBase\Source\CAN.c
109 johboh 293
001548   a2a4     BTFSS     0xa4,0x1,0x0   		if (PIR3bits.RXBnIF) {PIR3bits.RXBnIF = 0; return;}                            F:\MCP\projects\CAN\canBase\Source\CAN.c
294
00154a   d002     BRA       0x1550                                                                                          
295
00154c   92a4     BCF       0xa4,0x1,0x0                                                                                    
296
00154e   d008     BRA       0x1560                                                                                          
297
001550   a2a4     BTFSS     0xa4,0x1,0x0   		if (PIR3bits.RXB1IF) {PIR3bits.RXB1IF = 0; return;}                            F:\MCP\projects\CAN\canBase\Source\CAN.c
298
001552   d002     BRA       0x1558                                                                                          
299
001554   92a4     BCF       0xa4,0x1,0x0                                                                                    
300
001556   d004     BRA       0x1560                                                                                          
301
001558   a0a4     BTFSS     0xa4,0x0,0x0   		if (PIR3bits.RXB0IF) {PIR3bits.RXB0IF = 0; return;}                            F:\MCP\projects\CAN\canBase\Source\CAN.c
302
00155a   d002     BRA       0x1560                                                                                          
303
00155c   90a4     BCF       0xa4,0x0,0x0                                                                                    
304
00155e   d000     BRA       0x1560                                                                                          
85 johboh 305
                                           	}                                                                               F:\MCP\projects\CAN\canBase\Source\CAN.c
109 johboh 306
001560   0012     RETURN    0x0            }                                                                                F:\MCP\projects\CAN\canBase\Source\CAN.c
85 johboh 307
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
308
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
309
                                           /*                                                                               F:\MCP\projects\CAN\canBase\Source\CAN.c
310
                                           *	Function: canGetPacket                                                         F:\MCP\projects\CAN\canBase\Source\CAN.c
311
                                           *                                                                                F:\MCP\projects\CAN\canBase\Source\CAN.c
312
                                           *	Input:	none                                                                    F:\MCP\projects\CAN\canBase\Source\CAN.c
313
                                           *	Output: none                                                                   F:\MCP\projects\CAN\canBase\Source\CAN.c
314
                                           *	Pre-conditions: a call to canISR and an packet is available and banked to RXB0 F:\MCP\projects\CAN\canBase\Source\CAN.c
315
                                           *	Affects: Calls canParse() function in main for parsing received packet.        F:\MCP\projects\CAN\canBase\Source\CAN.c
316
                                           *	Depends: none.                                                                 F:\MCP\projects\CAN\canBase\Source\CAN.c
317
                                           */                                                                               F:\MCP\projects\CAN\canBase\Source\CAN.c
109 johboh 318
001562   cfd9     MOVFF     0xfd9,0xfe6    void canGetPacket()                                                              F:\MCP\projects\CAN\canBase\Source\CAN.c
319
001564   ffe6                                                                                                               
320
001566   cfe1     MOVFF     0xfe1,0xfd9                                                                                     
321
001568   ffd9                                                                                                               
322
00156a   0e0f     MOVLW     0xf                                                                                             
323
00156c   26e1     ADDWF     0xe1,0x1,0x0                                                                                    
85 johboh 324
                                           {                                                                                F:\MCP\projects\CAN\canBase\Source\CAN.c
325
                                           		CAN_MESSAGE cm;                                                                F:\MCP\projects\CAN\canBase\Source\CAN.c
326
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
86 johboh 327
                                           		//RXB0SIDH 28 27 26 25 24 23 22 21                                             F:\MCP\projects\CAN\canBase\Source\CAN.c
328
                                                   //RXB0SIDL 20 19 18 xx xx xx 17 16                                       F:\MCP\projects\CAN\canBase\Source\CAN.c
329
                                                   //RXB0EIDH 15 14 13 12 11 10 09 08                                       F:\MCP\projects\CAN\canBase\Source\CAN.c
330
                                                   //RXB0EIDL 07 06 05 04 03 02 01 00                                       F:\MCP\projects\CAN\canBase\Source\CAN.c
85 johboh 331
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
86 johboh 332
                                           		//funct xx xx xx xx 28 27 26 25                                                F:\MCP\projects\CAN\canBase\Source\CAN.c
333
                                           		//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
334
                                           		//nid   xx xx 14 13 12 11 10 09                                                F:\MCP\projects\CAN\canBase\Source\CAN.c
335
                                           		//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
85 johboh 336
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
337
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
109 johboh 338
00156e   0ef0     MOVLW     0xf0                  	cm.funct=((RXB0SIDH & 0xF0)>>4);                                         F:\MCP\projects\CAN\canBase\Source\CAN.c
339
001570   1461     ANDWF     0x61,0x0,0x0                                                                                    
340
001572   38e8     SWAPF     0xe8,0x0,0x0                                                                                    
341
001574   0b0f     ANDLW     0xf                                                                                             
342
001576   6edf     MOVWF     0xdf,0x0                                                                                        
343
001578   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
344
00157a   1461     ANDWF     0x61,0x0,0x0                                                                                    
345
00157c   6e06     MOVWF     0x6,0x0                                                                                         
346
00157e   6a07     CLRF      0x7,0x0                                                                                         
347
001580   0e06     MOVLW     0x6                                                                                             
348
001582   90d8     BCF       0xd8,0x0,0x0                                                                                    
349
001584   3606     RLCF      0x6,0x1,0x0                                                                                     
350
001586   3607     RLCF      0x7,0x1,0x0                                                                                     
351
001588   04e8     DECF      0xe8,0x0,0x0                                                                                    
352
00158a   e1fb     BNZ       0x1582                                                                                          
353
00158c   0ee0     MOVLW     0xe0                                                                                            
354
00158e   1462     ANDWF     0x62,0x0,0x0                                                                                    
355
001590   6e08     MOVWF     0x8,0x0                                                                                         
356
001592   6a09     CLRF      0x9,0x0                                                                                         
357
001594   90d8     BCF       0xd8,0x0,0x0                                                                                    
358
001596   3209     RRCF      0x9,0x1,0x0                                                                                     
359
001598   3208     RRCF      0x8,0x1,0x0                                                                                     
360
00159a   90d8     BCF       0xd8,0x0,0x0                                                                                    
361
00159c   3209     RRCF      0x9,0x1,0x0                                                                                     
362
00159e   3208     RRCF      0x8,0x1,0x0                                                                                     
363
0015a0   5006     MOVF      0x6,0x0,0x0                                                                                     
364
0015a2   2408     ADDWF     0x8,0x0,0x0                                                                                     
365
0015a4   6e04     MOVWF     0x4,0x0                                                                                         
366
0015a6   5007     MOVF      0x7,0x0,0x0                                                                                     
367
0015a8   2009     ADDWFC    0x9,0x0,0x0                                                                                     
368
0015aa   6e05     MOVWF     0x5,0x0                                                                                         
369
0015ac   0e03     MOVLW     0x3                                                                                             
370
0015ae   1462     ANDWF     0x62,0x0,0x0                                                                                    
371
0015b0   6e0a     MOVWF     0xa,0x0                                                                                         
372
0015b2   6a0b     CLRF      0xb,0x0                                                                                         
373
0015b4   90d8     BCF       0xd8,0x0,0x0                                                                                    
374
0015b6   360a     RLCF      0xa,0x1,0x0                                                                                     
375
0015b8   360b     RLCF      0xb,0x1,0x0                                                                                     
376
0015ba   5004     MOVF      0x4,0x0,0x0                                                                                     
377
0015bc   240a     ADDWF     0xa,0x0,0x0                                                                                     
378
0015be   6e02     MOVWF     0x2,0x0                                                                                         
379
0015c0   5005     MOVF      0x5,0x0,0x0                                                                                     
380
0015c2   200b     ADDWFC    0xb,0x0,0x0                                                                                     
381
0015c4   6e03     MOVWF     0x3,0x0                                                                                         
382
0015c6   0e80     MOVLW     0x80                                                                                            
383
0015c8   1463     ANDWF     0x63,0x0,0x0                                                                                    
384
0015ca   6e0c     MOVWF     0xc,0x0                                                                                         
385
0015cc   6a0d     CLRF      0xd,0x0                                                                                         
386
0015ce   0e07     MOVLW     0x7                                                                                             
387
0015d0   90d8     BCF       0xd8,0x0,0x0                                                                                    
388
0015d2   320d     RRCF      0xd,0x1,0x0                                                                                     
389
0015d4   320c     RRCF      0xc,0x1,0x0                                                                                     
390
0015d6   04e8     DECF      0xe8,0x0,0x0                                                                                    
391
0015d8   e1fb     BNZ       0x15d0                                                                                          
392
0015da   5002     MOVF      0x2,0x0,0x0                                                                                     
393
0015dc   240c     ADDWF     0xc,0x0,0x0                                                                                     
394
0015de   6e00     MOVWF     0x0,0x0                                                                                         
395
0015e0   5003     MOVF      0x3,0x0,0x0                                                                                     
396
0015e2   200d     ADDWFC    0xd,0x0,0x0                                                                                     
397
0015e4   6e01     MOVWF     0x1,0x0                                                                                         
398
0015e6   0e01     MOVLW     0x1                                                                                             
399
0015e8   c000     MOVFF     0x0,0xfdb                                                                                       
400
0015ea   ffdb                                                                                                               
401
0015ec   0e02     MOVLW     0x2                                                                                             
402
0015ee   c001     MOVFF     0x1,0xfdb                                                                                       
403
0015f0   ffdb                                                                                                               
404
0015f2   0e7e     MOVLW     0x7e                   cm.nid=((RXB0EIDH & 0x7E)>>1);                                           F:\MCP\projects\CAN\canBase\Source\CAN.c
405
0015f4   1463     ANDWF     0x63,0x0,0x0                                                                                    
406
0015f6   40e8     RRNCF     0xe8,0x0,0x0                                                                                    
407
0015f8   0b7f     ANDLW     0x7f                                                                                            
408
0015fa   6ee7     MOVWF     0xe7,0x0                                                                                        
409
0015fc   0e03     MOVLW     0x3                                                                                             
410
0015fe   cfe7     MOVFF     0xfe7,0xfdb                                                                                     
411
001600   ffdb                                                                                                               
412
001602   0e01     MOVLW     0x1                    cm.sid=(((WORD)(RXB0EIDH & 0x01))<<8)+RXB0EIDL;                          F:\MCP\projects\CAN\canBase\Source\CAN.c
413
001604   1463     ANDWF     0x63,0x0,0x0                                                                                    
414
001606   6e02     MOVWF     0x2,0x0                                                                                         
415
001608   c002     MOVFF     0x2,0x3                                                                                         
416
00160a   f003                                                                                                               
417
00160c   6a02     CLRF      0x2,0x0                                                                                         
418
00160e   5064     MOVF      0x64,0x0,0x0                                                                                    
419
001610   0100     MOVLB     0x0                                                                                             
420
001612   2402     ADDWF     0x2,0x0,0x0                                                                                     
421
001614   6e00     MOVWF     0x0,0x0                                                                                         
422
001616   0e00     MOVLW     0x0                                                                                             
423
001618   2003     ADDWFC    0x3,0x0,0x0                                                                                     
424
00161a   6e01     MOVWF     0x1,0x0                                                                                         
425
00161c   0e04     MOVLW     0x4                                                                                             
426
00161e   c000     MOVFF     0x0,0xfdb                                                                                       
427
001620   ffdb                                                                                                               
428
001622   0e05     MOVLW     0x5                                                                                             
429
001624   c001     MOVFF     0x1,0xfdb                                                                                       
430
001626   ffdb                                                                                                               
85 johboh 431
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
432
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
86 johboh 433
                                           		// Data length                                                                 F:\MCP\projects\CAN\canBase\Source\CAN.c
109 johboh 434
001628   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
435
00162a   0b01     ANDLW     0x1                                                                                             
436
00162c   6e02     MOVWF     0x2,0x0                                                                                         
437
00162e   5065     MOVF      0x65,0x0,0x0                                                                                    
438
001630   0b02     ANDLW     0x2                                                                                             
439
001632   e001     BZ        0x1636                                                                                          
440
001634   0e01     MOVLW     0x1                                                                                             
441
001636   24e8     ADDWF     0xe8,0x0,0x0                                                                                    
442
001638   6e01     MOVWF     0x1,0x0                                                                                         
443
00163a   5065     MOVF      0x65,0x0,0x0                                                                                    
444
00163c   0b04     ANDLW     0x4                                                                                             
445
00163e   e001     BZ        0x1642                                                                                          
446
001640   0e01     MOVLW     0x1                                                                                             
447
001642   0d04     MULLW     0x4                                                                                             
448
001644   cff3     MOVFF     0xff3,0x0                                                                                       
449
001646   f000                                                                                                               
450
001648   5065     MOVF      0x65,0x0,0x0                                                                                    
451
00164a   0b08     ANDLW     0x8                                                                                             
452
00164c   e001     BZ        0x1650                                                                                          
453
00164e   0e01     MOVLW     0x1                                                                                             
454
001650   0d08     MULLW     0x8                                                                                             
455
001652   50f3     MOVF      0xf3,0x0,0x0                                                                                    
456
001654   2400     ADDWF     0x0,0x0,0x0                                                                                     
457
001656   2401     ADDWF     0x1,0x0,0x0                                                                                     
458
001658   2402     ADDWF     0x2,0x0,0x0                                                                                     
459
00165a   6ee7     MOVWF     0xe7,0x0                                                                                        
460
00165c   0e06     MOVLW     0x6                                                                                             
461
00165e   cfe7     MOVFF     0xfe7,0xfdb                                                                                     
462
001660   ffdb                                                                                                               
85 johboh 463
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
86 johboh 464
                                           		// Data one bye one, for speed                                                 F:\MCP\projects\CAN\canBase\Source\CAN.c
109 johboh 465
001662   0e07     MOVLW     0x7            		cm.data[0]=RXB0D0;	cm.data[1]=RXB0D1;                                          F:\MCP\projects\CAN\canBase\Source\CAN.c
466
001664   cf66     MOVFF     0xf66,0xfdb                                                                                     
467
001666   ffdb                                                                                                               
468
001668   0e08     MOVLW     0x8                                                                                             
469
00166a   cf67     MOVFF     0xf67,0xfdb                                                                                     
470
00166c   ffdb                                                                                                               
471
00166e   0e09     MOVLW     0x9            		cm.data[2]=RXB0D2; 	cm.data[3]=RXB0D3;                                         F:\MCP\projects\CAN\canBase\Source\CAN.c
472
001670   cf68     MOVFF     0xf68,0xfdb                                                                                     
473
001672   ffdb                                                                                                               
474
001674   0e0a     MOVLW     0xa                                                                                             
475
001676   cf69     MOVFF     0xf69,0xfdb                                                                                     
476
001678   ffdb                                                                                                               
477
00167a   0e0b     MOVLW     0xb            		cm.data[4]=RXB0D4; 	cm.data[5]=RXB0D5;                                         F:\MCP\projects\CAN\canBase\Source\CAN.c
478
00167c   cf6a     MOVFF     0xf6a,0xfdb                                                                                     
479
00167e   ffdb                                                                                                               
480
001680   0e0c     MOVLW     0xc                                                                                             
481
001682   cf6b     MOVFF     0xf6b,0xfdb                                                                                     
482
001684   ffdb                                                                                                               
483
001686   0e0d     MOVLW     0xd            		cm.data[6]=RXB0D6; 	cm.data[7]=RXB0D7;                                         F:\MCP\projects\CAN\canBase\Source\CAN.c
484
001688   cf6c     MOVFF     0xf6c,0xfdb                                                                                     
485
00168a   ffdb                                                                                                               
486
00168c   0e0e     MOVLW     0xe                                                                                             
487
00168e   cf6d     MOVFF     0xf6d,0xfdb                                                                                     
488
001690   ffdb                                                                                                               
85 johboh 489
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
490
                                           		// Clear ful status                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
109 johboh 491
001692   9e60     BCF       0x60,0x7,0x0   		RXB0CONbits.RXFUL=0;                                                           F:\MCP\projects\CAN\canBase\Source\CAN.c
85 johboh 492
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
493
                                           		//Call main parser                                                             F:\MCP\projects\CAN\canBase\Source\CAN.c
109 johboh 494
001694   cfd9     MOVFF     0xfd9,0xfe9    		canParse(cm);                                                                  F:\MCP\projects\CAN\canBase\Source\CAN.c
495
001696   ffe9                                                                                                               
496
001698   cfda     MOVFF     0xfda,0xfea                                                                                     
497
00169a   ffea                                                                                                               
498
00169c   cfee     MOVFF     0xfee,0xfe6                                                                                     
499
00169e   ffe6                                                                                                               
500
0016a0   cfee     MOVFF     0xfee,0xfe6                                                                                     
501
0016a2   ffe6                                                                                                               
502
0016a4   cfee     MOVFF     0xfee,0xfe6                                                                                     
503
0016a6   ffe6                                                                                                               
504
0016a8   cfee     MOVFF     0xfee,0xfe6                                                                                     
505
0016aa   ffe6                                                                                                               
506
0016ac   cfee     MOVFF     0xfee,0xfe6                                                                                     
507
0016ae   ffe6                                                                                                               
508
0016b0   cfee     MOVFF     0xfee,0xfe6                                                                                     
509
0016b2   ffe6                                                                                                               
510
0016b4   cfee     MOVFF     0xfee,0xfe6                                                                                     
511
0016b6   ffe6                                                                                                               
512
0016b8   cfee     MOVFF     0xfee,0xfe6                                                                                     
513
0016ba   ffe6                                                                                                               
514
0016bc   cfee     MOVFF     0xfee,0xfe6                                                                                     
515
0016be   ffe6                                                                                                               
516
0016c0   cfee     MOVFF     0xfee,0xfe6                                                                                     
517
0016c2   ffe6                                                                                                               
518
0016c4   cfee     MOVFF     0xfee,0xfe6                                                                                     
519
0016c6   ffe6                                                                                                               
520
0016c8   cfee     MOVFF     0xfee,0xfe6                                                                                     
521
0016ca   ffe6                                                                                                               
522
0016cc   cfee     MOVFF     0xfee,0xfe6                                                                                     
523
0016ce   ffe6                                                                                                               
524
0016d0   cfee     MOVFF     0xfee,0xfe6                                                                                     
525
0016d2   ffe6                                                                                                               
526
0016d4   cfee     MOVFF     0xfee,0xfe6                                                                                     
527
0016d6   ffe6                                                                                                               
528
0016d8   ec9f     CALL      0x133e,0x0                                                                                      
529
0016da   f009                                                                                                               
530
0016dc   6e00     MOVWF     0x0,0x0                                                                                         
531
0016de   0e0f     MOVLW     0xf                                                                                             
532
0016e0   5ee1     SUBWF     0xe1,0x1,0x0                                                                                    
533
0016e2   5000     MOVF      0x0,0x0,0x0                                                                                     
534
0016e4   0e0f     MOVLW     0xf            }                                                                                F:\MCP\projects\CAN\canBase\Source\CAN.c
535
0016e6   5ce1     SUBWF     0xe1,0x0,0x0                                                                                    
536
0016e8   e202     BC        0x16ee                                                                                          
537
0016ea   6ae1     CLRF      0xe1,0x0                                                                                        
538
0016ec   52e5     MOVF      0xe5,0x1,0x0                                                                                    
539
0016ee   6ee1     MOVWF     0xe1,0x0                                                                                        
540
0016f0   52e5     MOVF      0xe5,0x1,0x0                                                                                    
541
0016f2   cfe7     MOVFF     0xfe7,0xfd9                                                                                     
542
0016f4   ffd9                                                                                                               
543
0016f6   0012     RETURN    0x0                                                                                             
85 johboh 544
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
545
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
546
                                           /*                                                                               F:\MCP\projects\CAN\canBase\Source\CAN.c
547
                                           *	Function: canSendMessage                                                       F:\MCP\projects\CAN\canBase\Source\CAN.c
548
                                           *                                                                                F:\MCP\projects\CAN\canBase\Source\CAN.c
549
                                           *	Input:	CAN_MESSAGE to send                                                     F:\MCP\projects\CAN\canBase\Source\CAN.c
550
                                           *	Output: True if packet scheduled sucess, false otherwise.                      F:\MCP\projects\CAN\canBase\Source\CAN.c
551
                                           *	Pre-conditions: canInit                                                        F:\MCP\projects\CAN\canBase\Source\CAN.c
552
                                           *	Affects: ..                                                                    F:\MCP\projects\CAN\canBase\Source\CAN.c
553
                                           *	Depends: ..                                                                    F:\MCP\projects\CAN\canBase\Source\CAN.c
554
                                           */                                                                               F:\MCP\projects\CAN\canBase\Source\CAN.c
109 johboh 555
0016f8   cfd9     MOVFF     0xfd9,0xfe6    BOOL canSendMessage(CAN_MESSAGE cm,CAN_PRIORITY prio)                            F:\MCP\projects\CAN\canBase\Source\CAN.c
556
0016fa   ffe6                                                                                                               
557
0016fc   cfe1     MOVFF     0xfe1,0xfd9                                                                                     
558
0016fe   ffd9                                                                                                               
85 johboh 559
                                           {                                                                                F:\MCP\projects\CAN\canBase\Source\CAN.c
560
                                           	                                                                                F:\MCP\projects\CAN\canBase\Source\CAN.c
109 johboh 561
001700   010f     MOVLB     0xf            	if ( TXB0CONbits.TXREQ == 0 )  { ECANCON=(ECANCON&0b00000)|0b00011; }           F:\MCP\projects\CAN\canBase\Source\CAN.c
562
001702   b740     BTFSC     0x40,0x3,0x1                                                                                    
563
001704   d004     BRA       0x170e                                                                                          
564
001706   0e00     MOVLW     0x0                                                                                             
565
001708   1477     ANDWF     0x77,0x0,0x0                                                                                    
566
00170a   0903     IORLW     0x3                                                                                             
567
00170c   6e77     MOVWF     0x77,0x0                                                                                        
568
00170e   010f     MOVLB     0xf            	if ( TXB1CONbits.TXREQ == 0 )  { ECANCON=(ECANCON&0b00000)|0b00100; }           F:\MCP\projects\CAN\canBase\Source\CAN.c
569
001710   b730     BTFSC     0x30,0x3,0x1                                                                                    
570
001712   d004     BRA       0x171c                                                                                          
571
001714   0e00     MOVLW     0x0                                                                                             
572
001716   1477     ANDWF     0x77,0x0,0x0                                                                                    
573
001718   0904     IORLW     0x4                                                                                             
574
00171a   6e77     MOVWF     0x77,0x0                                                                                        
575
00171c   010f     MOVLB     0xf            	if ( TXB2CONbits.TXREQ == 0 )  { ECANCON=(ECANCON&0b00000)|0b00101; }           F:\MCP\projects\CAN\canBase\Source\CAN.c
576
00171e   b720     BTFSC     0x20,0x3,0x1                                                                                    
577
001720   d005     BRA       0x172c                                                                                          
578
001722   0e00     MOVLW     0x0                                                                                             
579
001724   1477     ANDWF     0x77,0x0,0x0                                                                                    
580
001726   0905     IORLW     0x5                                                                                             
581
001728   6e77     MOVWF     0x77,0x0                                                                                        
85 johboh 582
                                           	// None of the transmit buffers were empty.                                     F:\MCP\projects\CAN\canBase\Source\CAN.c
109 johboh 583
00172a   d002     BRA       0x1730         	else { return FALSE;}                                                           F:\MCP\projects\CAN\canBase\Source\CAN.c
584
00172c   0e00     MOVLW     0x0                                                                                             
585
00172e   d0b0     BRA       0x1890                                                                                          
85 johboh 586
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
109 johboh 587
001730   0eef     MOVLW     0xef           	if (prio<0 || prio>3) prio = 0;                                                 F:\MCP\projects\CAN\canBase\Source\CAN.c
588
001732   cfdb     MOVFF     0xfdb,0x0                                                                                       
589
001734   f000                                                                                                               
590
001736   3400     RLCF      0x0,0x0,0x0                                                                                     
591
001738   e20e     BC        0x1756                                                                                          
592
00173a   0eef     MOVLW     0xef                                                                                            
593
00173c   cfdb     MOVFF     0xfdb,0x1                                                                                       
594
00173e   f001                                                                                                               
595
001740   0e03     MOVLW     0x3                                                                                             
596
001742   6ee7     MOVWF     0xe7,0x0                                                                                        
597
001744   1801     XORWF     0x1,0x0,0x0                                                                                     
598
001746   aee8     BTFSS     0xe8,0x7,0x0                                                                                    
599
001748   d002     BRA       0x174e                                                                                          
600
00174a   3401     RLCF      0x1,0x0,0x0                                                                                     
601
00174c   d003     BRA       0x1754                                                                                          
602
00174e   50e7     MOVF      0xe7,0x0,0x0                                                                                    
603
001750   80d8     BSF       0xd8,0x0,0x0                                                                                    
604
001752   5401     SUBFWB    0x1,0x0,0x0                                                                                     
605
001754   e202     BC        0x175a                                                                                          
606
001756   0eef     MOVLW     0xef                                                                                            
607
001758   6adb     CLRF      0xdb,0x0                                                                                        
85 johboh 608
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
609
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
86 johboh 610
                                           		//RXB0SIDH 28 27 26 25 24 23 22 21                                             F:\MCP\projects\CAN\canBase\Source\CAN.c
611
                                                   //RXB0SIDL 20 19 18 xx xx xx 17 16                                       F:\MCP\projects\CAN\canBase\Source\CAN.c
612
                                                   //RXB0EIDH 15 14 13 12 11 10 09 08                                       F:\MCP\projects\CAN\canBase\Source\CAN.c
613
                                                   //RXB0EIDL 07 06 05 04 03 02 01 00                                       F:\MCP\projects\CAN\canBase\Source\CAN.c
85 johboh 614
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
86 johboh 615
                                           		//funct xx xx xx xx 28 27 26 25                                                F:\MCP\projects\CAN\canBase\Source\CAN.c
616
                                           		//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
617
                                           		//nid   xx xx 14 13 12 11 10 09                                                F:\MCP\projects\CAN\canBase\Source\CAN.c
618
                                           		//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
85 johboh 619
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
109 johboh 620
00175a   0ef1     MOVLW     0xf1           		RXB0SIDH = (BYTE)((cm.funct & 0x0F)<<4)+(BYTE)((cm.funcc & 0x03C0)>>6);        F:\MCP\projects\CAN\canBase\Source\CAN.c
621
00175c   cfdb     MOVFF     0xfdb,0x0                                                                                       
622
00175e   f000                                                                                                               
623
001760   0ef2     MOVLW     0xf2                                                                                            
624
001762   cfdb     MOVFF     0xfdb,0x1                                                                                       
625
001764   f001                                                                                                               
626
001766   0ec0     MOVLW     0xc0                                                                                            
627
001768   1600     ANDWF     0x0,0x1,0x0                                                                                     
628
00176a   0e03     MOVLW     0x3                                                                                             
629
00176c   1601     ANDWF     0x1,0x1,0x0                                                                                     
630
00176e   0e06     MOVLW     0x6                                                                                             
631
001770   90d8     BCF       0xd8,0x0,0x0                                                                                    
632
001772   3201     RRCF      0x1,0x1,0x0                                                                                     
633
001774   3200     RRCF      0x0,0x1,0x0                                                                                     
634
001776   04e8     DECF      0xe8,0x0,0x0                                                                                    
635
001778   e1fb     BNZ       0x1770                                                                                          
636
00177a   0ef0     MOVLW     0xf0                                                                                            
637
00177c   50db     MOVF      0xdb,0x0,0x0                                                                                    
638
00177e   0b0f     ANDLW     0xf                                                                                             
639
001780   0d10     MULLW     0x10                                                                                            
640
001782   50f3     MOVF      0xf3,0x0,0x0                                                                                    
641
001784   2400     ADDWF     0x0,0x0,0x0                                                                                     
642
001786   6e61     MOVWF     0x61,0x0                                                                                        
643
001788   0e06     MOVLW     0x6            		RXB0SIDL = (BYTE)((cm.funcc & 0x003F)<<2)+(BYTE)((cm.funcc & 0x0006)>>1);      F:\MCP\projects\CAN\canBase\Source\CAN.c
644
00178a   6ee7     MOVWF     0xe7,0x0                                                                                        
645
00178c   0ef1     MOVLW     0xf1                                                                                            
646
00178e   cfdb     MOVFF     0xfdb,0x2                                                                                       
647
001790   f002                                                                                                               
648
001792   0ef2     MOVLW     0xf2                                                                                            
649
001794   cfdb     MOVFF     0xfdb,0x3                                                                                       
650
001796   f003                                                                                                               
651
001798   50e7     MOVF      0xe7,0x0,0x0                                                                                    
652
00179a   1602     ANDWF     0x2,0x1,0x0                                                                                     
653
00179c   6a03     CLRF      0x3,0x0                                                                                         
654
00179e   90d8     BCF       0xd8,0x0,0x0                                                                                    
655
0017a0   3203     RRCF      0x3,0x1,0x0                                                                                     
656
0017a2   3202     RRCF      0x2,0x1,0x0                                                                                     
657
0017a4   0e3f     MOVLW     0x3f                                                                                            
658
0017a6   6ee7     MOVWF     0xe7,0x0                                                                                        
659
0017a8   0ef1     MOVLW     0xf1                                                                                            
660
0017aa   cfdb     MOVFF     0xfdb,0x0                                                                                       
661
0017ac   f000                                                                                                               
662
0017ae   0ef2     MOVLW     0xf2                                                                                            
663
0017b0   cfdb     MOVFF     0xfdb,0x1                                                                                       
664
0017b2   f001                                                                                                               
665
0017b4   50e7     MOVF      0xe7,0x0,0x0                                                                                    
666
0017b6   1600     ANDWF     0x0,0x1,0x0                                                                                     
667
0017b8   6a01     CLRF      0x1,0x0                                                                                         
668
0017ba   90d8     BCF       0xd8,0x0,0x0                                                                                    
669
0017bc   3600     RLCF      0x0,0x1,0x0                                                                                     
670
0017be   3601     RLCF      0x1,0x1,0x0                                                                                     
671
0017c0   90d8     BCF       0xd8,0x0,0x0                                                                                    
672
0017c2   3600     RLCF      0x0,0x1,0x0                                                                                     
673
0017c4   3601     RLCF      0x1,0x1,0x0                                                                                     
674
0017c6   5000     MOVF      0x0,0x0,0x0                                                                                     
675
0017c8   2402     ADDWF     0x2,0x0,0x0                                                                                     
676
0017ca   6e62     MOVWF     0x62,0x0                                                                                        
677
0017cc   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
678
0017ce   cfdb     MOVFF     0xfdb,0x2                                                                                       
679
0017d0   f002                                                                                                               
680
0017d2   0ef5     MOVLW     0xf5                                                                                            
681
0017d4   cfdb     MOVFF     0xfdb,0x3                                                                                       
682
0017d6   f003                                                                                                               
683
0017d8   0e00     MOVLW     0x0                                                                                             
684
0017da   1602     ANDWF     0x2,0x1,0x0                                                                                     
685
0017dc   0e01     MOVLW     0x1                                                                                             
686
0017de   1603     ANDWF     0x3,0x1,0x0                                                                                     
687
0017e0   c003     MOVFF     0x3,0x2                                                                                         
688
0017e2   f002                                                                                                               
689
0017e4   6a03     CLRF      0x3,0x0                                                                                         
690
0017e6   0e01     MOVLW     0x1                                                                                             
691
0017e8   6ee7     MOVWF     0xe7,0x0                                                                                        
692
0017ea   0ef1     MOVLW     0xf1                                                                                            
693
0017ec   cfdb     MOVFF     0xfdb,0x0                                                                                       
694
0017ee   f000                                                                                                               
695
0017f0   0ef2     MOVLW     0xf2                                                                                            
696
0017f2   cfdb     MOVFF     0xfdb,0x1                                                                                       
697
0017f4   f001                                                                                                               
698
0017f6   50e7     MOVF      0xe7,0x0,0x0                                                                                    
699
0017f8   1600     ANDWF     0x0,0x1,0x0                                                                                     
700
0017fa   6a01     CLRF      0x1,0x0                                                                                         
701
0017fc   0e07     MOVLW     0x7                                                                                             
702
0017fe   90d8     BCF       0xd8,0x0,0x0                                                                                    
703
001800   3600     RLCF      0x0,0x1,0x0                                                                                     
704
001802   3601     RLCF      0x1,0x1,0x0                                                                                     
705
001804   04e8     DECF      0xe8,0x0,0x0                                                                                    
706
001806   e1fb     BNZ       0x17fe                                                                                          
707
001808   0ef3     MOVLW     0xf3                                                                                            
708
00180a   50db     MOVF      0xdb,0x0,0x0                                                                                    
709
00180c   0b3f     ANDLW     0x3f                                                                                            
710
00180e   24e8     ADDWF     0xe8,0x0,0x0                                                                                    
711
001810   2400     ADDWF     0x0,0x0,0x0                                                                                     
712
001812   2402     ADDWF     0x2,0x0,0x0                                                                                     
713
001814   6e63     MOVWF     0x63,0x0                                                                                        
714
001816   0eff     MOVLW     0xff           		RXB0EIDL = (BYTE)((cm.sid & 0x00FF));                                          F:\MCP\projects\CAN\canBase\Source\CAN.c
715
001818   6ee7     MOVWF     0xe7,0x0                                                                                        
716
00181a   0ef4     MOVLW     0xf4                                                                                            
717
00181c   cfdb     MOVFF     0xfdb,0x0                                                                                       
718
00181e   f000                                                                                                               
719
001820   0ef5     MOVLW     0xf5                                                                                            
720
001822   cfdb     MOVFF     0xfdb,0x1                                                                                       
721
001824   f001                                                                                                               
722
001826   50e7     MOVF      0xe7,0x0,0x0                                                                                    
723
001828   1600     ANDWF     0x0,0x1,0x0                                                                                     
724
00182a   6a01     CLRF      0x1,0x0                                                                                         
725
00182c   5000     MOVF      0x0,0x0,0x0                                                                                     
726
00182e   6e64     MOVWF     0x64,0x0                                                                                        
85 johboh 727
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
86 johboh 728
                                           		// Data length                                                                 F:\MCP\projects\CAN\canBase\Source\CAN.c
109 johboh 729
001830   6a65     CLRF      0x65,0x0       		RXB0DLC = 0;                                                                   F:\MCP\projects\CAN\canBase\Source\CAN.c
730
001832   0ef6     MOVLW     0xf6           		if (cm.data_length>8) RXB0DLC=8; else RXB0DLC=cm.data_length;                  F:\MCP\projects\CAN\canBase\Source\CAN.c
731
001834   50db     MOVF      0xdb,0x0,0x0                                                                                    
732
001836   0808     SUBLW     0x8                                                                                             
733
001838   e203     BC        0x1840                                                                                          
734
00183a   0e08     MOVLW     0x8                                                                                             
735
00183c   6e65     MOVWF     0x65,0x0                                                                                        
736
00183e   d003     BRA       0x1846                                                                                          
737
001840   0ef6     MOVLW     0xf6                                                                                            
738
001842   50db     MOVF      0xdb,0x0,0x0                                                                                    
739
001844   6e65     MOVWF     0x65,0x0                                                                                        
85 johboh 740
                                           		                                                                               F:\MCP\projects\CAN\canBase\Source\CAN.c
741
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
86 johboh 742
                                           		// NOT Remote request                                                          F:\MCP\projects\CAN\canBase\Source\CAN.c
743
                                           		_asm                                                                           F:\MCP\projects\CAN\canBase\Source\CAN.c
109 johboh 744
001846   9c65     BCF       0x65,0x6,0x0   			bcf RXB0DLC, 6, 0                                                             F:\MCP\projects\CAN\canBase\Source\CAN.c
86 johboh 745
                                           		_endasm                                                                        F:\MCP\projects\CAN\canBase\Source\CAN.c
85 johboh 746
                                           		                                                                               F:\MCP\projects\CAN\canBase\Source\CAN.c
747
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
748
                                           		// Data one bye one, for speed                                                 F:\MCP\projects\CAN\canBase\Source\CAN.c
109 johboh 749
001848   0ef7     MOVLW     0xf7           		RXB0D0=cm.data[0];	RXB0D1=cm.data[1];                                          F:\MCP\projects\CAN\canBase\Source\CAN.c
750
00184a   50db     MOVF      0xdb,0x0,0x0                                                                                    
751
00184c   6e66     MOVWF     0x66,0x0                                                                                        
752
00184e   0ef8     MOVLW     0xf8                                                                                            
753
001850   50db     MOVF      0xdb,0x0,0x0                                                                                    
754
001852   6e67     MOVWF     0x67,0x0                                                                                        
755
001854   0ef9     MOVLW     0xf9           		RXB0D2=cm.data[2]; 	RXB0D3=cm.data[3];                                         F:\MCP\projects\CAN\canBase\Source\CAN.c
756
001856   50db     MOVF      0xdb,0x0,0x0                                                                                    
757
001858   6e68     MOVWF     0x68,0x0                                                                                        
758
00185a   0efa     MOVLW     0xfa                                                                                            
759
00185c   50db     MOVF      0xdb,0x0,0x0                                                                                    
760
00185e   6e69     MOVWF     0x69,0x0                                                                                        
761
001860   0efb     MOVLW     0xfb           		RXB0D4=cm.data[4]; 	RXB0D5=cm.data[5];                                         F:\MCP\projects\CAN\canBase\Source\CAN.c
762
001862   50db     MOVF      0xdb,0x0,0x0                                                                                    
763
001864   6e6a     MOVWF     0x6a,0x0                                                                                        
764
001866   0efc     MOVLW     0xfc                                                                                            
765
001868   50db     MOVF      0xdb,0x0,0x0                                                                                    
766
00186a   6e6b     MOVWF     0x6b,0x0                                                                                        
767
00186c   0efd     MOVLW     0xfd           		RXB0D6=cm.data[6]; 	RXB0D7=cm.data[7];                                         F:\MCP\projects\CAN\canBase\Source\CAN.c
768
00186e   50db     MOVF      0xdb,0x0,0x0                                                                                    
769
001870   6e6c     MOVWF     0x6c,0x0                                                                                        
770
001872   0efe     MOVLW     0xfe                                                                                            
771
001874   50db     MOVF      0xdb,0x0,0x0                                                                                    
772
001876   6e6d     MOVWF     0x6d,0x0                                                                                        
85 johboh 773
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
86 johboh 774
                                           		// set extended                                                                F:\MCP\projects\CAN\canBase\Source\CAN.c
109 johboh 775
001878   8662     BSF       0x62,0x3,0x0   		RXB0SIDLbits.EXID=1;                                                           F:\MCP\projects\CAN\canBase\Source\CAN.c
85 johboh 776
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
777
                                           		// Priority                                                                    F:\MCP\projects\CAN\canBase\Source\CAN.c
109 johboh 778
00187a   0eef     MOVLW     0xef           		RXB0CON = (RXB0CON & 0b11111100) | prio;                                       F:\MCP\projects\CAN\canBase\Source\CAN.c
779
00187c   cfdb     MOVFF     0xfdb,0xfe6                                                                                     
780
00187e   ffe6                                                                                                               
781
001880   0efc     MOVLW     0xfc                                                                                            
782
001882   1460     ANDWF     0x60,0x0,0x0                                                                                    
783
001884   52e5     MOVF      0xe5,0x1,0x0                                                                                    
784
001886   10e7     IORWF     0xe7,0x0,0x0                                                                                    
785
001888   6e60     MOVWF     0x60,0x0                                                                                        
85 johboh 786
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
787
                                           		// mark as redy to transmit                                                    F:\MCP\projects\CAN\canBase\Source\CAN.c
788
                                           		_asm                                                                           F:\MCP\projects\CAN\canBase\Source\CAN.c
109 johboh 789
00188a   8660     BSF       0x60,0x3,0x0   			bsf RXB0CON, 3, 0                                                             F:\MCP\projects\CAN\canBase\Source\CAN.c
85 johboh 790
                                           		_endasm                                                                        F:\MCP\projects\CAN\canBase\Source\CAN.c
791
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
109 johboh 792
00188c   0e01     MOVLW     0x1            		return TRUE;                                                                   F:\MCP\projects\CAN\canBase\Source\CAN.c
793
00188e   d000     BRA       0x1890                                                                                          
85 johboh 794
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
109 johboh 795
001890   52e5     MOVF      0xe5,0x1,0x0   }                                                                                F:\MCP\projects\CAN\canBase\Source\CAN.c
796
001892   cfe7     MOVFF     0xfe7,0xfd9                                                                                     
797
001894   ffd9                                                                                                               
798
001896   0012     RETURN    0x0                                                                                             
85 johboh 799
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
800
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
801
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
802
                                           #endif //USE_CAN                                                                 F:\MCP\projects\CAN\canBase\Source\CAN.c
803
                                           /*********************************************************************           F:\MCP\projects\CAN\canBase\Source\Main.c
804
                                            *                                                                               F:\MCP\projects\CAN\canBase\Source\Main.c
805
                                            *                  Main application                                             F:\MCP\projects\CAN\canBase\Source\Main.c
806
                                            *                                                                               F:\MCP\projects\CAN\canBase\Source\Main.c
807
                                            *********************************************************************           F:\MCP\projects\CAN\canBase\Source\Main.c
87 johboh 808
                                            * FileName:        $HeadURL: http://svn.arune.se/svn/HomeAutomation/trunk/EmbeddedSoftware/PIC/canBase/Source/Main.c $ F:\MCP\projects\CAN\canBase\Source\Main.c
109 johboh 809
                                            * Last changed:	$LastChangedDate: 2006-11-15 17:32:31 +0100 (on, 15 nov 2006) $ F:\MCP\projects\CAN\canBase\Source\Main.c
87 johboh 810
                                            * By:				$LastChangedBy: johboh $                                               F:\MCP\projects\CAN\canBase\Source\Main.c
109 johboh 811
                                            * Revision:		$Revision: 108 $                                                   F:\MCP\projects\CAN\canBase\Source\Main.c
85 johboh 812
                                            ********************************************************************/           F:\MCP\projects\CAN\canBase\Source\Main.c
813
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Main.c
814
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Main.c
815
                                           #include <compiler.h>                                                            F:\MCP\projects\CAN\canBase\Source\Main.c
816
                                           #include <stackTasks.h>                                                          F:\MCP\projects\CAN\canBase\Source\Main.c
817
                                           #include <Tick.h>                                                                F:\MCP\projects\CAN\canBase\Source\Main.c
90 johboh 818
                                           #include <funcdefs.h>                                                            F:\MCP\projects\CAN\canBase\Source\Main.c
95 johboh 819
                                           #include <EEaccess.h>                                                            F:\MCP\projects\CAN\canBase\Source\Main.c
85 johboh 820
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Main.c
821
                                           #ifdef USE_CAN                                                                   F:\MCP\projects\CAN\canBase\Source\Main.c
822
                                           	#include <CAN.h>                                                                F:\MCP\projects\CAN\canBase\Source\Main.c
823
                                           #endif                                                                           F:\MCP\projects\CAN\canBase\Source\Main.c
824
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Main.c
825
                                           static void mainInit(void);                                                      F:\MCP\projects\CAN\canBase\Source\Main.c
826
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Main.c
827
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Main.c
100 johboh 828
                                           static int MY_ID = DEFAULT_ID;                                                   F:\MCP\projects\CAN\canBase\Source\Main.c
829
                                           static BYTE MY_NID = DEFAULT_NID;                                                F:\MCP\projects\CAN\canBase\Source\Main.c
830
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Main.c
108 johboh 831
001044   cfd9     MOVFF     0xfd9,0xfe6    void main()                                                                      F:\MCP\projects\CAN\canBase\Source\Main.c
832
001046   ffe6                                                                                                               
833
001048   cfe1     MOVFF     0xfe1,0xfd9                                                                                     
834
00104a   ffd9                                                                                                               
835
00104c   0e0f     MOVLW     0xf                                                                                             
836
00104e   26e1     ADDWF     0xe1,0x1,0x0                                                                                    
85 johboh 837
                                           {                                                                                F:\MCP\projects\CAN\canBase\Source\Main.c
838
                                           	static TICK t = 0;                                                              F:\MCP\projects\CAN\canBase\Source\Main.c
108 johboh 839
                                           	CAN_MESSAGE outCm;                                                              F:\MCP\projects\CAN\canBase\Source\Main.c
85 johboh 840
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Main.c
841
                                           	// Inits                                                                        F:\MCP\projects\CAN\canBase\Source\Main.c
842
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Main.c
109 johboh 843
001050   d971     RCALL     0x1334         	mainInit();                                                                     F:\MCP\projects\CAN\canBase\Source\Main.c
85 johboh 844
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Main.c
845
                                           	#ifdef USE_CAN                                                                  F:\MCP\projects\CAN\canBase\Source\Main.c
109 johboh 846
001052   ec66     CALL      0x14cc,0x0     		canInit();                                                                     F:\MCP\projects\CAN\canBase\Source\Main.c
108 johboh 847
001054   f00a                                                                                                               
85 johboh 848
                                           	#endif                                                                          F:\MCP\projects\CAN\canBase\Source\Main.c
849
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Main.c
109 johboh 850
001056   ecf1     CALL      0x19e2,0x0     	tickInit();                                                                     F:\MCP\projects\CAN\canBase\Source\Main.c
108 johboh 851
001058   f00c                                                                                                               
85 johboh 852
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Main.c
100 johboh 853
                                           	// Read ID and NID if exist.                                                    F:\MCP\projects\CAN\canBase\Source\Main.c
108 johboh 854
00105a   0e00     MOVLW     0x0            	if (EERead(NODE_ID_EE)==NODE_HAS_ID)                                            F:\MCP\projects\CAN\canBase\Source\Main.c
855
00105c   6ee6     MOVWF     0xe6,0x0                                                                                        
856
00105e   6ae6     CLRF      0xe6,0x0                                                                                        
109 johboh 857
001060   ec4c     CALL      0x1898,0x0                                                                                      
858
001062   f00c                                                                                                               
108 johboh 859
001064   52e5     MOVF      0xe5,0x1,0x0                                                                                    
860
001066   52e5     MOVF      0xe5,0x1,0x0                                                                                    
861
001068   082a     SUBLW     0x2a                                                                                            
862
00106a   e12b     BNZ       0x10c2                                                                                          
100 johboh 863
                                           	{                                                                               F:\MCP\projects\CAN\canBase\Source\Main.c
108 johboh 864
00106c   0e01     MOVLW     0x1            		MY_ID=(((WORD)EERead(NODE_ID_EE + 1))<<8)+EERead(NODE_ID_EE + 2);              F:\MCP\projects\CAN\canBase\Source\Main.c
865
00106e   6ee6     MOVWF     0xe6,0x0                                                                                        
866
001070   6ae6     CLRF      0xe6,0x0                                                                                        
109 johboh 867
001072   ec4c     CALL      0x1898,0x0                                                                                      
868
001074   f00c                                                                                                               
108 johboh 869
001076   52e5     MOVF      0xe5,0x1,0x0                                                                                    
870
001078   52e5     MOVF      0xe5,0x1,0x0                                                                                    
871
00107a   6e00     MOVWF     0x0,0x0                                                                                         
872
00107c   c000     MOVFF     0x0,0x1                                                                                         
873
00107e   f001                                                                                                               
874
001080   6a00     CLRF      0x0,0x0                                                                                         
875
001082   c000     MOVFF     0x0,0xfe6                                                                                       
876
001084   ffe6                                                                                                               
877
001086   c001     MOVFF     0x1,0xfe6                                                                                       
878
001088   ffe6                                                                                                               
879
00108a   0e02     MOVLW     0x2                                                                                             
880
00108c   6ee6     MOVWF     0xe6,0x0                                                                                        
881
00108e   6ae6     CLRF      0xe6,0x0                                                                                        
109 johboh 882
001090   ec4c     CALL      0x1898,0x0                                                                                      
883
001092   f00c                                                                                                               
108 johboh 884
001094   52e5     MOVF      0xe5,0x1,0x0                                                                                    
885
001096   52e5     MOVF      0xe5,0x1,0x0                                                                                    
886
001098   52e5     MOVF      0xe5,0x1,0x0                                                                                    
887
00109a   cfe7     MOVFF     0xfe7,0x1                                                                                       
888
00109c   f001                                                                                                               
889
00109e   52e5     MOVF      0xe5,0x1,0x0                                                                                    
890
0010a0   cfe7     MOVFF     0xfe7,0x0                                                                                       
891
0010a2   f000                                                                                                               
892
0010a4   0100     MOVLB     0x0                                                                                             
893
0010a6   2400     ADDWF     0x0,0x0,0x0                                                                                     
894
0010a8   6f60     MOVWF     0x60,0x1                                                                                        
895
0010aa   0e00     MOVLW     0x0                                                                                             
896
0010ac   2001     ADDWFC    0x1,0x0,0x0                                                                                     
897
0010ae   6f61     MOVWF     0x61,0x1                                                                                        
898
0010b0   0e03     MOVLW     0x3            		MY_NID=EERead(NODE_ID_EE + 3);                                                 F:\MCP\projects\CAN\canBase\Source\Main.c
899
0010b2   6ee6     MOVWF     0xe6,0x0                                                                                        
900
0010b4   6ae6     CLRF      0xe6,0x0                                                                                        
109 johboh 901
0010b6   ec4c     CALL      0x1898,0x0                                                                                      
902
0010b8   f00c                                                                                                               
108 johboh 903
0010ba   52e5     MOVF      0xe5,0x1,0x0                                                                                    
904
0010bc   52e5     MOVF      0xe5,0x1,0x0                                                                                    
905
0010be   0100     MOVLB     0x0                                                                                             
906
0010c0   6f62     MOVWF     0x62,0x1                                                                                        
100 johboh 907
                                           	}                                                                               F:\MCP\projects\CAN\canBase\Source\Main.c
87 johboh 908
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Main.c
109 johboh 909
                                           	// Send user program startup heatbeat                                           F:\MCP\projects\CAN\canBase\Source\Main.c
910
0010c2   6adf     CLRF      0xdf,0x0       	outCm.funct 					= FUNCT_BOOTLOADER;                                            F:\MCP\projects\CAN\canBase\Source\Main.c
911
0010c4   0e08     MOVLW     0x8            	outCm.funcc 					= FUNCC_BOOT_HEARTBEAT;                                        F:\MCP\projects\CAN\canBase\Source\Main.c
912
0010c6   6ef3     MOVWF     0xf3,0x0                                                                                        
913
0010c8   0e01     MOVLW     0x1                                                                                             
914
0010ca   cff3     MOVFF     0xff3,0xfdb                                                                                     
915
0010cc   ffdb                                                                                                               
916
0010ce   0e02     MOVLW     0x2                                                                                             
917
0010d0   6adb     CLRF      0xdb,0x0                                                                                        
918
0010d2   0e03     MOVLW     0x3            	outCm.nid   					= MY_NID;                                                      F:\MCP\projects\CAN\canBase\Source\Main.c
919
0010d4   c062     MOVFF     0x62,0xfdb                                                                                      
920
0010d6   ffdb                                                                                                               
921
0010d8   0e04     MOVLW     0x4            	outCm.sid   					= MY_ID;                                                       F:\MCP\projects\CAN\canBase\Source\Main.c
922
0010da   c060     MOVFF     0x60,0xfdb                                                                                      
923
0010dc   ffdb                                                                                                               
924
0010de   0e05     MOVLW     0x5                                                                                             
925
0010e0   c061     MOVFF     0x61,0xfdb                                                                                      
926
0010e2   ffdb                                                                                                               
927
0010e4   0e01     MOVLW     0x1            	outCm.data_length 				= 1;                                                      F:\MCP\projects\CAN\canBase\Source\Main.c
928
0010e6   6ef3     MOVWF     0xf3,0x0                                                                                        
929
0010e8   0e06     MOVLW     0x6                                                                                             
930
0010ea   cff3     MOVFF     0xff3,0xfdb                                                                                     
931
0010ec   ffdb                                                                                                               
932
0010ee   0e01     MOVLW     0x1            	outCm.data[BOOT_DATA_HEARTBEAT_INDEX] = HEARTBEAT_USER_STARTUP;                 F:\MCP\projects\CAN\canBase\Source\Main.c
933
0010f0   6ef3     MOVWF     0xf3,0x0                                                                                        
934
0010f2   0e07     MOVLW     0x7                                                                                             
935
0010f4   cff3     MOVFF     0xff3,0xfdb                                                                                     
936
0010f6   ffdb                                                                                                               
937
0010f8   0e02     MOVLW     0x2            	while(!canSendMessage(outCm,PRIO_HIGH));                                        F:\MCP\projects\CAN\canBase\Source\Main.c
938
0010fa   6ee6     MOVWF     0xe6,0x0                                                                                        
939
0010fc   cfd9     MOVFF     0xfd9,0xfe9                                                                                     
940
0010fe   ffe9                                                                                                               
941
001100   cfda     MOVFF     0xfda,0xfea                                                                                     
942
001102   ffea                                                                                                               
943
001104   cfee     MOVFF     0xfee,0xfe6                                                                                     
944
001106   ffe6                                                                                                               
945
001108   cfee     MOVFF     0xfee,0xfe6                                                                                     
946
00110a   ffe6                                                                                                               
947
00110c   cfee     MOVFF     0xfee,0xfe6                                                                                     
948
00110e   ffe6                                                                                                               
949
001110   cfee     MOVFF     0xfee,0xfe6                                                                                     
950
001112   ffe6                                                                                                               
951
001114   cfee     MOVFF     0xfee,0xfe6                                                                                     
952
001116   ffe6                                                                                                               
953
001118   cfee     MOVFF     0xfee,0xfe6                                                                                     
954
00111a   ffe6                                                                                                               
955
00111c   cfee     MOVFF     0xfee,0xfe6                                                                                     
956
00111e   ffe6                                                                                                               
957
001120   cfee     MOVFF     0xfee,0xfe6                                                                                     
958
001122   ffe6                                                                                                               
959
001124   cfee     MOVFF     0xfee,0xfe6                                                                                     
960
001126   ffe6                                                                                                               
961
001128   cfee     MOVFF     0xfee,0xfe6                                                                                     
962
00112a   ffe6                                                                                                               
963
00112c   cfee     MOVFF     0xfee,0xfe6                                                                                     
964
00112e   ffe6                                                                                                               
965
001130   cfee     MOVFF     0xfee,0xfe6                                                                                     
966
001132   ffe6                                                                                                               
967
001134   cfee     MOVFF     0xfee,0xfe6                                                                                     
968
001136   ffe6                                                                                                               
969
001138   cfee     MOVFF     0xfee,0xfe6                                                                                     
970
00113a   ffe6                                                                                                               
971
00113c   cfee     MOVFF     0xfee,0xfe6                                                                                     
972
00113e   ffe6                                                                                                               
973
001140   ec7c     CALL      0x16f8,0x0                                                                                      
974
001142   f00b                                                                                                               
975
001144   6e00     MOVWF     0x0,0x0                                                                                         
976
001146   0e10     MOVLW     0x10                                                                                            
977
001148   5ee1     SUBWF     0xe1,0x1,0x0                                                                                    
978
00114a   5000     MOVF      0x0,0x0,0x0                                                                                     
979
00114c   0900     IORLW     0x0                                                                                             
980
00114e   e101     BNZ       0x1152                                                                                          
981
001150   d7d3     BRA       0x10f8                                                                                          
982
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Main.c
983
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Main.c
984
001270   d770     BRA       0x1152         	while(1)                                                                        F:\MCP\projects\CAN\canBase\Source\Main.c
85 johboh 985
                                           	{                                                                               F:\MCP\projects\CAN\canBase\Source\Main.c
86 johboh 986
                                           		static TICK t = 0;                                                             F:\MCP\projects\CAN\canBase\Source\Main.c
108 johboh 987
                                           		static TICK heartbeat = 0;                                                     F:\MCP\projects\CAN\canBase\Source\Main.c
988
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Main.c
989
                                           		                                                                               F:\MCP\projects\CAN\canBase\Source\Main.c
109 johboh 990
001152   ecfb     CALL      0x19f6,0x0     		if ((tickGet()-heartbeat)>TICK_SECOND*5)                                       F:\MCP\projects\CAN\canBase\Source\Main.c
991
001154   f00c                                                                                                               
992
001156   0100     MOVLB     0x0                                                                                             
993
001158   516b     MOVF      0x6b,0x0,0x1                                                                                    
994
00115a   5c12     SUBWF     0x12,0x0,0x0                                                                                    
995
00115c   6e00     MOVWF     0x0,0x0                                                                                         
996
00115e   516c     MOVF      0x6c,0x0,0x1                                                                                    
997
001160   5813     SUBWFB    0x13,0x0,0x0                                                                                    
998
001162   6e01     MOVWF     0x1,0x0                                                                                         
999
001164   516d     MOVF      0x6d,0x0,0x1                                                                                    
1000
001166   5814     SUBWFB    0x14,0x0,0x0                                                                                    
1001
001168   6e02     MOVWF     0x2,0x0                                                                                         
1002
00116a   516e     MOVF      0x6e,0x0,0x1                                                                                    
1003
00116c   5815     SUBWFB    0x15,0x0,0x0                                                                                    
1004
00116e   6e03     MOVWF     0x3,0x0                                                                                         
1005
001170   80d8     BSF       0xd8,0x0,0x0                                                                                    
1006
001172   0ef4     MOVLW     0xf4                                                                                            
1007
001174   5400     SUBFWB    0x0,0x0,0x0                                                                                     
1008
001176   0e01     MOVLW     0x1                                                                                             
1009
001178   5401     SUBFWB    0x1,0x0,0x0                                                                                     
1010
00117a   0e00     MOVLW     0x0                                                                                             
1011
00117c   5402     SUBFWB    0x2,0x0,0x0                                                                                     
1012
00117e   0e00     MOVLW     0x0                                                                                             
1013
001180   5403     SUBFWB    0x3,0x0,0x0                                                                                     
1014
001182   e252     BC        0x1228                                                                                          
85 johboh 1015
                                           		{                                                                              F:\MCP\projects\CAN\canBase\Source\Main.c
109 johboh 1016
                                           			// Send alive heartbeat                                                       F:\MCP\projects\CAN\canBase\Source\Main.c
1017
001184   6adf     CLRF      0xdf,0x0       			outCm.funct 					= FUNCT_BOOTLOADER;                                          F:\MCP\projects\CAN\canBase\Source\Main.c
1018
001186   0e08     MOVLW     0x8            			outCm.funcc 					= FUNCC_BOOT_HEARTBEAT;                                      F:\MCP\projects\CAN\canBase\Source\Main.c
1019
001188   6ef3     MOVWF     0xf3,0x0                                                                                        
1020
00118a   0e01     MOVLW     0x1                                                                                             
1021
00118c   cff3     MOVFF     0xff3,0xfdb                                                                                     
1022
00118e   ffdb                                                                                                               
1023
001190   0e02     MOVLW     0x2                                                                                             
1024
001192   6adb     CLRF      0xdb,0x0                                                                                        
1025
001194   0e03     MOVLW     0x3            			outCm.nid   					= MY_NID;                                                    F:\MCP\projects\CAN\canBase\Source\Main.c
1026
001196   c062     MOVFF     0x62,0xfdb                                                                                      
1027
001198   ffdb                                                                                                               
1028
00119a   0e04     MOVLW     0x4            			outCm.sid   					= MY_ID;                                                     F:\MCP\projects\CAN\canBase\Source\Main.c
1029
00119c   c060     MOVFF     0x60,0xfdb                                                                                      
1030
00119e   ffdb                                                                                                               
1031
0011a0   0e05     MOVLW     0x5                                                                                             
1032
0011a2   c061     MOVFF     0x61,0xfdb                                                                                      
1033
0011a4   ffdb                                                                                                               
1034
0011a6   0e01     MOVLW     0x1            			outCm.data_length 				= 1;                                                    F:\MCP\projects\CAN\canBase\Source\Main.c
1035
0011a8   6ef3     MOVWF     0xf3,0x0                                                                                        
1036
0011aa   0e06     MOVLW     0x6                                                                                             
1037
0011ac   cff3     MOVFF     0xff3,0xfdb                                                                                     
1038
0011ae   ffdb                                                                                                               
1039
0011b0   0e02     MOVLW     0x2            			outCm.data[BOOT_DATA_HEARTBEAT_INDEX] = HEARTBEAT_ALIVE;                      F:\MCP\projects\CAN\canBase\Source\Main.c
1040
0011b2   6ef3     MOVWF     0xf3,0x0                                                                                        
1041
0011b4   0e07     MOVLW     0x7                                                                                             
1042
0011b6   cff3     MOVFF     0xff3,0xfdb                                                                                     
1043
0011b8   ffdb                                                                                                               
1044
0011ba   0e02     MOVLW     0x2            			while(!canSendMessage(outCm,PRIO_HIGH));                                      F:\MCP\projects\CAN\canBase\Source\Main.c
1045
0011bc   6ee6     MOVWF     0xe6,0x0                                                                                        
1046
0011be   cfd9     MOVFF     0xfd9,0xfe9                                                                                     
1047
0011c0   ffe9                                                                                                               
1048
0011c2   cfda     MOVFF     0xfda,0xfea                                                                                     
1049
0011c4   ffea                                                                                                               
1050
0011c6   cfee     MOVFF     0xfee,0xfe6                                                                                     
1051
0011c8   ffe6                                                                                                               
1052
0011ca   cfee     MOVFF     0xfee,0xfe6                                                                                     
1053
0011cc   ffe6                                                                                                               
1054
0011ce   cfee     MOVFF     0xfee,0xfe6                                                                                     
1055
0011d0   ffe6                                                                                                               
1056
0011d2   cfee     MOVFF     0xfee,0xfe6                                                                                     
1057
0011d4   ffe6                                                                                                               
1058
0011d6   cfee     MOVFF     0xfee,0xfe6                                                                                     
1059
0011d8   ffe6                                                                                                               
1060
0011da   cfee     MOVFF     0xfee,0xfe6                                                                                     
1061
0011dc   ffe6                                                                                                               
1062
0011de   cfee     MOVFF     0xfee,0xfe6                                                                                     
1063
0011e0   ffe6                                                                                                               
1064
0011e2   cfee     MOVFF     0xfee,0xfe6                                                                                     
1065
0011e4   ffe6                                                                                                               
1066
0011e6   cfee     MOVFF     0xfee,0xfe6                                                                                     
1067
0011e8   ffe6                                                                                                               
1068
0011ea   cfee     MOVFF     0xfee,0xfe6                                                                                     
1069
0011ec   ffe6                                                                                                               
1070
0011ee   cfee     MOVFF     0xfee,0xfe6                                                                                     
1071
0011f0   ffe6                                                                                                               
1072
0011f2   cfee     MOVFF     0xfee,0xfe6                                                                                     
1073
0011f4   ffe6                                                                                                               
1074
0011f6   cfee     MOVFF     0xfee,0xfe6                                                                                     
1075
0011f8   ffe6                                                                                                               
1076
0011fa   cfee     MOVFF     0xfee,0xfe6                                                                                     
1077
0011fc   ffe6                                                                                                               
1078
0011fe   cfee     MOVFF     0xfee,0xfe6                                                                                     
1079
001200   ffe6                                                                                                               
1080
001202   ec7c     CALL      0x16f8,0x0                                                                                      
1081
001204   f00b                                                                                                               
1082
001206   6e00     MOVWF     0x0,0x0                                                                                         
1083
001208   0e10     MOVLW     0x10                                                                                            
1084
00120a   5ee1     SUBWF     0xe1,0x1,0x0                                                                                    
1085
00120c   5000     MOVF      0x0,0x0,0x0                                                                                     
1086
00120e   0900     IORLW     0x0                                                                                             
1087
001210   e101     BNZ       0x1214                                                                                          
1088
001212   d7d3     BRA       0x11ba                                                                                          
108 johboh 1089
                                           			                                                                              F:\MCP\projects\CAN\canBase\Source\Main.c
109 johboh 1090
001214   ecfb     CALL      0x19f6,0x0     			heartbeat = tickGet();                                                        F:\MCP\projects\CAN\canBase\Source\Main.c
1091
001216   f00c                                                                                                               
1092
001218   c012     MOVFF     0x12,0x6b                                                                                       
1093
00121a   f06b                                                                                                               
1094
00121c   c013     MOVFF     0x13,0x6c                                                                                       
1095
00121e   f06c                                                                                                               
1096
001220   c014     MOVFF     0x14,0x6d                                                                                       
1097
001222   f06d                                                                                                               
1098
001224   c015     MOVFF     0x15,0x6e                                                                                       
1099
001226   f06e                                                                                                               
85 johboh 1100
                                           		}                                                                              F:\MCP\projects\CAN\canBase\Source\Main.c
109 johboh 1101
001228   ecfb     CALL      0x19f6,0x0     		if ((tickGet()-t)>TICK_SECOND)                                                 F:\MCP\projects\CAN\canBase\Source\Main.c
1102
00122a   f00c                                                                                                               
1103
00122c   0100     MOVLB     0x0                                                                                             
1104
00122e   5167     MOVF      0x67,0x0,0x1                                                                                    
1105
001230   5c12     SUBWF     0x12,0x0,0x0                                                                                    
1106
001232   6e00     MOVWF     0x0,0x0                                                                                         
1107
001234   5168     MOVF      0x68,0x0,0x1                                                                                    
1108
001236   5813     SUBWFB    0x13,0x0,0x0                                                                                    
1109
001238   6e01     MOVWF     0x1,0x0                                                                                         
1110
00123a   5169     MOVF      0x69,0x0,0x1                                                                                    
1111
00123c   5814     SUBWFB    0x14,0x0,0x0                                                                                    
1112
00123e   6e02     MOVWF     0x2,0x0                                                                                         
1113
001240   516a     MOVF      0x6a,0x0,0x1                                                                                    
1114
001242   5815     SUBWFB    0x15,0x0,0x0                                                                                    
1115
001244   6e03     MOVWF     0x3,0x0                                                                                         
1116
001246   80d8     BSF       0xd8,0x0,0x0                                                                                    
1117
001248   0e64     MOVLW     0x64                                                                                            
1118
00124a   5400     SUBFWB    0x0,0x0,0x0                                                                                     
1119
00124c   0e00     MOVLW     0x0                                                                                             
1120
00124e   5401     SUBFWB    0x1,0x0,0x0                                                                                     
1121
001250   0e00     MOVLW     0x0                                                                                             
1122
001252   5402     SUBFWB    0x2,0x0,0x0                                                                                     
1123
001254   0e00     MOVLW     0x0                                                                                             
1124
001256   5403     SUBFWB    0x3,0x0,0x0                                                                                     
1125
001258   e20b     BC        0x1270                                                                                          
108 johboh 1126
                                           		{                                                                              F:\MCP\projects\CAN\canBase\Source\Main.c
109 johboh 1127
00125a   7282     BTG       0x82,0x1,0x0   			LED0_IO=~LED0_IO;                                                             F:\MCP\projects\CAN\canBase\Source\Main.c
1128
00125c   ecfb     CALL      0x19f6,0x0     			t = tickGet();                                                                F:\MCP\projects\CAN\canBase\Source\Main.c
1129
00125e   f00c                                                                                                               
1130
001260   c012     MOVFF     0x12,0x67                                                                                       
1131
001262   f067                                                                                                               
1132
001264   c013     MOVFF     0x13,0x68                                                                                       
1133
001266   f068                                                                                                               
1134
001268   c014     MOVFF     0x14,0x69                                                                                       
1135
00126a   f069                                                                                                               
1136
00126c   c015     MOVFF     0x15,0x6a                                                                                       
1137
00126e   f06a                                                                                                               
108 johboh 1138
                                           		}                                                                              F:\MCP\projects\CAN\canBase\Source\Main.c
85 johboh 1139
                                           	}                                                                               F:\MCP\projects\CAN\canBase\Source\Main.c
109 johboh 1140
001272   0e0f     MOVLW     0xf            }                                                                                F:\MCP\projects\CAN\canBase\Source\Main.c
1141
001274   5ce1     SUBWF     0xe1,0x0,0x0                                                                                    
1142
001276   e202     BC        0x127c                                                                                          
1143
001278   6ae1     CLRF      0xe1,0x0                                                                                        
1144
00127a   52e5     MOVF      0xe5,0x1,0x0                                                                                    
1145
00127c   6ee1     MOVWF     0xe1,0x0                                                                                        
1146
00127e   52e5     MOVF      0xe5,0x1,0x0                                                                                    
1147
001280   cfe7     MOVFF     0xfe7,0xfd9                                                                                     
1148
001282   ffd9                                                                                                               
1149
001284   0012     RETURN    0x0                                                                                             
85 johboh 1150
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Main.c
1151
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Main.c
1152
                                           #pragma interrupt high_isr                                                       F:\MCP\projects\CAN\canBase\Source\Main.c
109 johboh 1153
001286   cfda     MOVFF     0xfda,0xfe4    void high_isr(void)                                                              F:\MCP\projects\CAN\canBase\Source\Main.c
1154
001288   ffe4                                                                                                               
1155
00128a   cfe2     MOVFF     0xfe2,0xfda                                                                                     
1156
00128c   ffda                                                                                                               
1157
00128e   cfe9     MOVFF     0xfe9,0xfe4                                                                                     
1158
001290   ffe4                                                                                                               
1159
001292   cfea     MOVFF     0xfea,0xfe4                                                                                     
1160
001294   ffe4                                                                                                               
1161
001296   cff6     MOVFF     0xff6,0xfe4                                                                                     
1162
001298   ffe4                                                                                                               
1163
00129a   cff7     MOVFF     0xff7,0xfe4                                                                                     
1164
00129c   ffe4                                                                                                               
1165
00129e   cff5     MOVFF     0xff5,0xfe4                                                                                     
1166
0012a0   ffe4                                                                                                               
1167
0012a2   cff3     MOVFF     0xff3,0xfe4                                                                                     
1168
0012a4   ffe4                                                                                                               
1169
0012a6   cff4     MOVFF     0xff4,0xfe4                                                                                     
1170
0012a8   ffe4                                                                                                               
1171
0012aa   cffa     MOVFF     0xffa,0xfe4                                                                                     
1172
0012ac   ffe4                                                                                                               
1173
0012ae   ee00     LFSR      0x0,0xe                                                                                         
1174
0012b0   f00e                                                                                                               
1175
0012b2   0e0b     MOVLW     0xb                                                                                             
1176
0012b4   04e8     DECF      0xe8,0x0,0x0                                                                                    
1177
0012b6   e303     BNC       0x12be                                                                                          
1178
0012b8   cfee     MOVFF     0xfee,0xfe4                                                                                     
1179
0012ba   ffe4                                                                                                               
1180
0012bc   d7fb     BRA       0x12b4                                                                                          
1181
0012be   ee00     LFSR      0x0,0x0                                                                                         
1182
0012c0   f000                                                                                                               
1183
0012c2   0e0e     MOVLW     0xe                                                                                             
1184
0012c4   04e8     DECF      0xe8,0x0,0x0                                                                                    
1185
0012c6   e303     BNC       0x12ce                                                                                          
1186
0012c8   cfee     MOVFF     0xfee,0xfe4                                                                                     
1187
0012ca   ffe4                                                                                                               
1188
0012cc   d7fb     BRA       0x12c4                                                                                          
1189
0012ce   52e6     MOVF      0xe6,0x1,0x0                                                                                    
85 johboh 1190
                                           {                                                                                F:\MCP\projects\CAN\canBase\Source\Main.c
109 johboh 1191
0012d0   0004     CLRWDT                   	ClrWdt();                                                                       F:\MCP\projects\CAN\canBase\Source\Main.c
85 johboh 1192
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Main.c
1193
                                           	#ifdef USE_CAN                                                                  F:\MCP\projects\CAN\canBase\Source\Main.c
109 johboh 1194
0012d2   ec91     CALL      0x1522,0x0     		canISR();                                                                      F:\MCP\projects\CAN\canBase\Source\Main.c
1195
0012d4   f00a                                                                                                               
85 johboh 1196
                                           	#endif                                                                          F:\MCP\projects\CAN\canBase\Source\Main.c
1197
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Main.c
109 johboh 1198
0012d6   ec05     CALL      0x1a0a,0x0     	tickUpdate();                                                                   F:\MCP\projects\CAN\canBase\Source\Main.c
1199
0012d8   f00d                                                                                                               
85 johboh 1200
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Main.c
109 johboh 1201
0012da   52e5     MOVF      0xe5,0x1,0x0   }                                                                                F:\MCP\projects\CAN\canBase\Source\Main.c
1202
0012dc   ee00     LFSR      0x0,0xd                                                                                         
1203
0012de   f00d                                                                                                               
1204
0012e0   0e0e     MOVLW     0xe                                                                                             
1205
0012e2   04e8     DECF      0xe8,0x0,0x0                                                                                    
1206
0012e4   e303     BNC       0x12ec                                                                                          
1207
0012e6   cfe5     MOVFF     0xfe5,0xfed                                                                                     
1208
0012e8   ffed                                                                                                               
1209
0012ea   d7fb     BRA       0x12e2                                                                                          
1210
0012ec   ee00     LFSR      0x0,0x18                                                                                        
1211
0012ee   f018                                                                                                               
1212
0012f0   0e0b     MOVLW     0xb                                                                                             
1213
0012f2   04e8     DECF      0xe8,0x0,0x0                                                                                    
1214
0012f4   e303     BNC       0x12fc                                                                                          
1215
0012f6   cfe5     MOVFF     0xfe5,0xfed                                                                                     
1216
0012f8   ffed                                                                                                               
1217
0012fa   d7fb     BRA       0x12f2                                                                                          
1218
0012fc   cfe5     MOVFF     0xfe5,0xffa                                                                                     
1219
0012fe   fffa                                                                                                               
1220
001300   cfe5     MOVFF     0xfe5,0xff4                                                                                     
1221
001302   fff4                                                                                                               
1222
001304   cfe5     MOVFF     0xfe5,0xff3                                                                                     
1223
001306   fff3                                                                                                               
1224
001308   cfe5     MOVFF     0xfe5,0xff5                                                                                     
1225
00130a   fff5                                                                                                               
1226
00130c   cfe5     MOVFF     0xfe5,0xff7                                                                                     
1227
00130e   fff7                                                                                                               
1228
001310   cfe5     MOVFF     0xfe5,0xff6                                                                                     
1229
001312   fff6                                                                                                               
1230
001314   cfe5     MOVFF     0xfe5,0xfea                                                                                     
1231
001316   ffea                                                                                                               
1232
001318   cfe5     MOVFF     0xfe5,0xfe9                                                                                     
1233
00131a   ffe9                                                                                                               
1234
00131c   cfe5     MOVFF     0xfe5,0xfda                                                                                     
1235
00131e   ffda                                                                                                               
1236
001320   0011     RETFIE    0x1                                                                                             
85 johboh 1237
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Main.c
89 johboh 1238
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Main.c
85 johboh 1239
                                           #pragma interrupt low_isr                                                        F:\MCP\projects\CAN\canBase\Source\Main.c
109 johboh 1240
001322   cfda     MOVFF     0xfda,0xfe4    void low_isr(void)                                                               F:\MCP\projects\CAN\canBase\Source\Main.c
1241
001324   ffe4                                                                                                               
1242
001326   cfe2     MOVFF     0xfe2,0xfda                                                                                     
1243
001328   ffda                                                                                                               
1244
00132a   52e6     MOVF      0xe6,0x1,0x0                                                                                    
85 johboh 1245
                                           {                                                                                F:\MCP\projects\CAN\canBase\Source\Main.c
1246
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Main.c
109 johboh 1247
00132c   52e5     MOVF      0xe5,0x1,0x0   }                                                                                F:\MCP\projects\CAN\canBase\Source\Main.c
1248
00132e   cfe5     MOVFF     0xfe5,0xfda                                                                                     
1249
001330   ffda                                                                                                               
1250
001332   0011     RETFIE    0x1                                                                                             
85 johboh 1251
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Main.c
1252
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Main.c
1253
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Main.c
1254
                                           /*                                                                               F:\MCP\projects\CAN\canBase\Source\Main.c
1255
                                           *	Function: mainInit                                                             F:\MCP\projects\CAN\canBase\Source\Main.c
1256
                                           *                                                                                F:\MCP\projects\CAN\canBase\Source\Main.c
1257
                                           *	Input:	none                                                                    F:\MCP\projects\CAN\canBase\Source\Main.c
1258
                                           *	Output: none                                                                   F:\MCP\projects\CAN\canBase\Source\Main.c
1259
                                           *	Pre-conditions: none                                                           F:\MCP\projects\CAN\canBase\Source\Main.c
1260
                                           *	Affects: Se code                                                               F:\MCP\projects\CAN\canBase\Source\Main.c
1261
                                           *	Depends: none.                                                                 F:\MCP\projects\CAN\canBase\Source\Main.c
1262
                                           */                                                                               F:\MCP\projects\CAN\canBase\Source\Main.c
1263
                                           void mainInit()                                                                  F:\MCP\projects\CAN\canBase\Source\Main.c
1264
                                           {                                                                                F:\MCP\projects\CAN\canBase\Source\Main.c
109 johboh 1265
001334   9294     BCF       0x94,0x1,0x0   	LED0_TRIS=0;	                                                                   F:\MCP\projects\CAN\canBase\Source\Main.c
85 johboh 1266
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Main.c
1267
                                           	// Enable Interrupts                                                            F:\MCP\projects\CAN\canBase\Source\Main.c
109 johboh 1268
001336   8ef2     BSF       0xf2,0x7,0x0       INTCONbits.GIEH = 1;                                                         F:\MCP\projects\CAN\canBase\Source\Main.c
1269
001338   8cf2     BSF       0xf2,0x6,0x0       INTCONbits.GIEL = 1;                                                         F:\MCP\projects\CAN\canBase\Source\Main.c
85 johboh 1270
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Main.c
1271
                                           	// Enable interrupt prirority                                                   F:\MCP\projects\CAN\canBase\Source\Main.c
109 johboh 1272
00133a   8ed0     BSF       0xd0,0x7,0x0   	RCONbits.IPEN=1;                                                                F:\MCP\projects\CAN\canBase\Source\Main.c
85 johboh 1273
                                           	                                                                                F:\MCP\projects\CAN\canBase\Source\Main.c
1274
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Main.c
109 johboh 1275
00133c   0012     RETURN    0x0            }                                                                                F:\MCP\projects\CAN\canBase\Source\Main.c
85 johboh 1276
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Main.c
1277
                                           /*                                                                               F:\MCP\projects\CAN\canBase\Source\Main.c
1278
                                           *	Function: canParse                                                             F:\MCP\projects\CAN\canBase\Source\Main.c
1279
                                           *                                                                                F:\MCP\projects\CAN\canBase\Source\Main.c
1280
                                           *	Input:	Received can message                                                    F:\MCP\projects\CAN\canBase\Source\Main.c
1281
                                           *	Output: none                                                                   F:\MCP\projects\CAN\canBase\Source\Main.c
1282
                                           *	Pre-conditions: canInit and received packet.                                   F:\MCP\projects\CAN\canBase\Source\Main.c
1283
                                           *	Affects: Sensors/actuators/etc. See code.                                      F:\MCP\projects\CAN\canBase\Source\Main.c
1284
                                           *	Depends: none.                                                                 F:\MCP\projects\CAN\canBase\Source\Main.c
1285
                                           */                                                                               F:\MCP\projects\CAN\canBase\Source\Main.c
1286
                                           #ifdef USE_CAN                                                                   F:\MCP\projects\CAN\canBase\Source\Main.c
109 johboh 1287
00133e   cfd9     MOVFF     0xfd9,0xfe6    void canParse(CAN_MESSAGE cm)                                                    F:\MCP\projects\CAN\canBase\Source\Main.c
1288
001340   ffe6                                                                                                               
1289
001342   cfe1     MOVFF     0xfe1,0xfd9                                                                                     
1290
001344   ffd9                                                                                                               
1291
001346   0e0f     MOVLW     0xf                                                                                             
1292
001348   26e1     ADDWF     0xe1,0x1,0x0                                                                                    
85 johboh 1293
                                           {                                                                                F:\MCP\projects\CAN\canBase\Source\Main.c
108 johboh 1294
                                           	CAN_MESSAGE outCm;                                                              F:\MCP\projects\CAN\canBase\Source\Main.c
89 johboh 1295
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Main.c
109 johboh 1296
00134a   0004     CLRWDT                   	ClrWdt();                                                                       F:\MCP\projects\CAN\canBase\Source\Main.c
108 johboh 1297
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Main.c
109 johboh 1298
00134c   0ef0     MOVLW     0xf0           	switch(cm.funct)                                                                F:\MCP\projects\CAN\canBase\Source\Main.c
1299
00134e   50db     MOVF      0xdb,0x0,0x0                                                                                    
1300
001350   e001     BZ        0x1354                                                                                          
1301
001352   d0b2     BRA       0x14b8                                                                                          
86 johboh 1302
                                           	{                                                                               F:\MCP\projects\CAN\canBase\Source\Main.c
1303
                                           		case FUNCT_BOOTLOADER:                                                         F:\MCP\projects\CAN\canBase\Source\Main.c
109 johboh 1304
001354   0ef3     MOVLW     0xf3           			if (cm.nid==MY_NID && ((((unsigned int)cm.data[BOOT_DATA_RID_HIGH_INDEX])<<8)+cm.data[BOOT_DATA_RID_LOW_INDEX])==MY_ID)  F:\MCP\projects\CAN\canBase\Source\Main.c
1305
001356   50db     MOVF      0xdb,0x0,0x0                                                                                    
1306
001358   0100     MOVLB     0x0                                                                                             
1307
00135a   5d62     SUBWF     0x62,0x0,0x1                                                                                    
1308
00135c   e001     BZ        0x1360                                                                                          
1309
00135e   d0ab     BRA       0x14b6                                                                                          
1310
001360   0efc     MOVLW     0xfc                                                                                            
1311
001362   cfdb     MOVFF     0xfdb,0x2                                                                                       
1312
001364   f002                                                                                                               
1313
001366   c002     MOVFF     0x2,0x3                                                                                         
1314
001368   f003                                                                                                               
1315
00136a   6a02     CLRF      0x2,0x0                                                                                         
1316
00136c   0efb     MOVLW     0xfb                                                                                            
1317
00136e   50db     MOVF      0xdb,0x0,0x0                                                                                    
1318
001370   0100     MOVLB     0x0                                                                                             
1319
001372   2402     ADDWF     0x2,0x0,0x0                                                                                     
1320
001374   6e00     MOVWF     0x0,0x0                                                                                         
1321
001376   0e00     MOVLW     0x0                                                                                             
1322
001378   2003     ADDWFC    0x3,0x0,0x0                                                                                     
1323
00137a   6e01     MOVWF     0x1,0x0                                                                                         
1324
00137c   0100     MOVLB     0x0                                                                                             
1325
00137e   5160     MOVF      0x60,0x0,0x1                                                                                    
1326
001380   1800     XORWF     0x0,0x0,0x0                                                                                     
1327
001382   e102     BNZ       0x1388                                                                                          
1328
001384   5161     MOVF      0x61,0x0,0x1                                                                                    
1329
001386   1801     XORWF     0x1,0x0,0x0                                                                                     
1330
001388   e001     BZ        0x138c                                                                                          
1331
00138a   d095     BRA       0x14b6                                                                                          
103 johboh 1332
                                           			{                                                                             F:\MCP\projects\CAN\canBase\Source\Main.c
109 johboh 1333
00138c   0ef1     MOVLW     0xf1           				switch(cm.funcc)                                                             F:\MCP\projects\CAN\canBase\Source\Main.c
1334
00138e   cfdb     MOVFF     0xfdb,0x14                                                                                      
1335
001390   f014                                                                                                               
1336
001392   0ef2     MOVLW     0xf2                                                                                            
1337
001394   cfdb     MOVFF     0xfdb,0x15                                                                                      
1338
001396   f015                                                                                                               
1339
001398   0e06     MOVLW     0x6                                                                                             
1340
00139a   1814     XORWF     0x14,0x0,0x0                                                                                    
1341
00139c   e101     BNZ       0x13a0                                                                                          
1342
00139e   5015     MOVF      0x15,0x0,0x0                                                                                    
1343
0013a0   e008     BZ        0x13b2                                                                                          
1344
0013a2   0e01     MOVLW     0x1                                                                                             
1345
0013a4   1814     XORWF     0x14,0x0,0x0                                                                                    
1346
0013a6   e101     BNZ       0x13aa                                                                                          
1347
0013a8   5015     MOVF      0x15,0x0,0x0                                                                                    
1348
0013aa   e001     BZ        0x13ae                                                                                          
1349
0013ac   d084     BRA       0x14b6                                                                                          
103 johboh 1350
                                           				{                                                                            F:\MCP\projects\CAN\canBase\Source\Main.c
109 johboh 1351
0013ae   00ff     RESET                    					case FUNCC_BOOT_INIT: Reset(); break; //User whant to program me, reset me. F:\MCP\projects\CAN\canBase\Source\Main.c
1352
0013b0   d082     BRA       0x14b6                                                                                          
103 johboh 1353
                                           					case FUNCC_BOOT_SET_ID:                                                     F:\MCP\projects\CAN\canBase\Source\Main.c
1354
                                           						// Change my ID and NID                                                    F:\MCP\projects\CAN\canBase\Source\Main.c
109 johboh 1355
0013b2   0ef8     MOVLW     0xf8           						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\Main.c
1356
0013b4   cfdb     MOVFF     0xfdb,0x0                                                                                       
1357
0013b6   f000                                                                                                               
1358
0013b8   c000     MOVFF     0x0,0x1                                                                                         
1359
0013ba   f001                                                                                                               
1360
0013bc   6a00     CLRF      0x0,0x0                                                                                         
1361
0013be   0ef7     MOVLW     0xf7                                                                                            
1362
0013c0   50db     MOVF      0xdb,0x0,0x0                                                                                    
1363
0013c2   0100     MOVLB     0x0                                                                                             
1364
0013c4   2400     ADDWF     0x0,0x0,0x0                                                                                     
1365
0013c6   6f60     MOVWF     0x60,0x1                                                                                        
1366
0013c8   0e00     MOVLW     0x0                                                                                             
1367
0013ca   2001     ADDWFC    0x1,0x0,0x0                                                                                     
1368
0013cc   6f61     MOVWF     0x61,0x1                                                                                        
1369
0013ce   0ef9     MOVLW     0xf9           						MY_NID=cm.data[BOOT_DATA_NEW_NID_INDEX];                                   F:\MCP\projects\CAN\canBase\Source\Main.c
1370
0013d0   cfdb     MOVFF     0xfdb,0x62                                                                                      
1371
0013d2   f062                                                                                                               
1372
0013d4   0ef8     MOVLW     0xf8           						EEWrite(NODE_ID_EE+1,cm.data[BOOT_DATA_NEW_ID_HIGH_INDEX]);                F:\MCP\projects\CAN\canBase\Source\Main.c
1373
0013d6   cfdb     MOVFF     0xfdb,0xfe6                                                                                     
1374
0013d8   ffe6                                                                                                               
1375
0013da   0e01     MOVLW     0x1                                                                                             
1376
0013dc   6ee6     MOVWF     0xe6,0x0                                                                                        
1377
0013de   6ae6     CLRF      0xe6,0x0                                                                                        
1378
0013e0   ec71     CALL      0x18e2,0x0                                                                                      
1379
0013e2   f00c                                                                                                               
1380
0013e4   52e5     MOVF      0xe5,0x1,0x0                                                                                    
1381
0013e6   52e5     MOVF      0xe5,0x1,0x0                                                                                    
1382
0013e8   52e5     MOVF      0xe5,0x1,0x0                                                                                    
1383
0013ea   0ef7     MOVLW     0xf7           						EEWrite(NODE_ID_EE+2,cm.data[BOOT_DATA_NEW_ID_LOW_INDEX]);                 F:\MCP\projects\CAN\canBase\Source\Main.c
1384
0013ec   cfdb     MOVFF     0xfdb,0xfe6                                                                                     
1385
0013ee   ffe6                                                                                                               
1386
0013f0   0e02     MOVLW     0x2                                                                                             
1387
0013f2   6ee6     MOVWF     0xe6,0x0                                                                                        
1388
0013f4   6ae6     CLRF      0xe6,0x0                                                                                        
1389
0013f6   ec71     CALL      0x18e2,0x0                                                                                      
1390
0013f8   f00c                                                                                                               
1391
0013fa   52e5     MOVF      0xe5,0x1,0x0                                                                                    
1392
0013fc   52e5     MOVF      0xe5,0x1,0x0                                                                                    
1393
0013fe   52e5     MOVF      0xe5,0x1,0x0                                                                                    
1394
001400   0ef9     MOVLW     0xf9           						EEWrite(NODE_ID_EE+3,cm.data[BOOT_DATA_NEW_NID_INDEX]);                    F:\MCP\projects\CAN\canBase\Source\Main.c
1395
001402   cfdb     MOVFF     0xfdb,0xfe6                                                                                     
1396
001404   ffe6                                                                                                               
1397
001406   0e03     MOVLW     0x3                                                                                             
1398
001408   6ee6     MOVWF     0xe6,0x0                                                                                        
1399
00140a   6ae6     CLRF      0xe6,0x0                                                                                        
1400
00140c   ec71     CALL      0x18e2,0x0                                                                                      
1401
00140e   f00c                                                                                                               
1402
001410   52e5     MOVF      0xe5,0x1,0x0                                                                                    
1403
001412   52e5     MOVF      0xe5,0x1,0x0                                                                                    
1404
001414   52e5     MOVF      0xe5,0x1,0x0                                                                                    
1405
001416   0e2a     MOVLW     0x2a           						EEWrite(NODE_ID_EE,NODE_HAS_ID);                                           F:\MCP\projects\CAN\canBase\Source\Main.c
1406
001418   6ee6     MOVWF     0xe6,0x0                                                                                        
1407
00141a   0e00     MOVLW     0x0                                                                                             
1408
00141c   6ee6     MOVWF     0xe6,0x0                                                                                        
1409
00141e   6ae6     CLRF      0xe6,0x0                                                                                        
1410
001420   ec71     CALL      0x18e2,0x0                                                                                      
1411
001422   f00c                                                                                                               
1412
001424   52e5     MOVF      0xe5,0x1,0x0                                                                                    
1413
001426   52e5     MOVF      0xe5,0x1,0x0                                                                                    
1414
001428   52e5     MOVF      0xe5,0x1,0x0                                                                                    
108 johboh 1415
                                           						// Send ack with new id.                                                   F:\MCP\projects\CAN\canBase\Source\Main.c
109 johboh 1416
00142a   6adf     CLRF      0xdf,0x0       						outCm.funct 					= FUNCT_BOOTLOADER;                                       F:\MCP\projects\CAN\canBase\Source\Main.c
1417
00142c   0e04     MOVLW     0x4            						outCm.funcc 					= FUNCC_BOOT_ACK;                                         F:\MCP\projects\CAN\canBase\Source\Main.c
1418
00142e   6ef3     MOVWF     0xf3,0x0                                                                                        
1419
001430   0e01     MOVLW     0x1                                                                                             
1420
001432   cff3     MOVFF     0xff3,0xfdb                                                                                     
1421
001434   ffdb                                                                                                               
1422
001436   0e02     MOVLW     0x2                                                                                             
1423
001438   6adb     CLRF      0xdb,0x0                                                                                        
1424
00143a   0e03     MOVLW     0x3            						outCm.nid   					= MY_NID;                                                 F:\MCP\projects\CAN\canBase\Source\Main.c
1425
00143c   c062     MOVFF     0x62,0xfdb                                                                                      
1426
00143e   ffdb                                                                                                               
1427
001440   0e04     MOVLW     0x4            						outCm.sid   					= MY_ID;                                                  F:\MCP\projects\CAN\canBase\Source\Main.c
1428
001442   c060     MOVFF     0x60,0xfdb                                                                                      
1429
001444   ffdb                                                                                                               
1430
001446   0e05     MOVLW     0x5                                                                                             
1431
001448   c061     MOVFF     0x61,0xfdb                                                                                      
1432
00144a   ffdb                                                                                                               
1433
00144c   0e08     MOVLW     0x8            						outCm.data_length 				= 8;                                                 F:\MCP\projects\CAN\canBase\Source\Main.c
1434
00144e   6ef3     MOVWF     0xf3,0x0                                                                                        
1435
001450   0e06     MOVLW     0x6                                                                                             
1436
001452   cff3     MOVFF     0xff3,0xfdb                                                                                     
1437
001454   ffdb                                                                                                               
1438
001456   0e0b     MOVLW     0xb            						outCm.data[BOOT_DATA_ERR_INDEX]	= ACK_ERR_NO_ERROR;                        F:\MCP\projects\CAN\canBase\Source\Main.c
1439
001458   6adb     CLRF      0xdb,0x0                                                                                        
1440
00145a   0e02     MOVLW     0x2            						while(!canSendMessage(outCm,PRIO_HIGH));                                   F:\MCP\projects\CAN\canBase\Source\Main.c
1441
00145c   6ee6     MOVWF     0xe6,0x0                                                                                        
1442
00145e   cfd9     MOVFF     0xfd9,0xfe9                                                                                     
1443
001460   ffe9                                                                                                               
1444
001462   cfda     MOVFF     0xfda,0xfea                                                                                     
1445
001464   ffea                                                                                                               
1446
001466   cfee     MOVFF     0xfee,0xfe6                                                                                     
1447
001468   ffe6                                                                                                               
1448
00146a   cfee     MOVFF     0xfee,0xfe6                                                                                     
1449
00146c   ffe6                                                                                                               
1450
00146e   cfee     MOVFF     0xfee,0xfe6                                                                                     
1451
001470   ffe6                                                                                                               
1452
001472   cfee     MOVFF     0xfee,0xfe6                                                                                     
1453
001474   ffe6                                                                                                               
1454
001476   cfee     MOVFF     0xfee,0xfe6                                                                                     
1455
001478   ffe6                                                                                                               
1456
00147a   cfee     MOVFF     0xfee,0xfe6                                                                                     
1457
00147c   ffe6                                                                                                               
1458
00147e   cfee     MOVFF     0xfee,0xfe6                                                                                     
1459
001480   ffe6                                                                                                               
1460
001482   cfee     MOVFF     0xfee,0xfe6                                                                                     
1461
001484   ffe6                                                                                                               
1462
001486   cfee     MOVFF     0xfee,0xfe6                                                                                     
1463
001488   ffe6                                                                                                               
1464
00148a   cfee     MOVFF     0xfee,0xfe6                                                                                     
1465
00148c   ffe6                                                                                                               
1466
00148e   cfee     MOVFF     0xfee,0xfe6                                                                                     
1467
001490   ffe6                                                                                                               
1468
001492   cfee     MOVFF     0xfee,0xfe6                                                                                     
1469
001494   ffe6                                                                                                               
1470
001496   cfee     MOVFF     0xfee,0xfe6                                                                                     
1471
001498   ffe6                                                                                                               
1472
00149a   cfee     MOVFF     0xfee,0xfe6                                                                                     
1473
00149c   ffe6                                                                                                               
1474
00149e   cfee     MOVFF     0xfee,0xfe6                                                                                     
1475
0014a0   ffe6                                                                                                               
1476
0014a2   ec7c     CALL      0x16f8,0x0                                                                                      
1477
0014a4   f00b                                                                                                               
1478
0014a6   6e00     MOVWF     0x0,0x0                                                                                         
1479
0014a8   0e10     MOVLW     0x10                                                                                            
1480
0014aa   5ee1     SUBWF     0xe1,0x1,0x0                                                                                    
1481
0014ac   5000     MOVF      0x0,0x0,0x0                                                                                     
1482
0014ae   0900     IORLW     0x0                                                                                             
1483
0014b0   e101     BNZ       0x14b4                                                                                          
1484
0014b2   d7d3     BRA       0x145a                                                                                          
1485
0014b4   d000     BRA       0x14b6         					break;                                                                      F:\MCP\projects\CAN\canBase\Source\Main.c
103 johboh 1486
                                           				}                                                                            F:\MCP\projects\CAN\canBase\Source\Main.c
1487
                                           			}                                                                             F:\MCP\projects\CAN\canBase\Source\Main.c
1488
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Main.c
1489
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Main.c
109 johboh 1490
0014b6   d000     BRA       0x14b8         		break;                                                                         F:\MCP\projects\CAN\canBase\Source\Main.c
86 johboh 1491
                                           	}                                                                               F:\MCP\projects\CAN\canBase\Source\Main.c
109 johboh 1492
0014b8   0e0f     MOVLW     0xf            }                                                                                F:\MCP\projects\CAN\canBase\Source\Main.c
1493
0014ba   5ce1     SUBWF     0xe1,0x0,0x0                                                                                    
1494
0014bc   e202     BC        0x14c2                                                                                          
1495
0014be   6ae1     CLRF      0xe1,0x0                                                                                        
1496
0014c0   52e5     MOVF      0xe5,0x1,0x0                                                                                    
1497
0014c2   6ee1     MOVWF     0xe1,0x0                                                                                        
1498
0014c4   52e5     MOVF      0xe5,0x1,0x0                                                                                    
1499
0014c6   cfe7     MOVFF     0xfe7,0xfd9                                                                                     
1500
0014c8   ffd9                                                                                                               
1501
0014ca   0012     RETURN    0x0                                                                                             
86 johboh 1502
                                           #endif                                                                           F:\MCP\projects\CAN\canBase\Source\Main.c
85 johboh 1503
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Main.c
1504
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Main.c
86 johboh 1505
                                           // Below are mandantory when using bootloader                                    F:\MCP\projects\CAN\canBase\Source\Main.c
1506
                                           // define DEBUG_MODE to use without bootloader.                                  F:\MCP\projects\CAN\canBase\Source\Main.c
85 johboh 1507
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Main.c
1508
                                           #ifndef DEBUG_MODE                                                               F:\MCP\projects\CAN\canBase\Source\Main.c
1509
                                           extern void _startup (void);                                                     F:\MCP\projects\CAN\canBase\Source\Main.c
1510
                                           #pragma code _RESET_INTERRUPT_VECTOR = 0x001000                                  F:\MCP\projects\CAN\canBase\Source\Main.c
1511
                                           void _reset (void)                                                               F:\MCP\projects\CAN\canBase\Source\Main.c
1512
                                           {                                                                                F:\MCP\projects\CAN\canBase\Source\Main.c
109 johboh 1513
001000   ef13     GOTO      0x1a26             _asm goto _startup _endasm                                                   F:\MCP\projects\CAN\canBase\Source\Main.c
1514
001002   f00d                                                                                                               
85 johboh 1515
001004   0012     RETURN    0x0            }                                                                                F:\MCP\projects\CAN\canBase\Source\Main.c
1516
                                           #pragma code                                                                     F:\MCP\projects\CAN\canBase\Source\Main.c
1517
                                           #endif                                                                           F:\MCP\projects\CAN\canBase\Source\Main.c
1518
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Main.c
1519
                                           #pragma code _HIGH_INTERRUPT_VECTOR = 0x001008                                   F:\MCP\projects\CAN\canBase\Source\Main.c
1520
                                           void _high_ISR (void)                                                            F:\MCP\projects\CAN\canBase\Source\Main.c
1521
                                           {                                                                                F:\MCP\projects\CAN\canBase\Source\Main.c
109 johboh 1522
001008   ef43     GOTO      0x1286         	_asm GOTO high_isr _endasm                                                      F:\MCP\projects\CAN\canBase\Source\Main.c
1523
00100a   f009                                                                                                               
85 johboh 1524
00100c   0012     RETURN    0x0            }                                                                                F:\MCP\projects\CAN\canBase\Source\Main.c
1525
                                           #pragma code                                                                     F:\MCP\projects\CAN\canBase\Source\Main.c
1526
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Main.c
1527
                                           #pragma code _LOW_INTERRUPT_VECTOR = 0x001018                                    F:\MCP\projects\CAN\canBase\Source\Main.c
1528
                                           void _low_ISR (void)                                                             F:\MCP\projects\CAN\canBase\Source\Main.c
1529
                                           {                                                                                F:\MCP\projects\CAN\canBase\Source\Main.c
109 johboh 1530
001018   ef91     GOTO      0x1322             _asm GOTO low_isr _endasm                                                    F:\MCP\projects\CAN\canBase\Source\Main.c
108 johboh 1531
00101a   f009                                                                                                               
85 johboh 1532
00101c   0012     RETURN    0x0            }                                                                                F:\MCP\projects\CAN\canBase\Source\Main.c
1533
                                           #pragma code                                                                     F:\MCP\projects\CAN\canBase\Source\Main.c
95 johboh 1534
                                           /*********************************************************************           F:\MCP\projects\CAN\Include\EEAccess.c
1535
                                            *                                                                               F:\MCP\projects\CAN\Include\EEAccess.c
1536
                                            *   Functions for reading and writing to EEPROM.                                F:\MCP\projects\CAN\Include\EEAccess.c
1537
                                            *                                                                               F:\MCP\projects\CAN\Include\EEAccess.c
1538
                                            *********************************************************************           F:\MCP\projects\CAN\Include\EEAccess.c
1539
                                            * FileName:        	$HeadURL: http://svn.arune.se/svn/HomeAutomation/trunk/EmbeddedSoftware/PIC/Include/EEAccess.c $ F:\MCP\projects\CAN\Include\EEAccess.c
1540
                                            * Last changed:	$LastChangedDate: 2006-11-14 20:15:02 +0100 (ti, 14 nov 2006) $ F:\MCP\projects\CAN\Include\EEAccess.c
1541
                                            * By:			$LastChangedBy: johboh $                                                F:\MCP\projects\CAN\Include\EEAccess.c
1542
                                            * Revision:		$Revision: 94 $                                                    F:\MCP\projects\CAN\Include\EEAccess.c
1543
                                            ********************************************************************/           F:\MCP\projects\CAN\Include\EEAccess.c
1544
                                           #include <p18cxxx.h>                                                             F:\MCP\projects\CAN\Include\EEAccess.c
1545
                                           #include <EEaccess.h>                                                            F:\MCP\projects\CAN\Include\EEAccess.c
1546
                                                                                                                            F:\MCP\projects\CAN\Include\EEAccess.c
109 johboh 1547
001898   cfd9     MOVFF     0xfd9,0xfe6    BYTE EERead(WORD addr)                                                           F:\MCP\projects\CAN\Include\EEAccess.c
1548
00189a   ffe6                                                                                                               
1549
00189c   cfe1     MOVFF     0xfe1,0xfd9                                                                                     
1550
00189e   ffd9                                                                                                               
95 johboh 1551
                                           {                                                                                F:\MCP\projects\CAN\Include\EEAccess.c
109 johboh 1552
0018a0   0efd     MOVLW     0xfd           	EEADRH=(BYTE)(addr>>8);                                                         F:\MCP\projects\CAN\Include\EEAccess.c
1553
0018a2   cfdb     MOVFF     0xfdb,0x0                                                                                       
1554
0018a4   f000                                                                                                               
1555
0018a6   0efe     MOVLW     0xfe                                                                                            
1556
0018a8   cfdb     MOVFF     0xfdb,0x1                                                                                       
1557
0018aa   f001                                                                                                               
1558
0018ac   c001     MOVFF     0x1,0x0                                                                                         
1559
0018ae   f000                                                                                                               
1560
0018b0   6a01     CLRF      0x1,0x0                                                                                         
1561
0018b2   5000     MOVF      0x0,0x0,0x0                                                                                     
1562
0018b4   6eaa     MOVWF     0xaa,0x0                                                                                        
1563
0018b6   0eff     MOVLW     0xff           	EEADR=(BYTE)(addr & 0xFF);                                                      F:\MCP\projects\CAN\Include\EEAccess.c
1564
0018b8   6ee7     MOVWF     0xe7,0x0                                                                                        
1565
0018ba   0efd     MOVLW     0xfd                                                                                            
1566
0018bc   cfdb     MOVFF     0xfdb,0x0                                                                                       
1567
0018be   f000                                                                                                               
1568
0018c0   0efe     MOVLW     0xfe                                                                                            
1569
0018c2   cfdb     MOVFF     0xfdb,0x1                                                                                       
1570
0018c4   f001                                                                                                               
1571
0018c6   50e7     MOVF      0xe7,0x0,0x0                                                                                    
1572
0018c8   1600     ANDWF     0x0,0x1,0x0                                                                                     
1573
0018ca   6a01     CLRF      0x1,0x0                                                                                         
1574
0018cc   5000     MOVF      0x0,0x0,0x0                                                                                     
1575
0018ce   6ea9     MOVWF     0xa9,0x0                                                                                        
1576
0018d0   9ea6     BCF       0xa6,0x7,0x0   	EECON1bits.EEPGD=0;                                                             F:\MCP\projects\CAN\Include\EEAccess.c
1577
0018d2   9ca6     BCF       0xa6,0x6,0x0   	EECON1bits.CFGS=0;                                                              F:\MCP\projects\CAN\Include\EEAccess.c
1578
0018d4   80a6     BSF       0xa6,0x0,0x0   	EECON1bits.RD=1;                                                                F:\MCP\projects\CAN\Include\EEAccess.c
1579
0018d6   50a8     MOVF      0xa8,0x0,0x0   	return EEDATA;	                                                                 F:\MCP\projects\CAN\Include\EEAccess.c
1580
0018d8   d000     BRA       0x18da                                                                                          
1581
0018da   52e5     MOVF      0xe5,0x1,0x0   }                                                                                F:\MCP\projects\CAN\Include\EEAccess.c
1582
0018dc   cfe7     MOVFF     0xfe7,0xfd9                                                                                     
1583
0018de   ffd9                                                                                                               
1584
0018e0   0012     RETURN    0x0                                                                                             
95 johboh 1585
                                                                                                                            F:\MCP\projects\CAN\Include\EEAccess.c
1586
                                                                                                                            F:\MCP\projects\CAN\Include\EEAccess.c
109 johboh 1587
0018e2   cfd9     MOVFF     0xfd9,0xfe6    void EEWrite(WORD addr,BYTE data)                                                F:\MCP\projects\CAN\Include\EEAccess.c
1588
0018e4   ffe6                                                                                                               
1589
0018e6   cfe1     MOVFF     0xfe1,0xfd9                                                                                     
1590
0018e8   ffd9                                                                                                               
95 johboh 1591
                                           {                                                                                F:\MCP\projects\CAN\Include\EEAccess.c
109 johboh 1592
0018ea   98a1     BCF       0xa1,0x4,0x0   	PIR2bits.EEIF=0;                                                                F:\MCP\projects\CAN\Include\EEAccess.c
1593
0018ec   0efd     MOVLW     0xfd           	EEADRH=(BYTE)(addr>>8);                                                         F:\MCP\projects\CAN\Include\EEAccess.c
1594
0018ee   cfdb     MOVFF     0xfdb,0x0                                                                                       
1595
0018f0   f000                                                                                                               
1596
0018f2   0efe     MOVLW     0xfe                                                                                            
1597
0018f4   cfdb     MOVFF     0xfdb,0x1                                                                                       
1598
0018f6   f001                                                                                                               
1599
0018f8   c001     MOVFF     0x1,0x0                                                                                         
1600
0018fa   f000                                                                                                               
1601
0018fc   6a01     CLRF      0x1,0x0                                                                                         
1602
0018fe   5000     MOVF      0x0,0x0,0x0                                                                                     
1603
001900   6eaa     MOVWF     0xaa,0x0                                                                                        
1604
001902   0eff     MOVLW     0xff           	EEADR=(BYTE)(addr & 0xFF);                                                      F:\MCP\projects\CAN\Include\EEAccess.c
1605
001904   6ee7     MOVWF     0xe7,0x0                                                                                        
1606
001906   0efd     MOVLW     0xfd                                                                                            
1607
001908   cfdb     MOVFF     0xfdb,0x0                                                                                       
1608
00190a   f000                                                                                                               
1609
00190c   0efe     MOVLW     0xfe                                                                                            
1610
00190e   cfdb     MOVFF     0xfdb,0x1                                                                                       
1611
001910   f001                                                                                                               
1612
001912   50e7     MOVF      0xe7,0x0,0x0                                                                                    
1613
001914   1600     ANDWF     0x0,0x1,0x0                                                                                     
1614
001916   6a01     CLRF      0x1,0x0                                                                                         
1615
001918   5000     MOVF      0x0,0x0,0x0                                                                                     
1616
00191a   6ea9     MOVWF     0xa9,0x0                                                                                        
1617
00191c   0efc     MOVLW     0xfc           	EEDATA=data;                                                                    F:\MCP\projects\CAN\Include\EEAccess.c
1618
00191e   50db     MOVF      0xdb,0x0,0x0                                                                                    
1619
001920   6ea8     MOVWF     0xa8,0x0                                                                                        
1620
001922   9ea6     BCF       0xa6,0x7,0x0   	EECON1bits.EEPGD=0;                                                             F:\MCP\projects\CAN\Include\EEAccess.c
1621
001924   9ca6     BCF       0xa6,0x6,0x0   	EECON1bits.CFGS=0;                                                              F:\MCP\projects\CAN\Include\EEAccess.c
1622
001926   84a6     BSF       0xa6,0x2,0x0   	EECON1bits.WREN=1;                                                              F:\MCP\projects\CAN\Include\EEAccess.c
1623
001928   9ef2     BCF       0xf2,0x7,0x0   	INTCONbits.GIE=0;                                                               F:\MCP\projects\CAN\Include\EEAccess.c
1624
00192a   0e55     MOVLW     0x55           	EECON2=0x55;                                                                    F:\MCP\projects\CAN\Include\EEAccess.c
1625
00192c   6ea7     MOVWF     0xa7,0x0                                                                                        
1626
00192e   0eaa     MOVLW     0xaa           	EECON2=0xAA;                                                                    F:\MCP\projects\CAN\Include\EEAccess.c
1627
001930   6ea7     MOVWF     0xa7,0x0                                                                                        
1628
001932   82a6     BSF       0xa6,0x1,0x0   	EECON1bits.WR=1;                                                                F:\MCP\projects\CAN\Include\EEAccess.c
1629
001934   8ef2     BSF       0xf2,0x7,0x0   	INTCONbits.GIE=1;                                                               F:\MCP\projects\CAN\Include\EEAccess.c
1630
001936   a8a1     BTFSS     0xa1,0x4,0x0   	while(!PIR2bits.EEIF);                                                          F:\MCP\projects\CAN\Include\EEAccess.c
1631
001938   d7fe     BRA       0x1936                                                                                          
1632
00193a   94a6     BCF       0xa6,0x2,0x0   	EECON1bits.WREN=0;                                                              F:\MCP\projects\CAN\Include\EEAccess.c
1633
00193c   52e5     MOVF      0xe5,0x1,0x0   }                                                                                F:\MCP\projects\CAN\Include\EEAccess.c
1634
00193e   cfe7     MOVFF     0xfe7,0xfd9                                                                                     
1635
001940   ffd9                                                                                                               
1636
001942   0012     RETURN    0x0