Subversion Repositories HomeAutomation

Rev

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

Rev Author Line No. Line
51 johboh 1
MP2COD 4.02, COFF to COD File Converter
2
Copyright (c) 2006 Microchip Technology Inc.
53 johboh 3
Listing File Generated: Mon Oct 23 22:58:01 2006
51 johboh 4
 
5
 
6
Address  Value    Disassembly              Source                                                                           File
7
-------  -------  -----------------------  -------------------------------------------------------------------------------  -----
8
                                           /*********************************************************************           F:\MCP\projects\CAN\canToSerial\Source\Main.c
9
                                            *                                                                               F:\MCP\projects\CAN\canToSerial\Source\Main.c
10
                                            *                  Main application                                             F:\MCP\projects\CAN\canToSerial\Source\Main.c
11
                                            *                                                                               F:\MCP\projects\CAN\canToSerial\Source\Main.c
12
                                            *********************************************************************           F:\MCP\projects\CAN\canToSerial\Source\Main.c
13
                                            * FileName:        Main.c                                                       F:\MCP\projects\CAN\canToSerial\Source\Main.c
14
                                            *                                                                               F:\MCP\projects\CAN\canToSerial\Source\Main.c
15
                                            * Author               Date    Comment                                          F:\MCP\projects\CAN\canToSerial\Source\Main.c
16
                                            *~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~           F:\MCP\projects\CAN\canToSerial\Source\Main.c
17
                                            * Johan Böhlin     21-10-06 	Original        (Rev 1.0)                          F:\MCP\projects\CAN\canToSerial\Source\Main.c
18
                                            ********************************************************************/           F:\MCP\projects\CAN\canToSerial\Source\Main.c
19
                                                                                                                            F:\MCP\projects\CAN\canToSerial\Source\Main.c
53 johboh 20
                                           #include <compiler.h>                                                            F:\MCP\projects\CAN\canToSerial\Source\Main.c
21
                                           #include <stackTasks.h>                                                          F:\MCP\projects\CAN\canToSerial\Source\Main.c
22
                                           #include <Tick.h>                                                                F:\MCP\projects\CAN\canToSerial\Source\Main.c
51 johboh 23
                                                                                                                            F:\MCP\projects\CAN\canToSerial\Source\Main.c
24
                                           #ifdef USE_CAN                                                                   F:\MCP\projects\CAN\canToSerial\Source\Main.c
53 johboh 25
                                           	#include <CAN.h>                                                                F:\MCP\projects\CAN\canToSerial\Source\Main.c
51 johboh 26
                                           #endif                                                                           F:\MCP\projects\CAN\canToSerial\Source\Main.c
27
                                                                                                                            F:\MCP\projects\CAN\canToSerial\Source\Main.c
28
                                           #ifdef USE_UART                                                                  F:\MCP\projects\CAN\canToSerial\Source\Main.c
53 johboh 29
                                           	#include <uart.h>                                                               F:\MCP\projects\CAN\canToSerial\Source\Main.c
51 johboh 30
                                           #endif                                                                           F:\MCP\projects\CAN\canToSerial\Source\Main.c
31
                                                                                                                            F:\MCP\projects\CAN\canToSerial\Source\Main.c
32
                                                                                                                            F:\MCP\projects\CAN\canToSerial\Source\Main.c
33
                                                                                                                            F:\MCP\projects\CAN\canToSerial\Source\Main.c
34
                                           static void mainInit(void);                                                      F:\MCP\projects\CAN\canToSerial\Source\Main.c
35
                                                                                                                            F:\MCP\projects\CAN\canToSerial\Source\Main.c
36
                                                                                                                            F:\MCP\projects\CAN\canToSerial\Source\Main.c
37
                                           void main()                                                                      F:\MCP\projects\CAN\canToSerial\Source\Main.c
38
                                           {                                                                                F:\MCP\projects\CAN\canToSerial\Source\Main.c
39
                                           	static TICK t = 0;                                                              F:\MCP\projects\CAN\canToSerial\Source\Main.c
40
                                                                                                                            F:\MCP\projects\CAN\canToSerial\Source\Main.c
41
                                           	// Inits                                                                        F:\MCP\projects\CAN\canToSerial\Source\Main.c
42
                                                                                                                            F:\MCP\projects\CAN\canToSerial\Source\Main.c
43
000500   d874     RCALL     0x5ea          	mainInit();                                                                     F:\MCP\projects\CAN\canToSerial\Source\Main.c
44
                                                                                                                            F:\MCP\projects\CAN\canToSerial\Source\Main.c
45
                                           	#ifdef USE_CAN                                                                  F:\MCP\projects\CAN\canToSerial\Source\Main.c
46
000502   ec22     CALL      0x44,0x0       		canInit();                                                                     F:\MCP\projects\CAN\canToSerial\Source\Main.c
47
000504   f000                                                                                                               
48
                                           	#endif                                                                          F:\MCP\projects\CAN\canToSerial\Source\Main.c
49
                                                                                                                            F:\MCP\projects\CAN\canToSerial\Source\Main.c
50
                                           	#ifdef USE_UART                                                                 F:\MCP\projects\CAN\canToSerial\Source\Main.c
51
000506   ec83     CALL      0x906,0x0      		uartInit();                                                                    F:\MCP\projects\CAN\canToSerial\Source\Main.c
52
000508   f004                                                                                                               
53
                                           	#endif                                                                          F:\MCP\projects\CAN\canToSerial\Source\Main.c
54
                                                                                                                            F:\MCP\projects\CAN\canToSerial\Source\Main.c
55
00050a   ec56     CALL      0xaac,0x0      	tickInit();                                                                     F:\MCP\projects\CAN\canToSerial\Source\Main.c
56
00050c   f005                                                                                                               
57
                                                                                                                            F:\MCP\projects\CAN\canToSerial\Source\Main.c
58
00050e   d7ff     BRA       0x50e          	while(1)                                                                        F:\MCP\projects\CAN\canToSerial\Source\Main.c
59
                                           	{                                                                               F:\MCP\projects\CAN\canToSerial\Source\Main.c
60
                                           	}                                                                               F:\MCP\projects\CAN\canToSerial\Source\Main.c
61
                                                                                                                            F:\MCP\projects\CAN\canToSerial\Source\Main.c
62
000510   0012     RETURN    0x0            }                                                                                F:\MCP\projects\CAN\canToSerial\Source\Main.c
63
                                                                                                                            F:\MCP\projects\CAN\canToSerial\Source\Main.c
64
                                                                                                                            F:\MCP\projects\CAN\canToSerial\Source\Main.c
65
                                           #pragma interruptlow HighISR                                                     F:\MCP\projects\CAN\canToSerial\Source\Main.c
66
000512   cfd8     MOVFF     0xfd8,0xfe4    void HighISR(void)                                                               F:\MCP\projects\CAN\canToSerial\Source\Main.c
67
000514   ffe4                                                                                                               
68
000516   cfe0     MOVFF     0xfe0,0xfe4                                                                                     
69
000518   ffe4                                                                                                               
70
00051a   6ee4     MOVWF     0xe4,0x0                                                                                        
71
00051c   cfda     MOVFF     0xfda,0xfe4                                                                                     
72
00051e   ffe4                                                                                                               
73
000520   cfe2     MOVFF     0xfe2,0xfda                                                                                     
74
000522   ffda                                                                                                               
75
000524   cfe9     MOVFF     0xfe9,0xfe4                                                                                     
76
000526   ffe4                                                                                                               
77
000528   cfea     MOVFF     0xfea,0xfe4                                                                                     
78
00052a   ffe4                                                                                                               
79
00052c   cff6     MOVFF     0xff6,0xfe4                                                                                     
80
00052e   ffe4                                                                                                               
81
000530   cff7     MOVFF     0xff7,0xfe4                                                                                     
82
000532   ffe4                                                                                                               
83
000534   cff5     MOVFF     0xff5,0xfe4                                                                                     
84
000536   ffe4                                                                                                               
85
000538   cff3     MOVFF     0xff3,0xfe4                                                                                     
86
00053a   ffe4                                                                                                               
87
00053c   cff4     MOVFF     0xff4,0xfe4                                                                                     
88
00053e   ffe4                                                                                                               
89
000540   cffa     MOVFF     0xffa,0xfe4                                                                                     
90
000542   ffe4                                                                                                               
91
000544   ee00     LFSR      0x0,0x14                                                                                        
92
000546   f014                                                                                                               
93
000548   0e0b     MOVLW     0xb                                                                                             
94
00054a   04e8     DECF      0xe8,0x0,0x0                                                                                    
95
00054c   e303     BNC       0x554                                                                                           
96
00054e   cfee     MOVFF     0xfee,0xfe4                                                                                     
97
000550   ffe4                                                                                                               
98
000552   d7fb     BRA       0x54a                                                                                           
99
000554   ee00     LFSR      0x0,0x0                                                                                         
100
000556   f000                                                                                                               
101
000558   0e14     MOVLW     0x14                                                                                            
102
00055a   04e8     DECF      0xe8,0x0,0x0                                                                                    
103
00055c   e303     BNC       0x564                                                                                           
104
00055e   cfee     MOVFF     0xfee,0xfe4                                                                                     
105
000560   ffe4                                                                                                               
106
000562   d7fb     BRA       0x55a                                                                                           
107
000564   52e6     MOVF      0xe6,0x1,0x0                                                                                    
108
                                           {                                                                                F:\MCP\projects\CAN\canToSerial\Source\Main.c
109
                                                                                                                            F:\MCP\projects\CAN\canToSerial\Source\Main.c
110
                                                                                                                            F:\MCP\projects\CAN\canToSerial\Source\Main.c
111
                                           	#ifdef USE_UART                                                                 F:\MCP\projects\CAN\canToSerial\Source\Main.c
112
000566   ecec     CALL      0x9d8,0x0      		uartISR();                                                                     F:\MCP\projects\CAN\canToSerial\Source\Main.c
113
000568   f004                                                                                                               
114
                                           	#endif                                                                          F:\MCP\projects\CAN\canToSerial\Source\Main.c
115
                                                                                                                            F:\MCP\projects\CAN\canToSerial\Source\Main.c
116
                                           	#ifdef USE_CAN                                                                  F:\MCP\projects\CAN\canToSerial\Source\Main.c
117
00056a   ec4d     CALL      0x9a,0x0       		canISR();                                                                      F:\MCP\projects\CAN\canToSerial\Source\Main.c
118
00056c   f000                                                                                                               
119
                                           	#endif                                                                          F:\MCP\projects\CAN\canToSerial\Source\Main.c
120
                                                                                                                            F:\MCP\projects\CAN\canToSerial\Source\Main.c
121
                                                                                                                            F:\MCP\projects\CAN\canToSerial\Source\Main.c
122
00056e   ec6a     CALL      0xad4,0x0      	tickUpdate();                                                                   F:\MCP\projects\CAN\canToSerial\Source\Main.c
123
000570   f005                                                                                                               
124
000572   52e5     MOVF      0xe5,0x1,0x0   }                                                                                F:\MCP\projects\CAN\canToSerial\Source\Main.c
125
000574   ee00     LFSR      0x0,0x13                                                                                        
126
000576   f013                                                                                                               
127
000578   0e14     MOVLW     0x14                                                                                            
128
00057a   04e8     DECF      0xe8,0x0,0x0                                                                                    
129
00057c   e303     BNC       0x584                                                                                           
130
00057e   cfe5     MOVFF     0xfe5,0xfed                                                                                     
131
000580   ffed                                                                                                               
132
000582   d7fb     BRA       0x57a                                                                                           
133
000584   ee00     LFSR      0x0,0x1e                                                                                        
134
000586   f01e                                                                                                               
135
000588   0e0b     MOVLW     0xb                                                                                             
136
00058a   04e8     DECF      0xe8,0x0,0x0                                                                                    
137
00058c   e303     BNC       0x594                                                                                           
138
00058e   cfe5     MOVFF     0xfe5,0xfed                                                                                     
139
000590   ffed                                                                                                               
140
000592   d7fb     BRA       0x58a                                                                                           
141
000594   cfe5     MOVFF     0xfe5,0xffa                                                                                     
142
000596   fffa                                                                                                               
143
000598   cfe5     MOVFF     0xfe5,0xff4                                                                                     
144
00059a   fff4                                                                                                               
145
00059c   cfe5     MOVFF     0xfe5,0xff3                                                                                     
146
00059e   fff3                                                                                                               
147
0005a0   cfe5     MOVFF     0xfe5,0xff5                                                                                     
148
0005a2   fff5                                                                                                               
149
0005a4   cfe5     MOVFF     0xfe5,0xff7                                                                                     
150
0005a6   fff7                                                                                                               
151
0005a8   cfe5     MOVFF     0xfe5,0xff6                                                                                     
152
0005aa   fff6                                                                                                               
153
0005ac   cfe5     MOVFF     0xfe5,0xfea                                                                                     
154
0005ae   ffea                                                                                                               
155
0005b0   cfe5     MOVFF     0xfe5,0xfe9                                                                                     
156
0005b2   ffe9                                                                                                               
157
0005b4   cfe5     MOVFF     0xfe5,0xfda                                                                                     
158
0005b6   ffda                                                                                                               
159
0005b8   50e5     MOVF      0xe5,0x0,0x0                                                                                    
160
0005ba   cfe5     MOVFF     0xfe5,0xfe0                                                                                     
161
0005bc   ffe0                                                                                                               
162
0005be   cfe5     MOVFF     0xfe5,0xfd8                                                                                     
163
0005c0   ffd8                                                                                                               
164
0005c2   0010     RETFIE    0x0                                                                                             
165
                                           #pragma code highVector=0x08                                                     F:\MCP\projects\CAN\canToSerial\Source\Main.c
166
                                           void HighVector (void)                                                           F:\MCP\projects\CAN\canToSerial\Source\Main.c
167
                                           {                                                                                F:\MCP\projects\CAN\canToSerial\Source\Main.c
168
000008   ef89     GOTO      0x512              _asm goto HighISR _endasm                                                    F:\MCP\projects\CAN\canToSerial\Source\Main.c
169
00000a   f002                                                                                                               
170
00000c   0012     RETURN    0x0            }                                                                                F:\MCP\projects\CAN\canToSerial\Source\Main.c
171
                                           #pragma code // Return to default code section                                   F:\MCP\projects\CAN\canToSerial\Source\Main.c
172
                                                                                                                            F:\MCP\projects\CAN\canToSerial\Source\Main.c
173
                                                                                                                            F:\MCP\projects\CAN\canToSerial\Source\Main.c
174
                                                                                                                            F:\MCP\projects\CAN\canToSerial\Source\Main.c
175
                                           #pragma interruptlow LowISR                                                      F:\MCP\projects\CAN\canToSerial\Source\Main.c
176
0005c4   cfd8     MOVFF     0xfd8,0xfe4    void LowISR(void)                                                                F:\MCP\projects\CAN\canToSerial\Source\Main.c
177
0005c6   ffe4                                                                                                               
178
0005c8   cfe0     MOVFF     0xfe0,0xfe4                                                                                     
179
0005ca   ffe4                                                                                                               
180
0005cc   6ee4     MOVWF     0xe4,0x0                                                                                        
181
0005ce   cfda     MOVFF     0xfda,0xfe4                                                                                     
182
0005d0   ffe4                                                                                                               
183
0005d2   cfe2     MOVFF     0xfe2,0xfda                                                                                     
184
0005d4   ffda                                                                                                               
185
0005d6   52e6     MOVF      0xe6,0x1,0x0                                                                                    
186
                                           {                                                                                F:\MCP\projects\CAN\canToSerial\Source\Main.c
187
                                                                                                                            F:\MCP\projects\CAN\canToSerial\Source\Main.c
188
0005d8   52e5     MOVF      0xe5,0x1,0x0   }                                                                                F:\MCP\projects\CAN\canToSerial\Source\Main.c
189
0005da   cfe5     MOVFF     0xfe5,0xfda                                                                                     
190
0005dc   ffda                                                                                                               
191
0005de   50e5     MOVF      0xe5,0x0,0x0                                                                                    
192
0005e0   cfe5     MOVFF     0xfe5,0xfe0                                                                                     
193
0005e2   ffe0                                                                                                               
194
0005e4   cfe5     MOVFF     0xfe5,0xfd8                                                                                     
195
0005e6   ffd8                                                                                                               
196
0005e8   0010     RETFIE    0x0                                                                                             
197
                                           #pragma code lowVector=0x18                                                      F:\MCP\projects\CAN\canToSerial\Source\Main.c
198
                                           void LowVector (void)                                                            F:\MCP\projects\CAN\canToSerial\Source\Main.c
199
                                           {                                                                                F:\MCP\projects\CAN\canToSerial\Source\Main.c
200
000018   efe2     GOTO      0x5c4              _asm goto LowISR _endasm                                                     F:\MCP\projects\CAN\canToSerial\Source\Main.c
201
00001a   f002                                                                                                               
202
00001c   0012     RETURN    0x0            }                                                                                F:\MCP\projects\CAN\canToSerial\Source\Main.c
203
                                           #pragma code // Return to default code section                                   F:\MCP\projects\CAN\canToSerial\Source\Main.c
204
                                                                                                                            F:\MCP\projects\CAN\canToSerial\Source\Main.c
205
                                                                                                                            F:\MCP\projects\CAN\canToSerial\Source\Main.c
206
                                           /*                                                                               F:\MCP\projects\CAN\canToSerial\Source\Main.c
207
                                           *	Function: mainInit                                                             F:\MCP\projects\CAN\canToSerial\Source\Main.c
208
                                           *                                                                                F:\MCP\projects\CAN\canToSerial\Source\Main.c
209
                                           *	Input:	none                                                                    F:\MCP\projects\CAN\canToSerial\Source\Main.c
210
                                           *	Output: none                                                                   F:\MCP\projects\CAN\canToSerial\Source\Main.c
211
                                           *	Pre-conditions: none                                                           F:\MCP\projects\CAN\canToSerial\Source\Main.c
212
                                           *	Affects: Se code                                                               F:\MCP\projects\CAN\canToSerial\Source\Main.c
213
                                           *	Depends: none.                                                                 F:\MCP\projects\CAN\canToSerial\Source\Main.c
214
                                           */                                                                               F:\MCP\projects\CAN\canToSerial\Source\Main.c
215
                                           void mainInit()                                                                  F:\MCP\projects\CAN\canToSerial\Source\Main.c
216
                                           {                                                                                F:\MCP\projects\CAN\canToSerial\Source\Main.c
217
0005ea   9294     BCF       0x94,0x1,0x0   	LED0_TRIS=0;	                                                                   F:\MCP\projects\CAN\canToSerial\Source\Main.c
218
                                                                                                                            F:\MCP\projects\CAN\canToSerial\Source\Main.c
219
                                               // Enable internal PORTB pull-ups                                            F:\MCP\projects\CAN\canToSerial\Source\Main.c
220
0005ec   9ef1     BCF       0xf1,0x7,0x0       INTCON2bits.RBPU = 0;                                                        F:\MCP\projects\CAN\canToSerial\Source\Main.c
221
                                           	                                                                                F:\MCP\projects\CAN\canToSerial\Source\Main.c
222
                                           	// Enable Interrupts                                                            F:\MCP\projects\CAN\canToSerial\Source\Main.c
223
0005ee   8ef2     BSF       0xf2,0x7,0x0       INTCONbits.GIEH = 1;                                                         F:\MCP\projects\CAN\canToSerial\Source\Main.c
224
0005f0   8cf2     BSF       0xf2,0x6,0x0       INTCONbits.GIEL = 1;                                                         F:\MCP\projects\CAN\canToSerial\Source\Main.c
225
                                                                                                                            F:\MCP\projects\CAN\canToSerial\Source\Main.c
226
                                                                                                                            F:\MCP\projects\CAN\canToSerial\Source\Main.c
227
                                           	// Enable interrupt prirority                                                   F:\MCP\projects\CAN\canToSerial\Source\Main.c
228
0005f2   8ed0     BSF       0xd0,0x7,0x0   	RCONbits.IPEN=1;                                                                F:\MCP\projects\CAN\canToSerial\Source\Main.c
229
                                           	                                                                                F:\MCP\projects\CAN\canToSerial\Source\Main.c
230
                                                                                                                            F:\MCP\projects\CAN\canToSerial\Source\Main.c
231
0005f4   0012     RETURN    0x0            }                                                                                F:\MCP\projects\CAN\canToSerial\Source\Main.c
232
                                                                                                                            F:\MCP\projects\CAN\canToSerial\Source\Main.c
233
                                           /*                                                                               F:\MCP\projects\CAN\canToSerial\Source\Main.c
234
                                           *	Function: canParse                                                             F:\MCP\projects\CAN\canToSerial\Source\Main.c
235
                                           *                                                                                F:\MCP\projects\CAN\canToSerial\Source\Main.c
236
                                           *	Input:	Received can message                                                    F:\MCP\projects\CAN\canToSerial\Source\Main.c
237
                                           *	Output: none                                                                   F:\MCP\projects\CAN\canToSerial\Source\Main.c
238
                                           *	Pre-conditions: canInit and received packet.                                   F:\MCP\projects\CAN\canToSerial\Source\Main.c
239
                                           *	Affects: Sensors/actuators/etc. See code.                                      F:\MCP\projects\CAN\canToSerial\Source\Main.c
240
                                           *	Depends: none.                                                                 F:\MCP\projects\CAN\canToSerial\Source\Main.c
241
                                           */                                                                               F:\MCP\projects\CAN\canToSerial\Source\Main.c
242
                                           #ifdef USE_CAN                                                                   F:\MCP\projects\CAN\canToSerial\Source\Main.c
243
0005f6   cfd9     MOVFF     0xfd9,0xfe6    void canParse(CAN_MESSAGE cm)                                                    F:\MCP\projects\CAN\canToSerial\Source\Main.c
244
0005f8   ffe6                                                                                                               
245
0005fa   cfe1     MOVFF     0xfe1,0xfd9                                                                                     
246
0005fc   ffd9                                                                                                               
247
0005fe   0e02     MOVLW     0x2                                                                                             
248
000600   26e1     ADDWF     0xe1,0x1,0x0                                                                                    
249
                                           {                                                                                F:\MCP\projects\CAN\canToSerial\Source\Main.c
250
000602   6ade     CLRF      0xde,0x0       	int i=0;                                                                        F:\MCP\projects\CAN\canToSerial\Source\Main.c
251
000604   6add     CLRF      0xdd,0x0                                                                                        
252
                                           	                                                                                F:\MCP\projects\CAN\canToSerial\Source\Main.c
253
000606   0efd     MOVLW     0xfd           	uartPutc(UART_START_BYTE);                                                      F:\MCP\projects\CAN\canToSerial\Source\Main.c
254
000608   6ee6     MOVWF     0xe6,0x0                                                                                        
255
00060a   ec8f     CALL      0x91e,0x0                                                                                       
256
00060c   f004                                                                                                               
257
00060e   52e5     MOVF      0xe5,0x1,0x0                                                                                    
258
000610   0ef1     MOVLW     0xf1           	uartPutc((BYTE)(cm.ident));                                                     F:\MCP\projects\CAN\canToSerial\Source\Main.c
259
000612   cfdb     MOVFF     0xfdb,0xfe6                                                                                     
260
000614   ffe6                                                                                                               
261
000616   ec8f     CALL      0x91e,0x0                                                                                       
262
000618   f004                                                                                                               
263
00061a   52e5     MOVF      0xe5,0x1,0x0                                                                                    
264
00061c   0ef1     MOVLW     0xf1           	uartPutc((BYTE)(cm.ident>>8));                                                  F:\MCP\projects\CAN\canToSerial\Source\Main.c
265
00061e   cfdb     MOVFF     0xfdb,0x0                                                                                       
266
000620   f000                                                                                                               
267
000622   0ef2     MOVLW     0xf2                                                                                            
268
000624   cfdb     MOVFF     0xfdb,0x1                                                                                       
269
000626   f001                                                                                                               
270
000628   0ef3     MOVLW     0xf3                                                                                            
271
00062a   cfdb     MOVFF     0xfdb,0x2                                                                                       
272
00062c   f002                                                                                                               
273
00062e   0ef4     MOVLW     0xf4                                                                                            
274
000630   cfdb     MOVFF     0xfdb,0x3                                                                                       
275
000632   f003                                                                                                               
276
000634   0e08     MOVLW     0x8                                                                                             
277
000636   90d8     BCF       0xd8,0x0,0x0                                                                                    
278
000638   3203     RRCF      0x3,0x1,0x0                                                                                     
279
00063a   3202     RRCF      0x2,0x1,0x0                                                                                     
280
00063c   3201     RRCF      0x1,0x1,0x0                                                                                     
281
00063e   3200     RRCF      0x0,0x1,0x0                                                                                     
282
000640   06e8     DECF      0xe8,0x1,0x0                                                                                    
283
000642   e1f9     BNZ       0x636                                                                                           
284
000644   5000     MOVF      0x0,0x0,0x0                                                                                     
285
000646   6ee6     MOVWF     0xe6,0x0                                                                                        
286
000648   ec8f     CALL      0x91e,0x0                                                                                       
287
00064a   f004                                                                                                               
288
00064c   52e5     MOVF      0xe5,0x1,0x0                                                                                    
289
00064e   0ef1     MOVLW     0xf1           	uartPutc((BYTE)(cm.ident>>16));                                                 F:\MCP\projects\CAN\canToSerial\Source\Main.c
290
000650   cfdb     MOVFF     0xfdb,0x0                                                                                       
291
000652   f000                                                                                                               
292
000654   0ef2     MOVLW     0xf2                                                                                            
293
000656   cfdb     MOVFF     0xfdb,0x1                                                                                       
294
000658   f001                                                                                                               
295
00065a   0ef3     MOVLW     0xf3                                                                                            
296
00065c   cfdb     MOVFF     0xfdb,0x2                                                                                       
297
00065e   f002                                                                                                               
298
000660   0ef4     MOVLW     0xf4                                                                                            
299
000662   cfdb     MOVFF     0xfdb,0x3                                                                                       
300
000664   f003                                                                                                               
301
000666   0e10     MOVLW     0x10                                                                                            
302
000668   90d8     BCF       0xd8,0x0,0x0                                                                                    
303
00066a   3203     RRCF      0x3,0x1,0x0                                                                                     
304
00066c   3202     RRCF      0x2,0x1,0x0                                                                                     
305
00066e   3201     RRCF      0x1,0x1,0x0                                                                                     
306
000670   3200     RRCF      0x0,0x1,0x0                                                                                     
307
000672   06e8     DECF      0xe8,0x1,0x0                                                                                    
308
000674   e1f9     BNZ       0x668                                                                                           
309
000676   5000     MOVF      0x0,0x0,0x0                                                                                     
310
000678   6ee6     MOVWF     0xe6,0x0                                                                                        
311
00067a   ec8f     CALL      0x91e,0x0                                                                                       
312
00067c   f004                                                                                                               
313
00067e   52e5     MOVF      0xe5,0x1,0x0                                                                                    
314
000680   0ef1     MOVLW     0xf1           	uartPutc((BYTE)(cm.ident>>24));                                                 F:\MCP\projects\CAN\canToSerial\Source\Main.c
315
000682   cfdb     MOVFF     0xfdb,0x0                                                                                       
316
000684   f000                                                                                                               
317
000686   0ef2     MOVLW     0xf2                                                                                            
318
000688   cfdb     MOVFF     0xfdb,0x1                                                                                       
319
00068a   f001                                                                                                               
320
00068c   0ef3     MOVLW     0xf3                                                                                            
321
00068e   cfdb     MOVFF     0xfdb,0x2                                                                                       
322
000690   f002                                                                                                               
323
000692   0ef4     MOVLW     0xf4                                                                                            
324
000694   cfdb     MOVFF     0xfdb,0x3                                                                                       
325
000696   f003                                                                                                               
326
000698   0e18     MOVLW     0x18                                                                                            
327
00069a   90d8     BCF       0xd8,0x0,0x0                                                                                    
328
00069c   3203     RRCF      0x3,0x1,0x0                                                                                     
329
00069e   3202     RRCF      0x2,0x1,0x0                                                                                     
330
0006a0   3201     RRCF      0x1,0x1,0x0                                                                                     
331
0006a2   3200     RRCF      0x0,0x1,0x0                                                                                     
332
0006a4   06e8     DECF      0xe8,0x1,0x0                                                                                    
333
0006a6   e1f9     BNZ       0x69a                                                                                           
334
0006a8   5000     MOVF      0x0,0x0,0x0                                                                                     
335
0006aa   6ee6     MOVWF     0xe6,0x0                                                                                        
336
0006ac   ec8f     CALL      0x91e,0x0                                                                                       
337
0006ae   f004                                                                                                               
338
0006b0   52e5     MOVF      0xe5,0x1,0x0                                                                                    
339
0006b2   0ef5     MOVLW     0xf5           	uartPutc(cm.extended);                                                          F:\MCP\projects\CAN\canToSerial\Source\Main.c
340
0006b4   cfdb     MOVFF     0xfdb,0xfe6                                                                                     
341
0006b6   ffe6                                                                                                               
342
0006b8   ec8f     CALL      0x91e,0x0                                                                                       
343
0006ba   f004                                                                                                               
344
0006bc   52e5     MOVF      0xe5,0x1,0x0                                                                                    
345
0006be   0ef6     MOVLW     0xf6           	uartPutc(cm.data_length);                                                       F:\MCP\projects\CAN\canToSerial\Source\Main.c
346
0006c0   cfdb     MOVFF     0xfdb,0xfe6                                                                                     
347
0006c2   ffe6                                                                                                               
348
0006c4   ec8f     CALL      0x91e,0x0                                                                                       
349
0006c6   f004                                                                                                               
350
0006c8   52e5     MOVF      0xe5,0x1,0x0                                                                                    
351
0006ca   6ade     CLRF      0xde,0x0       	for(i=0;i<8;i++) uartPutc(cm.data[i]);                                          F:\MCP\projects\CAN\canToSerial\Source\Main.c
352
0006cc   6add     CLRF      0xdd,0x0                                                                                        
353
0006ce   cfde     MOVFF     0xfde,0x0                                                                                       
354
0006d0   f000                                                                                                               
355
0006d2   cfdd     MOVFF     0xfdd,0x1                                                                                       
356
0006d4   f001                                                                                                               
357
0006d6   90d8     BCF       0xd8,0x0,0x0                                                                                    
358
0006d8   5001     MOVF      0x1,0x0,0x0                                                                                     
359
0006da   e604     BN        0x6e4                                                                                           
360
0006dc   0e08     MOVLW     0x8                                                                                             
361
0006de   5c00     SUBWF     0x0,0x0,0x0                                                                                     
362
0006e0   0e00     MOVLW     0x0                                                                                             
363
0006e2   5801     SUBWFB    0x1,0x0,0x0                                                                                     
364
0006e4   e216     BC        0x712                                                                                           
365
0006e6   50d9     MOVF      0xd9,0x0,0x0                                                                                    
366
0006e8   0ff7     ADDLW     0xf7                                                                                            
367
0006ea   6e00     MOVWF     0x0,0x0                                                                                         
368
0006ec   0eff     MOVLW     0xff                                                                                            
369
0006ee   20da     ADDWFC    0xda,0x0,0x0                                                                                    
370
0006f0   6e01     MOVWF     0x1,0x0                                                                                         
371
0006f2   50de     MOVF      0xde,0x0,0x0                                                                                    
372
0006f4   2400     ADDWF     0x0,0x0,0x0                                                                                     
373
0006f6   6ee9     MOVWF     0xe9,0x0                                                                                        
374
0006f8   50dd     MOVF      0xdd,0x0,0x0                                                                                    
375
0006fa   2001     ADDWFC    0x1,0x0,0x0                                                                                     
376
0006fc   6eea     MOVWF     0xea,0x0                                                                                        
377
0006fe   50ef     MOVF      0xef,0x0,0x0                                                                                    
378
000700   6ee6     MOVWF     0xe6,0x0                                                                                        
379
000702   ec8f     CALL      0x91e,0x0                                                                                       
380
000704   f004                                                                                                               
381
000706   52e5     MOVF      0xe5,0x1,0x0                                                                                    
382
000708   2adf     INCF      0xdf,0x1,0x0                                                                                    
383
00070a   0e01     MOVLW     0x1                                                                                             
384
00070c   e301     BNC       0x710                                                                                           
385
00070e   2adb     INCF      0xdb,0x1,0x0                                                                                    
386
000710   d7de     BRA       0x6ce                                                                                           
387
000712   0efa     MOVLW     0xfa           	uartPutc(UART_END_BYTE);                                                        F:\MCP\projects\CAN\canToSerial\Source\Main.c
388
000714   6ee6     MOVWF     0xe6,0x0                                                                                        
389
000716   ec8f     CALL      0x91e,0x0                                                                                       
390
000718   f004                                                                                                               
391
00071a   52e5     MOVF      0xe5,0x1,0x0                                                                                    
392
                                                                                                                            F:\MCP\projects\CAN\canToSerial\Source\Main.c
393
00071c   0e02     MOVLW     0x2            }                                                                                F:\MCP\projects\CAN\canToSerial\Source\Main.c
394
00071e   5ce1     SUBWF     0xe1,0x0,0x0                                                                                    
395
000720   e202     BC        0x726                                                                                           
396
000722   6ae1     CLRF      0xe1,0x0                                                                                        
397
000724   52e5     MOVF      0xe5,0x1,0x0                                                                                    
398
000726   6ee1     MOVWF     0xe1,0x0                                                                                        
399
000728   52e5     MOVF      0xe5,0x1,0x0                                                                                    
400
00072a   cfe7     MOVFF     0xfe7,0xfd9                                                                                     
401
00072c   ffd9                                                                                                               
402
00072e   0012     RETURN    0x0                                                                                             
403
                                           #endif                                                                           F:\MCP\projects\CAN\canToSerial\Source\Main.c
404
                                                                                                                            F:\MCP\projects\CAN\canToSerial\Source\Main.c
405
                                                                                                                            F:\MCP\projects\CAN\canToSerial\Source\Main.c
406
                                           /*                                                                               F:\MCP\projects\CAN\canToSerial\Source\Main.c
407
                                           *	Function: uartParse                                                            F:\MCP\projects\CAN\canToSerial\Source\Main.c
408
                                           *                                                                                F:\MCP\projects\CAN\canToSerial\Source\Main.c
409
                                           *	Input:	Received uart message                                                   F:\MCP\projects\CAN\canToSerial\Source\Main.c
410
                                           *	Output: none                                                                   F:\MCP\projects\CAN\canToSerial\Source\Main.c
411
                                           *	Pre-conditions: uartInit and received byte.                                    F:\MCP\projects\CAN\canToSerial\Source\Main.c
412
                                           *	Affects: Sensors/actuators/etc. See code.                                      F:\MCP\projects\CAN\canToSerial\Source\Main.c
413
                                           *	Depends: none.                                                                 F:\MCP\projects\CAN\canToSerial\Source\Main.c
414
                                           */                                                                               F:\MCP\projects\CAN\canToSerial\Source\Main.c
415
                                           #ifdef USE_UART                                                                  F:\MCP\projects\CAN\canToSerial\Source\Main.c
416
000730   cfd9     MOVFF     0xfd9,0xfe6    void uartParse(BYTE c)                                                           F:\MCP\projects\CAN\canToSerial\Source\Main.c
417
000732   ffe6                                                                                                               
418
000734   cfe1     MOVFF     0xfe1,0xfd9                                                                                     
419
000736   ffd9                                                                                                               
420
000738   0e11     MOVLW     0x11                                                                                            
421
00073a   26e1     ADDWF     0xe1,0x1,0x0                                                                                    
422
                                           {                                                                                F:\MCP\projects\CAN\canToSerial\Source\Main.c
423
                                           	BYTE i;                                                                         F:\MCP\projects\CAN\canToSerial\Source\Main.c
424
00073c   0e01     MOVLW     0x1            	unsigned int wait = 0;                                                          F:\MCP\projects\CAN\canToSerial\Source\Main.c
425
00073e   6adb     CLRF      0xdb,0x0                                                                                        
426
000740   0e02     MOVLW     0x2                                                                                             
427
000742   6adb     CLRF      0xdb,0x0                                                                                        
428
                                           	CAN_MESSAGE cm;	                                                                F:\MCP\projects\CAN\canToSerial\Source\Main.c
429
                                           	static BOOL waitingMessage = FALSE;                                             F:\MCP\projects\CAN\canToSerial\Source\Main.c
430
                                           	static TICK timeout=0;                                                          F:\MCP\projects\CAN\canToSerial\Source\Main.c
431
                                           	static BYTE count=0;                                                            F:\MCP\projects\CAN\canToSerial\Source\Main.c
432
                                                                                                                            F:\MCP\projects\CAN\canToSerial\Source\Main.c
433
                                                                                                                            F:\MCP\projects\CAN\canToSerial\Source\Main.c
434
000744   0100     MOVLB     0x0            	if (waitingMessage==TRUE && (tickGet()-timeout)>TICK_SECOND/20)                 F:\MCP\projects\CAN\canToSerial\Source\Main.c
435
000746   056e     DECF      0x6e,0x0,0x1                                                                                    
436
000748   e11a     BNZ       0x77e                                                                                           
437
00074a   ec60     CALL      0xac0,0x0                                                                                       
438
00074c   f005                                                                                                               
439
00074e   0100     MOVLB     0x0                                                                                             
440
000750   516f     MOVF      0x6f,0x0,0x1                                                                                    
441
000752   5c18     SUBWF     0x18,0x0,0x0                                                                                    
442
000754   6e00     MOVWF     0x0,0x0                                                                                         
443
000756   5170     MOVF      0x70,0x0,0x1                                                                                    
444
000758   5819     SUBWFB    0x19,0x0,0x0                                                                                    
445
00075a   6e01     MOVWF     0x1,0x0                                                                                         
446
00075c   5171     MOVF      0x71,0x0,0x1                                                                                    
447
00075e   581a     SUBWFB    0x1a,0x0,0x0                                                                                    
448
000760   6e02     MOVWF     0x2,0x0                                                                                         
449
000762   5172     MOVF      0x72,0x0,0x1                                                                                    
450
000764   581b     SUBWFB    0x1b,0x0,0x0                                                                                    
451
000766   6e03     MOVWF     0x3,0x0                                                                                         
452
000768   80d8     BSF       0xd8,0x0,0x0                                                                                    
453
00076a   0e05     MOVLW     0x5                                                                                             
454
00076c   5400     SUBFWB    0x0,0x0,0x0                                                                                     
455
00076e   0e00     MOVLW     0x0                                                                                             
456
000770   5401     SUBFWB    0x1,0x0,0x0                                                                                     
457
000772   0e00     MOVLW     0x0                                                                                             
458
000774   5402     SUBFWB    0x2,0x0,0x0                                                                                     
459
000776   0e00     MOVLW     0x0                                                                                             
460
000778   5403     SUBFWB    0x3,0x0,0x0                                                                                     
461
00077a   e201     BC        0x77e                                                                                           
462
                                           	{                                                                               F:\MCP\projects\CAN\canToSerial\Source\Main.c
463
00077c   6b6e     CLRF      0x6e,0x1       		waitingMessage=FALSE;                                                          F:\MCP\projects\CAN\canToSerial\Source\Main.c
464
                                           	}                                                                               F:\MCP\projects\CAN\canToSerial\Source\Main.c
465
                                                                                                                            F:\MCP\projects\CAN\canToSerial\Source\Main.c
466
                                                                                                                            F:\MCP\projects\CAN\canToSerial\Source\Main.c
467
00077e   056e     DECF      0x6e,0x0,0x1   	if (waitingMessage==TRUE)                                                       F:\MCP\projects\CAN\canToSerial\Source\Main.c
468
000780   e001     BZ        0x784                                                                                           
469
000782   d095     BRA       0x8ae                                                                                           
470
                                           	{                                                                               F:\MCP\projects\CAN\canToSerial\Source\Main.c
471
                                                                                                                            F:\MCP\projects\CAN\canToSerial\Source\Main.c
472
000784   ec60     CALL      0xac0,0x0      		timeout=tickGet();                                                             F:\MCP\projects\CAN\canToSerial\Source\Main.c
473
000786   f005                                                                                                               
474
000788   c018     MOVFF     0x18,0x6f                                                                                       
475
00078a   f06f                                                                                                               
476
00078c   c019     MOVFF     0x19,0x70                                                                                       
477
00078e   f070                                                                                                               
478
000790   c01a     MOVFF     0x1a,0x71                                                                                       
479
000792   f071                                                                                                               
480
000794   c01b     MOVFF     0x1b,0x72                                                                                       
481
000796   f072                                                                                                               
482
                                                                                                                            F:\MCP\projects\CAN\canToSerial\Source\Main.c
483
                                           		// UART END                                                                    F:\MCP\projects\CAN\canToSerial\Source\Main.c
484
000798   0e0e     MOVLW     0xe            		if(count>=14)                                                                  F:\MCP\projects\CAN\canToSerial\Source\Main.c
485
00079a   0100     MOVLB     0x0                                                                                             
486
00079c   5d73     SUBWF     0x73,0x0,0x1                                                                                    
487
00079e   e336     BNC       0x80c                                                                                           
488
                                           		{                                                                              F:\MCP\projects\CAN\canToSerial\Source\Main.c
489
0007a0   0efe     MOVLW     0xfe           			if (c==UART_END_BYTE)                                                         F:\MCP\projects\CAN\canToSerial\Source\Main.c
490
0007a2   50db     MOVF      0xdb,0x0,0x0                                                                                    
491
0007a4   6e00     MOVWF     0x0,0x0                                                                                         
492
0007a6   6a01     CLRF      0x1,0x0                                                                                         
493
0007a8   0efa     MOVLW     0xfa                                                                                            
494
0007aa   1800     XORWF     0x0,0x0,0x0                                                                                     
495
0007ac   e101     BNZ       0x7b0                                                                                           
496
0007ae   5001     MOVF      0x1,0x0,0x0                                                                                     
497
0007b0   e12a     BNZ       0x806                                                                                           
498
                                           			{                                                                             F:\MCP\projects\CAN\canToSerial\Source\Main.c
499
0007b2   50d9     MOVF      0xd9,0x0,0x0   				while(!canSendMessage(cm));                                                  F:\MCP\projects\CAN\canToSerial\Source\Main.c
500
0007b4   0f03     ADDLW     0x3                                                                                             
501
0007b6   6ee9     MOVWF     0xe9,0x0                                                                                        
502
0007b8   cfda     MOVFF     0xfda,0xfea                                                                                     
503
0007ba   ffea                                                                                                               
504
0007bc   cfee     MOVFF     0xfee,0xfe6                                                                                     
505
0007be   ffe6                                                                                                               
506
0007c0   cfee     MOVFF     0xfee,0xfe6                                                                                     
507
0007c2   ffe6                                                                                                               
508
0007c4   cfee     MOVFF     0xfee,0xfe6                                                                                     
509
0007c6   ffe6                                                                                                               
510
0007c8   cfee     MOVFF     0xfee,0xfe6                                                                                     
511
0007ca   ffe6                                                                                                               
512
0007cc   cfee     MOVFF     0xfee,0xfe6                                                                                     
513
0007ce   ffe6                                                                                                               
514
0007d0   cfee     MOVFF     0xfee,0xfe6                                                                                     
515
0007d2   ffe6                                                                                                               
516
0007d4   cfee     MOVFF     0xfee,0xfe6                                                                                     
517
0007d6   ffe6                                                                                                               
518
0007d8   cfee     MOVFF     0xfee,0xfe6                                                                                     
519
0007da   ffe6                                                                                                               
520
0007dc   cfee     MOVFF     0xfee,0xfe6                                                                                     
521
0007de   ffe6                                                                                                               
522
0007e0   cfee     MOVFF     0xfee,0xfe6                                                                                     
523
0007e2   ffe6                                                                                                               
524
0007e4   cfee     MOVFF     0xfee,0xfe6                                                                                     
525
0007e6   ffe6                                                                                                               
526
0007e8   cfee     MOVFF     0xfee,0xfe6                                                                                     
527
0007ea   ffe6                                                                                                               
528
0007ec   cfee     MOVFF     0xfee,0xfe6                                                                                     
529
0007ee   ffe6                                                                                                               
530
0007f0   cfee     MOVFF     0xfee,0xfe6                                                                                     
531
0007f2   ffe6                                                                                                               
532
0007f4   eca0     CALL      0x340,0x0                                                                                       
533
0007f6   f001                                                                                                               
534
0007f8   6e00     MOVWF     0x0,0x0                                                                                         
535
0007fa   0e0e     MOVLW     0xe                                                                                             
536
0007fc   5ee1     SUBWF     0xe1,0x1,0x0                                                                                    
537
0007fe   5000     MOVF      0x0,0x0,0x0                                                                                     
538
000800   0900     IORLW     0x0                                                                                             
539
000802   e101     BNZ       0x806                                                                                           
540
000804   d7d6     BRA       0x7b2                                                                                           
541
                                           			}                                                                             F:\MCP\projects\CAN\canToSerial\Source\Main.c
542
000806   0100     MOVLB     0x0            			waitingMessage=FALSE;                                                         F:\MCP\projects\CAN\canToSerial\Source\Main.c
543
000808   6b6e     CLRF      0x6e,0x1                                                                                        
544
00080a   d073     BRA       0x8f2          			return;                                                                       F:\MCP\projects\CAN\canToSerial\Source\Main.c
545
                                           		}                                                                              F:\MCP\projects\CAN\canToSerial\Source\Main.c
546
                                                                                                                            F:\MCP\projects\CAN\canToSerial\Source\Main.c
547
                                           		// data                                                                        F:\MCP\projects\CAN\canToSerial\Source\Main.c
548
00080c   0e06     MOVLW     0x6            		if(count>=6)                                                                   F:\MCP\projects\CAN\canToSerial\Source\Main.c
549
00080e   5d73     SUBWF     0x73,0x0,0x1                                                                                    
550
000810   e313     BNC       0x838                                                                                           
551
                                           		{                                                                              F:\MCP\projects\CAN\canToSerial\Source\Main.c
552
000812   50d9     MOVF      0xd9,0x0,0x0   			cm.data[count-6]=c;                                                           F:\MCP\projects\CAN\canToSerial\Source\Main.c
553
000814   0f09     ADDLW     0x9                                                                                             
554
000816   6e00     MOVWF     0x0,0x0                                                                                         
555
000818   cfda     MOVFF     0xfda,0x1                                                                                       
556
00081a   f001                                                                                                               
557
00081c   0e06     MOVLW     0x6                                                                                             
558
00081e   5d73     SUBWF     0x73,0x0,0x1                                                                                    
559
000820   010f     MOVLB     0xf                                                                                             
560
000822   2400     ADDWF     0x0,0x0,0x0                                                                                     
561
000824   6ee9     MOVWF     0xe9,0x0                                                                                        
562
000826   0e00     MOVLW     0x0                                                                                             
563
000828   2001     ADDWFC    0x1,0x0,0x0                                                                                     
564
00082a   6eea     MOVWF     0xea,0x0                                                                                        
565
00082c   0efe     MOVLW     0xfe                                                                                            
566
00082e   cfdb     MOVFF     0xfdb,0xfef                                                                                     
567
000830   ffef                                                                                                               
568
000832   0100     MOVLB     0x0            			count++;                                                                      F:\MCP\projects\CAN\canToSerial\Source\Main.c
569
000834   2b73     INCF      0x73,0x1,0x1                                                                                    
570
000836   d05d     BRA       0x8f2          			return;                                                                       F:\MCP\projects\CAN\canToSerial\Source\Main.c
571
                                           		}                                                                              F:\MCP\projects\CAN\canToSerial\Source\Main.c
572
                                                                                                                            F:\MCP\projects\CAN\canToSerial\Source\Main.c
573
                                           		// data length                                                                 F:\MCP\projects\CAN\canToSerial\Source\Main.c
574
000838   0e05     MOVLW     0x5            		if(count>=5)                                                                   F:\MCP\projects\CAN\canToSerial\Source\Main.c
575
00083a   5d73     SUBWF     0x73,0x0,0x1                                                                                    
576
00083c   e308     BNC       0x84e                                                                                           
577
                                           		{                                                                              F:\MCP\projects\CAN\canToSerial\Source\Main.c
578
00083e   0efe     MOVLW     0xfe           			cm.data_length=c;                                                             F:\MCP\projects\CAN\canToSerial\Source\Main.c
579
000840   50db     MOVF      0xdb,0x0,0x0                                                                                    
580
000842   6ee7     MOVWF     0xe7,0x0                                                                                        
581
000844   0e08     MOVLW     0x8                                                                                             
582
000846   cfe7     MOVFF     0xfe7,0xfdb                                                                                     
583
000848   ffdb                                                                                                               
584
00084a   2b73     INCF      0x73,0x1,0x1   			count++;                                                                      F:\MCP\projects\CAN\canToSerial\Source\Main.c
585
00084c   d052     BRA       0x8f2          			return;                                                                       F:\MCP\projects\CAN\canToSerial\Source\Main.c
586
                                           		}                                                                              F:\MCP\projects\CAN\canToSerial\Source\Main.c
587
                                                                                                                            F:\MCP\projects\CAN\canToSerial\Source\Main.c
588
                                           		// extended                                                                    F:\MCP\projects\CAN\canToSerial\Source\Main.c
589
00084e   0e04     MOVLW     0x4            		if(count>=4)                                                                   F:\MCP\projects\CAN\canToSerial\Source\Main.c
590
000850   5d73     SUBWF     0x73,0x0,0x1                                                                                    
591
000852   e308     BNC       0x864                                                                                           
592
                                           		{                                                                              F:\MCP\projects\CAN\canToSerial\Source\Main.c
593
000854   0efe     MOVLW     0xfe           			cm.extended=c;                                                                F:\MCP\projects\CAN\canToSerial\Source\Main.c
594
000856   50db     MOVF      0xdb,0x0,0x0                                                                                    
595
000858   6ee7     MOVWF     0xe7,0x0                                                                                        
596
00085a   0e07     MOVLW     0x7                                                                                             
597
00085c   cfe7     MOVFF     0xfe7,0xfdb                                                                                     
598
00085e   ffdb                                                                                                               
599
000860   2b73     INCF      0x73,0x1,0x1   			count++;                                                                      F:\MCP\projects\CAN\canToSerial\Source\Main.c
600
000862   d047     BRA       0x8f2          			return;                                                                       F:\MCP\projects\CAN\canToSerial\Source\Main.c
601
                                           		}                                                                              F:\MCP\projects\CAN\canToSerial\Source\Main.c
602
                                                                                                                            F:\MCP\projects\CAN\canToSerial\Source\Main.c
603
                                           		// ident                                                                       F:\MCP\projects\CAN\canToSerial\Source\Main.c
604
000864   0e00     MOVLW     0x0            		if(count>=0)                                                                   F:\MCP\projects\CAN\canToSerial\Source\Main.c
605
000866   5d73     SUBWF     0x73,0x0,0x1                                                                                    
606
000868   e322     BNC       0x8ae                                                                                           
607
                                           		{                                                                              F:\MCP\projects\CAN\canToSerial\Source\Main.c
608
00086a   0efe     MOVLW     0xfe           			cm.ident+=((DWORD)c<<(count*8));                                              F:\MCP\projects\CAN\canToSerial\Source\Main.c
609
00086c   cfdb     MOVFF     0xfdb,0x0                                                                                       
610
00086e   f000                                                                                                               
611
000870   6a01     CLRF      0x1,0x0                                                                                         
612
000872   6a02     CLRF      0x2,0x0                                                                                         
613
000874   6a03     CLRF      0x3,0x0                                                                                         
614
000876   0e08     MOVLW     0x8                                                                                             
615
000878   0373     MULWF     0x73,0x1                                                                                        
616
00087a   50f3     MOVF      0xf3,0x0,0x0                                                                                    
617
00087c   0b1f     ANDLW     0x1f                                                                                            
618
00087e   e007     BZ        0x88e                                                                                           
619
000880   90d8     BCF       0xd8,0x0,0x0                                                                                    
620
000882   3600     RLCF      0x0,0x1,0x0                                                                                     
621
000884   3601     RLCF      0x1,0x1,0x0                                                                                     
622
000886   3602     RLCF      0x2,0x1,0x0                                                                                     
623
000888   3603     RLCF      0x3,0x1,0x0                                                                                     
624
00088a   06e8     DECF      0xe8,0x1,0x0                                                                                    
625
00088c   e1f9     BNZ       0x880                                                                                           
626
00088e   50d9     MOVF      0xd9,0x0,0x0                                                                                    
627
000890   0f03     ADDLW     0x3                                                                                             
628
000892   6ee9     MOVWF     0xe9,0x0                                                                                        
629
000894   cfda     MOVFF     0xfda,0xfea                                                                                     
630
000896   ffea                                                                                                               
631
000898   5000     MOVF      0x0,0x0,0x0                                                                                     
632
00089a   26ee     ADDWF     0xee,0x1,0x0                                                                                    
633
00089c   5001     MOVF      0x1,0x0,0x0                                                                                     
634
00089e   22ee     ADDWFC    0xee,0x1,0x0                                                                                    
635
0008a0   5002     MOVF      0x2,0x0,0x0                                                                                     
636
0008a2   22ee     ADDWFC    0xee,0x1,0x0                                                                                    
637
0008a4   5003     MOVF      0x3,0x0,0x0                                                                                     
638
0008a6   22ee     ADDWFC    0xee,0x1,0x0                                                                                    
639
0008a8   0100     MOVLB     0x0            			count++;                                                                      F:\MCP\projects\CAN\canToSerial\Source\Main.c
640
0008aa   2b73     INCF      0x73,0x1,0x1                                                                                    
641
0008ac   d022     BRA       0x8f2          			return;                                                                       F:\MCP\projects\CAN\canToSerial\Source\Main.c
642
                                           		}                                                                              F:\MCP\projects\CAN\canToSerial\Source\Main.c
643
                                           	                                                                                F:\MCP\projects\CAN\canToSerial\Source\Main.c
644
                                           	}                                                                               F:\MCP\projects\CAN\canToSerial\Source\Main.c
645
                                                                                                                            F:\MCP\projects\CAN\canToSerial\Source\Main.c
646
                                                                                                                            F:\MCP\projects\CAN\canToSerial\Source\Main.c
647
0008ae   0efe     MOVLW     0xfe           	if (c==UART_START_BYTE && waitingMessage==FALSE)                                F:\MCP\projects\CAN\canToSerial\Source\Main.c
648
0008b0   50db     MOVF      0xdb,0x0,0x0                                                                                    
649
0008b2   6e00     MOVWF     0x0,0x0                                                                                         
650
0008b4   6a01     CLRF      0x1,0x0                                                                                         
651
0008b6   0efd     MOVLW     0xfd                                                                                            
652
0008b8   1800     XORWF     0x0,0x0,0x0                                                                                     
653
0008ba   e101     BNZ       0x8be                                                                                           
654
0008bc   5001     MOVF      0x1,0x0,0x0                                                                                     
655
0008be   e119     BNZ       0x8f2                                                                                           
656
0008c0   516e     MOVF      0x6e,0x0,0x1                                                                                    
657
0008c2   e117     BNZ       0x8f2                                                                                           
658
                                           	{                                                                               F:\MCP\projects\CAN\canToSerial\Source\Main.c
659
0008c4   0e01     MOVLW     0x1            			waitingMessage=TRUE;                                                          F:\MCP\projects\CAN\canToSerial\Source\Main.c
660
0008c6   6f6e     MOVWF     0x6e,0x1                                                                                        
661
0008c8   ec60     CALL      0xac0,0x0      			timeout=tickGet();                                                            F:\MCP\projects\CAN\canToSerial\Source\Main.c
662
0008ca   f005                                                                                                               
663
0008cc   c018     MOVFF     0x18,0x6f                                                                                       
664
0008ce   f06f                                                                                                               
665
0008d0   c019     MOVFF     0x19,0x70                                                                                       
666
0008d2   f070                                                                                                               
667
0008d4   c01a     MOVFF     0x1a,0x71                                                                                       
668
0008d6   f071                                                                                                               
669
0008d8   c01b     MOVFF     0x1b,0x72                                                                                       
670
0008da   f072                                                                                                               
671
0008dc   0100     MOVLB     0x0            			count=0;                                                                      F:\MCP\projects\CAN\canToSerial\Source\Main.c
672
0008de   6b73     CLRF      0x73,0x1                                                                                        
673
0008e0   0e03     MOVLW     0x3            			cm.ident=0;                                                                   F:\MCP\projects\CAN\canToSerial\Source\Main.c
674
0008e2   6adb     CLRF      0xdb,0x0                                                                                        
675
0008e4   0e04     MOVLW     0x4                                                                                             
676
0008e6   6adb     CLRF      0xdb,0x0                                                                                        
677
0008e8   0e05     MOVLW     0x5                                                                                             
678
0008ea   6adb     CLRF      0xdb,0x0                                                                                        
679
0008ec   0e06     MOVLW     0x6                                                                                             
680
0008ee   6adb     CLRF      0xdb,0x0                                                                                        
681
0008f0   d000     BRA       0x8f2          			return;	                                                                      F:\MCP\projects\CAN\canToSerial\Source\Main.c
682
                                           	}                                                                               F:\MCP\projects\CAN\canToSerial\Source\Main.c
683
                                                                                                                            F:\MCP\projects\CAN\canToSerial\Source\Main.c
684
                                                                                                                            F:\MCP\projects\CAN\canToSerial\Source\Main.c
685
0008f2   0e11     MOVLW     0x11           }                                                                                F:\MCP\projects\CAN\canToSerial\Source\Main.c
686
0008f4   5ce1     SUBWF     0xe1,0x0,0x0                                                                                    
687
0008f6   e202     BC        0x8fc                                                                                           
688
0008f8   6ae1     CLRF      0xe1,0x0                                                                                        
689
0008fa   52e5     MOVF      0xe5,0x1,0x0                                                                                    
690
0008fc   6ee1     MOVWF     0xe1,0x0                                                                                        
691
0008fe   52e5     MOVF      0xe5,0x1,0x0                                                                                    
692
000900   cfe7     MOVFF     0xfe7,0xfd9                                                                                     
693
000902   ffd9                                                                                                               
694
000904   0012     RETURN    0x0                                                                                             
695
                                           #endif                                                                           F:\MCP\projects\CAN\canToSerial\Source\Main.c
53 johboh 696
                                           /*********************************************************************           F:\MCP\projects\CAN\Source\CAN.c
697
                                            *                                                                               F:\MCP\projects\CAN\Source\CAN.c
698
                                            *                  CAN driver                                                   F:\MCP\projects\CAN\Source\CAN.c
699
                                            *                                                                               F:\MCP\projects\CAN\Source\CAN.c
700
                                            *********************************************************************           F:\MCP\projects\CAN\Source\CAN.c
701
                                            * FileName:        CAN.c                                                        F:\MCP\projects\CAN\Source\CAN.c
702
                                            *                                                                               F:\MCP\projects\CAN\Source\CAN.c
703
                                            * Author               Date    Comment                                          F:\MCP\projects\CAN\Source\CAN.c
704
                                            *~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~           F:\MCP\projects\CAN\Source\CAN.c
705
                                            * Johan Böhlin     21-10-06 	Original        (Rev 1.0)                          F:\MCP\projects\CAN\Source\CAN.c
706
                                            ********************************************************************/           F:\MCP\projects\CAN\Source\CAN.c
707
                                                                                                                            F:\MCP\projects\CAN\Source\CAN.c
708
                                           #include <CANdefs.h>                                                             F:\MCP\projects\CAN\Source\CAN.c
709
                                           #include <stackTasks.h>                                                          F:\MCP\projects\CAN\Source\CAN.c
710
                                           #include <CAN.h>                                                                 F:\MCP\projects\CAN\Source\CAN.c
711
                                                                                                                            F:\MCP\projects\CAN\Source\CAN.c
712
                                           static void canGetPacket(void);                                                  F:\MCP\projects\CAN\Source\CAN.c
713
                                                                                                                            F:\MCP\projects\CAN\Source\CAN.c
714
                                           #ifdef USE_CAN                                                                   F:\MCP\projects\CAN\Source\CAN.c
715
                                                                                                                            F:\MCP\projects\CAN\Source\CAN.c
716
                                                                                                                            F:\MCP\projects\CAN\Source\CAN.c
717
                                           /*                                                                               F:\MCP\projects\CAN\Source\CAN.c
718
                                           *	Function: canInit                                                              F:\MCP\projects\CAN\Source\CAN.c
719
                                           *                                                                                F:\MCP\projects\CAN\Source\CAN.c
720
                                           *	Input:	none                                                                    F:\MCP\projects\CAN\Source\CAN.c
721
                                           *	Output: none                                                                   F:\MCP\projects\CAN\Source\CAN.c
722
                                           *	Pre-conditions: none                                                           F:\MCP\projects\CAN\Source\CAN.c
723
                                           *	Affects: Changes can registers.                                                F:\MCP\projects\CAN\Source\CAN.c
724
                                           *	Depends: none.                                                                 F:\MCP\projects\CAN\Source\CAN.c
725
                                           */                                                                               F:\MCP\projects\CAN\Source\CAN.c
726
                                           void canInit()                                                                   F:\MCP\projects\CAN\Source\CAN.c
727
                                           {                                                                                F:\MCP\projects\CAN\Source\CAN.c
728
000044   0e80     MOVLW     0x80           	CANCON = 0x80; //request config mode                                            F:\MCP\projects\CAN\Source\CAN.c
729
000046   6e6f     MOVWF     0x6f,0x0                                                                                        
730
000048   0ee0     MOVLW     0xe0           	while ((CANSTAT & 0xE0) != 0x80 ); //wait for config mode request               F:\MCP\projects\CAN\Source\CAN.c
731
00004a   146e     ANDWF     0x6e,0x0,0x0                                                                                    
732
00004c   0880     SUBLW     0x80                                                                                            
733
00004e   e001     BZ        0x52                                                                                            
734
000050   d7fb     BRA       0x48                                                                                            
735
                                                                                                                            F:\MCP\projects\CAN\Source\CAN.c
736
                                           	// BAUD AND TQS                                                                 F:\MCP\projects\CAN\Source\CAN.c
737
                                                                                                                            F:\MCP\projects\CAN\Source\CAN.c
738
000052   6a70     CLRF      0x70,0x0       	BRGCON1=0;                                                                      F:\MCP\projects\CAN\Source\CAN.c
739
                                           	                                                                                F:\MCP\projects\CAN\Source\CAN.c
740
                                           	// Sync_Seq = 2 x TQ = 1                                                        F:\MCP\projects\CAN\Source\CAN.c
741
000054   9e70     BCF       0x70,0x7,0x0   	BRGCON1bits.SJW1=0;                                                             F:\MCP\projects\CAN\Source\CAN.c
742
000056   8c70     BSF       0x70,0x6,0x0   	BRGCON1bits.SJW0=1;                                                             F:\MCP\projects\CAN\Source\CAN.c
743
                                           	                                                                                F:\MCP\projects\CAN\Source\CAN.c
744
                                           	// Setting BRP.                                                                 F:\MCP\projects\CAN\Source\CAN.c
745
000058   0e09     MOVLW     0x9            	BRGCON1=BRGCON1|CAN_BRP;                                                        F:\MCP\projects\CAN\Source\CAN.c
746
00005a   1070     IORWF     0x70,0x0,0x0                                                                                    
747
00005c   6e70     MOVWF     0x70,0x0                                                                                        
748
                                           	                                                                                F:\MCP\projects\CAN\Source\CAN.c
749
                                           	// Maximum PHEG1                                                                F:\MCP\projects\CAN\Source\CAN.c
750
00005e   8e71     BSF       0x71,0x7,0x0   	BRGCON2bits.SEG2PHTS = 1;                                                       F:\MCP\projects\CAN\Source\CAN.c
751
                                           	                                                                                F:\MCP\projects\CAN\Source\CAN.c
752
                                           	// Phase_Seg1 = 2 x TQ = 1                                                      F:\MCP\projects\CAN\Source\CAN.c
753
000060   9a71     BCF       0x71,0x5,0x0   	BRGCON2bits.SEG1PH2 = 0;                                                        F:\MCP\projects\CAN\Source\CAN.c
754
000062   9871     BCF       0x71,0x4,0x0   	BRGCON2bits.SEG1PH1 = 0;                                                        F:\MCP\projects\CAN\Source\CAN.c
755
000064   8671     BSF       0x71,0x3,0x0   	BRGCON2bits.SEG1PH0 = 1;                                                        F:\MCP\projects\CAN\Source\CAN.c
756
                                           	                                                                                F:\MCP\projects\CAN\Source\CAN.c
757
                                           	// Prop_Seq = 2 x TQ = 1                                                        F:\MCP\projects\CAN\Source\CAN.c
758
000066   9471     BCF       0x71,0x2,0x0   	BRGCON2bits.PRSEG2 = 0;                                                         F:\MCP\projects\CAN\Source\CAN.c
759
000068   9271     BCF       0x71,0x1,0x0   	BRGCON2bits.PRSEG1 = 0;                                                         F:\MCP\projects\CAN\Source\CAN.c
760
00006a   8071     BSF       0x71,0x0,0x0   	BRGCON2bits.PRSEG0 = 1;                                                         F:\MCP\projects\CAN\Source\CAN.c
761
                                           	                                                                                F:\MCP\projects\CAN\Source\CAN.c
762
                                           	//  Enableing bus wake-up                                                       F:\MCP\projects\CAN\Source\CAN.c
763
00006c   9e72     BCF       0x72,0x7,0x0   	BRGCON3bits.WAKDIS = 0;                                                         F:\MCP\projects\CAN\Source\CAN.c
764
                                           	                                                                                F:\MCP\projects\CAN\Source\CAN.c
765
                                           	// Dont use filter when wakeup                                                  F:\MCP\projects\CAN\Source\CAN.c
766
00006e   9c72     BCF       0x72,0x6,0x0   	BRGCON3bits.WAKFIL = 0;                                                         F:\MCP\projects\CAN\Source\CAN.c
767
                                           	                                                                                F:\MCP\projects\CAN\Source\CAN.c
768
                                           	// Phase_Seg2 = 2 x TQ = 1                                                      F:\MCP\projects\CAN\Source\CAN.c
769
000070   9472     BCF       0x72,0x2,0x0   	BRGCON3bits.SEG2PH2 = 0;                                                        F:\MCP\projects\CAN\Source\CAN.c
770
000072   9272     BCF       0x72,0x1,0x0   	BRGCON3bits.SEG2PH1 = 0;                                                        F:\MCP\projects\CAN\Source\CAN.c
771
000074   8072     BSF       0x72,0x0,0x0   	BRGCON3bits.SEG2PH0 = 1;                                                        F:\MCP\projects\CAN\Source\CAN.c
772
                                                                                                                            F:\MCP\projects\CAN\Source\CAN.c
773
000076   6a77     CLRF      0x77,0x0       	ECANCON=0;                                                                      F:\MCP\projects\CAN\Source\CAN.c
774
000078   9e77     BCF       0x77,0x7,0x0   	ECANCONbits.MDSEL1 = 0;                                                         F:\MCP\projects\CAN\Source\CAN.c
775
00007a   8c77     BSF       0x77,0x6,0x0   	ECANCONbits.MDSEL0 = 1;                                                         F:\MCP\projects\CAN\Source\CAN.c
776
                                                                                                                            F:\MCP\projects\CAN\Source\CAN.c
777
                                                                                                                            F:\MCP\projects\CAN\Source\CAN.c
778
                                           	// FILTERS AND MASKS                                                            F:\MCP\projects\CAN\Source\CAN.c
779
00007c   8c60     BSF       0x60,0x6,0x0   	RXB0CONbits.RXM1=1;                                                             F:\MCP\projects\CAN\Source\CAN.c
780
00007e   9a60     BCF       0x60,0x5,0x0   	RXB0CONbits.RXM0=0;                                                             F:\MCP\projects\CAN\Source\CAN.c
781
                                                                                                                            F:\MCP\projects\CAN\Source\CAN.c
782
                                                                                                                            F:\MCP\projects\CAN\Source\CAN.c
783
                                           	// INTERRUPTS                                                                   F:\MCP\projects\CAN\Source\CAN.c
784
                                           	                                                                                F:\MCP\projects\CAN\Source\CAN.c
785
                                           	// Diable transmit interrupt                                                    F:\MCP\projects\CAN\Source\CAN.c
786
000080   010d     MOVLB     0xd            	TXBIE = 0;                                                                      F:\MCP\projects\CAN\Source\CAN.c
787
000082   6bfc     CLRF      0xfc,0x1                                                                                        
788
                                                                                                                            F:\MCP\projects\CAN\Source\CAN.c
789
                                           	//rx any interrupt                                                              F:\MCP\projects\CAN\Source\CAN.c
790
000084   6aa4     CLRF      0xa4,0x0       	PIR3 = 0;                                                                       F:\MCP\projects\CAN\Source\CAN.c
791
000086   0e03     MOVLW     0x3            	PIE3 = 0b00000011;                                                              F:\MCP\projects\CAN\Source\CAN.c
792
000088   6ea3     MOVWF     0xa3,0x0                                                                                        
793
                                                                                                                            F:\MCP\projects\CAN\Source\CAN.c
794
                                           	// High interrupt                                                               F:\MCP\projects\CAN\Source\CAN.c
795
00008a   6ea5     MOVWF     0xa5,0x0       	IPR3 =0b00000011;                                                               F:\MCP\projects\CAN\Source\CAN.c
796
                                                                                                                            F:\MCP\projects\CAN\Source\CAN.c
797
                                           	// Programmable buffers interrupt                                               F:\MCP\projects\CAN\Source\CAN.c
798
00008c   69fa     SETF      0xfa,0x1       	BIE0  = 0xFF;	                                                                  F:\MCP\projects\CAN\Source\CAN.c
799
                                                                                                                            F:\MCP\projects\CAN\Source\CAN.c
800
                                                                                                                            F:\MCP\projects\CAN\Source\CAN.c
801
                                           	//loopback mode or not                                                          F:\MCP\projects\CAN\Source\CAN.c
802
                                           	#ifdef CAN_LOOPBACK_MODE                                                        F:\MCP\projects\CAN\Source\CAN.c
803
                                           		CANCON = 0x40;//request loopback mode                                          F:\MCP\projects\CAN\Source\CAN.c
804
                                           		while ((CANSTAT & 0xE0) != 0x40 );//wait for loopback mode                     F:\MCP\projects\CAN\Source\CAN.c
805
                                           	#else                                                                           F:\MCP\projects\CAN\Source\CAN.c
806
00008e   6a6f     CLRF      0x6f,0x0       		CANCON = 0x00;//request normal mode                                            F:\MCP\projects\CAN\Source\CAN.c
807
000090   0ee0     MOVLW     0xe0           		while ((CANSTAT & 0xE0) != 0x00 );//wait for normal mode                       F:\MCP\projects\CAN\Source\CAN.c
808
000092   146e     ANDWF     0x6e,0x0,0x0                                                                                    
809
000094   e001     BZ        0x98                                                                                            
810
000096   d7fc     BRA       0x90                                                                                            
811
                                           	#endif                                                                          F:\MCP\projects\CAN\Source\CAN.c
812
                                                                                                                            F:\MCP\projects\CAN\Source\CAN.c
813
000098   0012     RETURN    0x0            }                                                                                F:\MCP\projects\CAN\Source\CAN.c
814
                                                                                                                            F:\MCP\projects\CAN\Source\CAN.c
815
                                                                                                                            F:\MCP\projects\CAN\Source\CAN.c
816
                                           /*                                                                               F:\MCP\projects\CAN\Source\CAN.c
817
                                           *	Function: canISR                                                               F:\MCP\projects\CAN\Source\CAN.c
818
                                           *                                                                                F:\MCP\projects\CAN\Source\CAN.c
819
                                           *	Input:	none                                                                    F:\MCP\projects\CAN\Source\CAN.c
820
                                           *	Output: none                                                                   F:\MCP\projects\CAN\Source\CAN.c
821
                                           *	Pre-conditions: a call to canInit()                                            F:\MCP\projects\CAN\Source\CAN.c
822
                                           *	Affects: interrupt registers and receive data buffers                          F:\MCP\projects\CAN\Source\CAN.c
823
                                           *	Depends: ..                                                                    F:\MCP\projects\CAN\Source\CAN.c
824
                                           */                                                                               F:\MCP\projects\CAN\Source\CAN.c
825
                                           void canISR()                                                                    F:\MCP\projects\CAN\Source\CAN.c
826
                                           {                                                                                F:\MCP\projects\CAN\Source\CAN.c
827
                                           	                                                                                F:\MCP\projects\CAN\Source\CAN.c
828
                                                                                                                            F:\MCP\projects\CAN\Source\CAN.c
829
00009a   50a4     MOVF      0xa4,0x0,0x0   	if (PIR3bits.RXBnIF || PIR3bits.RXB1IF || PIR3bits.RXB0IF)                      F:\MCP\projects\CAN\Source\CAN.c
830
00009c   0b02     ANDLW     0x2                                                                                             
831
00009e   e106     BNZ       0xac                                                                                            
832
0000a0   50a4     MOVF      0xa4,0x0,0x0                                                                                    
833
0000a2   0b02     ANDLW     0x2                                                                                             
834
0000a4   e103     BNZ       0xac                                                                                            
835
0000a6   50a4     MOVF      0xa4,0x0,0x0                                                                                    
836
0000a8   0b01     ANDLW     0x1                                                                                             
837
0000aa   e047     BZ        0x13a                                                                                           
838
                                           	{                                                                               F:\MCP\projects\CAN\Source\CAN.c
839
                                           		// Get which buffer that is ful.                                               F:\MCP\projects\CAN\Source\CAN.c
840
0000ac   ae60     BTFSS     0x60,0x7,0x0   			 if (RXB0CONbits.RXFUL) { ECANCON=(ECANCON&0b00000)|0b10000; canGetPacket(); } F:\MCP\projects\CAN\Source\CAN.c
841
0000ae   d006     BRA       0xbc                                                                                            
842
0000b0   0e00     MOVLW     0x0                                                                                             
843
0000b2   1477     ANDWF     0x77,0x0,0x0                                                                                    
844
0000b4   0910     IORLW     0x10                                                                                            
845
0000b6   6e77     MOVWF     0x77,0x0                                                                                        
846
0000b8   d841     RCALL     0x13c                                                                                           
847
0000ba   d039     BRA       0x12e          		else if (RXB1CONbits.RXFUL) { ECANCON=(ECANCON&0b00000)|0b10001; canGetPacket(); } F:\MCP\projects\CAN\Source\CAN.c
848
0000bc   010f     MOVLB     0xf                                                                                             
849
0000be   af50     BTFSS     0x50,0x7,0x1                                                                                    
850
0000c0   d006     BRA       0xce                                                                                            
851
0000c2   0e00     MOVLW     0x0                                                                                             
852
0000c4   1477     ANDWF     0x77,0x0,0x0                                                                                    
853
0000c6   0911     IORLW     0x11                                                                                            
854
0000c8   6e77     MOVWF     0x77,0x0                                                                                        
855
0000ca   d838     RCALL     0x13c                                                                                           
856
0000cc   d030     BRA       0x12e          		else if (B0CONbits.RXFUL) 	{ ECANCON=(ECANCON&0b00000)|0b10010; canGetPacket(); } F:\MCP\projects\CAN\Source\CAN.c
857
0000ce   010e     MOVLB     0xe                                                                                             
858
0000d0   af20     BTFSS     0x20,0x7,0x1                                                                                    
859
0000d2   d006     BRA       0xe0                                                                                            
860
0000d4   0e00     MOVLW     0x0                                                                                             
861
0000d6   1477     ANDWF     0x77,0x0,0x0                                                                                    
862
0000d8   0912     IORLW     0x12                                                                                            
863
0000da   6e77     MOVWF     0x77,0x0                                                                                        
864
0000dc   d82f     RCALL     0x13c                                                                                           
865
0000de   d027     BRA       0x12e          		else if (B1CONbits.RXFUL) 	{ ECANCON=(ECANCON&0b00000)|0b10011; canGetPacket(); } F:\MCP\projects\CAN\Source\CAN.c
866
0000e0   af30     BTFSS     0x30,0x7,0x1                                                                                    
867
0000e2   d006     BRA       0xf0                                                                                            
868
0000e4   0e00     MOVLW     0x0                                                                                             
869
0000e6   1477     ANDWF     0x77,0x0,0x0                                                                                    
870
0000e8   0913     IORLW     0x13                                                                                            
871
0000ea   6e77     MOVWF     0x77,0x0                                                                                        
872
0000ec   d827     RCALL     0x13c                                                                                           
873
0000ee   d01f     BRA       0x12e          		else if (B2CONbits.RXFUL) 	{ ECANCON=(ECANCON&0b00000)|0b10100; canGetPacket(); } F:\MCP\projects\CAN\Source\CAN.c
874
0000f0   af40     BTFSS     0x40,0x7,0x1                                                                                    
875
0000f2   d006     BRA       0x100                                                                                           
876
0000f4   0e00     MOVLW     0x0                                                                                             
877
0000f6   1477     ANDWF     0x77,0x0,0x0                                                                                    
878
0000f8   0914     IORLW     0x14                                                                                            
879
0000fa   6e77     MOVWF     0x77,0x0                                                                                        
880
0000fc   d81f     RCALL     0x13c                                                                                           
881
0000fe   d017     BRA       0x12e          		else if (B3CONbits.RXFUL) 	{ ECANCON=(ECANCON&0b00000)|0b10101; canGetPacket(); } F:\MCP\projects\CAN\Source\CAN.c
882
000100   af50     BTFSS     0x50,0x7,0x1                                                                                    
883
000102   d006     BRA       0x110                                                                                           
884
000104   0e00     MOVLW     0x0                                                                                             
885
000106   1477     ANDWF     0x77,0x0,0x0                                                                                    
886
000108   0915     IORLW     0x15                                                                                            
887
00010a   6e77     MOVWF     0x77,0x0                                                                                        
888
00010c   d817     RCALL     0x13c                                                                                           
889
00010e   d00f     BRA       0x12e          		else if (B4CONbits.RXFUL) 	{ ECANCON=(ECANCON&0b00000)|0b10110; canGetPacket(); } F:\MCP\projects\CAN\Source\CAN.c
890
000110   af60     BTFSS     0x60,0x7,0x1                                                                                    
891
000112   d006     BRA       0x120                                                                                           
892
000114   0e00     MOVLW     0x0                                                                                             
893
000116   1477     ANDWF     0x77,0x0,0x0                                                                                    
894
000118   0916     IORLW     0x16                                                                                            
895
00011a   6e77     MOVWF     0x77,0x0                                                                                        
896
00011c   d80f     RCALL     0x13c                                                                                           
897
00011e   d007     BRA       0x12e          		else if (B5CONbits.RXFUL) 	{ ECANCON=(ECANCON&0b00000)|0b10111; canGetPacket(); } F:\MCP\projects\CAN\Source\CAN.c
898
000120   af70     BTFSS     0x70,0x7,0x1                                                                                    
899
000122   d005     BRA       0x12e                                                                                           
900
000124   0e00     MOVLW     0x0                                                                                             
901
000126   1477     ANDWF     0x77,0x0,0x0                                                                                    
902
000128   0917     IORLW     0x17                                                                                            
903
00012a   6e77     MOVWF     0x77,0x0                                                                                        
904
00012c   d807     RCALL     0x13c                                                                                           
905
                                           	                                                                                F:\MCP\projects\CAN\Source\CAN.c
906
00012e   b2a4     BTFSC     0xa4,0x1,0x0   		if (PIR3bits.RXBnIF) {PIR3bits.RXBnIF = 0;}                                    F:\MCP\projects\CAN\Source\CAN.c
907
000130   92a4     BCF       0xa4,0x1,0x0                                                                                    
908
000132   b2a4     BTFSC     0xa4,0x1,0x0   		if (PIR3bits.RXB1IF) {PIR3bits.RXB1IF = 0;}                                    F:\MCP\projects\CAN\Source\CAN.c
909
000134   92a4     BCF       0xa4,0x1,0x0                                                                                    
910
000136   b0a4     BTFSC     0xa4,0x0,0x0   		if (PIR3bits.RXB0IF) {PIR3bits.RXB0IF = 0;}                                    F:\MCP\projects\CAN\Source\CAN.c
911
000138   90a4     BCF       0xa4,0x0,0x0                                                                                    
912
                                           	                                                                                F:\MCP\projects\CAN\Source\CAN.c
913
                                           	}                                                                               F:\MCP\projects\CAN\Source\CAN.c
914
00013a   0012     RETURN    0x0            }                                                                                F:\MCP\projects\CAN\Source\CAN.c
915
                                                                                                                            F:\MCP\projects\CAN\Source\CAN.c
916
                                                                                                                            F:\MCP\projects\CAN\Source\CAN.c
917
                                           /*                                                                               F:\MCP\projects\CAN\Source\CAN.c
918
                                           *	Function: canGetPacket                                                         F:\MCP\projects\CAN\Source\CAN.c
919
                                           *                                                                                F:\MCP\projects\CAN\Source\CAN.c
920
                                           *	Input:	none                                                                    F:\MCP\projects\CAN\Source\CAN.c
921
                                           *	Output: none                                                                   F:\MCP\projects\CAN\Source\CAN.c
922
                                           *	Pre-conditions: a call to canISR and an packet is available and banked to RXB0 F:\MCP\projects\CAN\Source\CAN.c
923
                                           *	Affects: Calls canParse() function in main for parsing received packet.        F:\MCP\projects\CAN\Source\CAN.c
924
                                           *	Depends: none.                                                                 F:\MCP\projects\CAN\Source\CAN.c
925
                                           */                                                                               F:\MCP\projects\CAN\Source\CAN.c
926
00013c   cfd9     MOVFF     0xfd9,0xfe6    void canGetPacket()                                                              F:\MCP\projects\CAN\Source\CAN.c
927
00013e   ffe6                                                                                                               
928
000140   cfe1     MOVFF     0xfe1,0xfd9                                                                                     
929
000142   ffd9                                                                                                               
930
000144   0e0e     MOVLW     0xe                                                                                             
931
000146   26e1     ADDWF     0xe1,0x1,0x0                                                                                    
932
                                           {                                                                                F:\MCP\projects\CAN\Source\CAN.c
933
                                           		CAN_MESSAGE cm;                                                                F:\MCP\projects\CAN\Source\CAN.c
934
                                                                                                                            F:\MCP\projects\CAN\Source\CAN.c
935
                                           		// Set extended mode or not.                                                   F:\MCP\projects\CAN\Source\CAN.c
936
000148   5062     MOVF      0x62,0x0,0x0   		cm.extended=(RXB0SIDLbits.EXID==0?FALSE:TRUE);                                 F:\MCP\projects\CAN\Source\CAN.c
937
00014a   0b08     ANDLW     0x8                                                                                             
938
00014c   e102     BNZ       0x152                                                                                           
939
00014e   0e00     MOVLW     0x0                                                                                             
940
000150   d001     BRA       0x154                                                                                           
941
000152   0e01     MOVLW     0x1                                                                                             
942
000154   6ee7     MOVWF     0xe7,0x0                                                                                        
943
000156   0e04     MOVLW     0x4                                                                                             
944
000158   cfe7     MOVFF     0xfe7,0xfdb                                                                                     
945
00015a   ffdb                                                                                                               
946
                                                                                                                            F:\MCP\projects\CAN\Source\CAN.c
947
                                           		// Clear                                                                       F:\MCP\projects\CAN\Source\CAN.c
948
00015c   6ade     CLRF      0xde,0x0       		cm.ident=0;                                                                    F:\MCP\projects\CAN\Source\CAN.c
949
00015e   6ade     CLRF      0xde,0x0                                                                                        
950
000160   6ade     CLRF      0xde,0x0                                                                                        
951
000162   6add     CLRF      0xdd,0x0                                                                                        
952
000164   52dd     MOVF      0xdd,0x1,0x0                                                                                    
953
000166   52dd     MOVF      0xdd,0x1,0x0                                                                                    
954
                                                                                                                            F:\MCP\projects\CAN\Source\CAN.c
955
                                                                                                                            F:\MCP\projects\CAN\Source\CAN.c
956
000168   04db     DECF      0xdb,0x0,0x0   		if (cm.extended==TRUE)                                                         F:\MCP\projects\CAN\Source\CAN.c
957
00016a   e16f     BNZ       0x24a                                                                                           
958
                                           		{                                                                              F:\MCP\projects\CAN\Source\CAN.c
959
                                           			//Read extended ident.                                                        F:\MCP\projects\CAN\Source\CAN.c
960
                                                                                                                            F:\MCP\projects\CAN\Source\CAN.c
961
                                           			//xx xx xx 28 27 26 25 24   23 22 21 20 19 18 17 16   15 14 13 12 11 10 09 08   07 06 05 04 03 02 01 00 F:\MCP\projects\CAN\Source\CAN.c
962
                                                                                                                            F:\MCP\projects\CAN\Source\CAN.c
963
                                                   	//RXB0SIDH 28 27 26 25 24 23 22 21                                      F:\MCP\projects\CAN\Source\CAN.c
964
                                                   	//RXB0SIDL 20 19 18 xx xx xx 17 16                                      F:\MCP\projects\CAN\Source\CAN.c
965
                                                   	//RXB0EIDH 15 14 13 12 11 10 09 08                                      F:\MCP\projects\CAN\Source\CAN.c
966
                                                   	//RXB0EIDL 07 06 05 04 03 02 01 00                                      F:\MCP\projects\CAN\Source\CAN.c
967
                                                                                                                            F:\MCP\projects\CAN\Source\CAN.c
968
                                                                                                                            F:\MCP\projects\CAN\Source\CAN.c
969
00016c   5061     MOVF      0x61,0x0,0x0           	cm.ident = (((DWORD)RXB0SIDH)<<21) + (((DWORD)(RXB0SIDL & 0xE0))<<13) + (((DWORD)(RXB0SIDL & 0x03))<<16) + (((DWORD)RXB0EIDH)<<8) + (BYTE)RXB0EIDL; F:\MCP\projects\CAN\Source\CAN.c
970
00016e   6e00     MOVWF     0x0,0x0                                                                                         
971
000170   6a01     CLRF      0x1,0x0                                                                                         
972
000172   6a02     CLRF      0x2,0x0                                                                                         
973
000174   6a03     CLRF      0x3,0x0                                                                                         
974
000176   0e15     MOVLW     0x15                                                                                            
975
000178   0b1f     ANDLW     0x1f                                                                                            
976
00017a   e007     BZ        0x18a                                                                                           
977
00017c   90d8     BCF       0xd8,0x0,0x0                                                                                    
978
00017e   3600     RLCF      0x0,0x1,0x0                                                                                     
979
000180   3601     RLCF      0x1,0x1,0x0                                                                                     
980
000182   3602     RLCF      0x2,0x1,0x0                                                                                     
981
000184   3603     RLCF      0x3,0x1,0x0                                                                                     
982
000186   06e8     DECF      0xe8,0x1,0x0                                                                                    
983
000188   e1f9     BNZ       0x17c                                                                                           
984
00018a   0ee0     MOVLW     0xe0                                                                                            
985
00018c   1462     ANDWF     0x62,0x0,0x0                                                                                    
986
00018e   6e04     MOVWF     0x4,0x0                                                                                         
987
000190   6a05     CLRF      0x5,0x0                                                                                         
988
000192   6a06     CLRF      0x6,0x0                                                                                         
989
000194   6a07     CLRF      0x7,0x0                                                                                         
990
000196   0e0d     MOVLW     0xd                                                                                             
991
000198   0b1f     ANDLW     0x1f                                                                                            
992
00019a   e007     BZ        0x1aa                                                                                           
993
00019c   90d8     BCF       0xd8,0x0,0x0                                                                                    
994
00019e   3604     RLCF      0x4,0x1,0x0                                                                                     
995
0001a0   3605     RLCF      0x5,0x1,0x0                                                                                     
996
0001a2   3606     RLCF      0x6,0x1,0x0                                                                                     
997
0001a4   3607     RLCF      0x7,0x1,0x0                                                                                     
998
0001a6   06e8     DECF      0xe8,0x1,0x0                                                                                    
999
0001a8   e1f9     BNZ       0x19c                                                                                           
1000
0001aa   5004     MOVF      0x4,0x0,0x0                                                                                     
1001
0001ac   2600     ADDWF     0x0,0x1,0x0                                                                                     
1002
0001ae   5005     MOVF      0x5,0x0,0x0                                                                                     
1003
0001b0   2201     ADDWFC    0x1,0x1,0x0                                                                                     
1004
0001b2   5006     MOVF      0x6,0x0,0x0                                                                                     
1005
0001b4   2202     ADDWFC    0x2,0x1,0x0                                                                                     
1006
0001b6   5007     MOVF      0x7,0x0,0x0                                                                                     
1007
0001b8   2203     ADDWFC    0x3,0x1,0x0                                                                                     
1008
0001ba   0e03     MOVLW     0x3                                                                                             
1009
0001bc   1462     ANDWF     0x62,0x0,0x0                                                                                    
1010
0001be   6e08     MOVWF     0x8,0x0                                                                                         
1011
0001c0   6a09     CLRF      0x9,0x0                                                                                         
1012
0001c2   6a0a     CLRF      0xa,0x0                                                                                         
1013
0001c4   6a0b     CLRF      0xb,0x0                                                                                         
1014
0001c6   0e10     MOVLW     0x10                                                                                            
1015
0001c8   0b1f     ANDLW     0x1f                                                                                            
1016
0001ca   e007     BZ        0x1da                                                                                           
1017
0001cc   90d8     BCF       0xd8,0x0,0x0                                                                                    
1018
0001ce   3608     RLCF      0x8,0x1,0x0                                                                                     
1019
0001d0   3609     RLCF      0x9,0x1,0x0                                                                                     
1020
0001d2   360a     RLCF      0xa,0x1,0x0                                                                                     
1021
0001d4   360b     RLCF      0xb,0x1,0x0                                                                                     
1022
0001d6   06e8     DECF      0xe8,0x1,0x0                                                                                    
1023
0001d8   e1f9     BNZ       0x1cc                                                                                           
1024
0001da   5008     MOVF      0x8,0x0,0x0                                                                                     
1025
0001dc   2600     ADDWF     0x0,0x1,0x0                                                                                     
1026
0001de   5009     MOVF      0x9,0x0,0x0                                                                                     
1027
0001e0   2201     ADDWFC    0x1,0x1,0x0                                                                                     
1028
0001e2   500a     MOVF      0xa,0x0,0x0                                                                                     
1029
0001e4   2202     ADDWFC    0x2,0x1,0x0                                                                                     
1030
0001e6   500b     MOVF      0xb,0x0,0x0                                                                                     
1031
0001e8   2203     ADDWFC    0x3,0x1,0x0                                                                                     
1032
0001ea   5063     MOVF      0x63,0x0,0x0                                                                                    
1033
0001ec   6e0c     MOVWF     0xc,0x0                                                                                         
1034
0001ee   6a0d     CLRF      0xd,0x0                                                                                         
1035
0001f0   6a0e     CLRF      0xe,0x0                                                                                         
1036
0001f2   6a0f     CLRF      0xf,0x0                                                                                         
1037
0001f4   0e08     MOVLW     0x8                                                                                             
1038
0001f6   0b1f     ANDLW     0x1f                                                                                            
1039
0001f8   e007     BZ        0x208                                                                                           
1040
0001fa   90d8     BCF       0xd8,0x0,0x0                                                                                    
1041
0001fc   360c     RLCF      0xc,0x1,0x0                                                                                     
1042
0001fe   360d     RLCF      0xd,0x1,0x0                                                                                     
1043
000200   360e     RLCF      0xe,0x1,0x0                                                                                     
1044
000202   360f     RLCF      0xf,0x1,0x0                                                                                     
1045
000204   06e8     DECF      0xe8,0x1,0x0                                                                                    
1046
000206   e1f9     BNZ       0x1fa                                                                                           
1047
000208   500c     MOVF      0xc,0x0,0x0                                                                                     
1048
00020a   2600     ADDWF     0x0,0x1,0x0                                                                                     
1049
00020c   500d     MOVF      0xd,0x0,0x0                                                                                     
1050
00020e   2201     ADDWFC    0x1,0x1,0x0                                                                                     
1051
000210   500e     MOVF      0xe,0x0,0x0                                                                                     
1052
000212   2202     ADDWFC    0x2,0x1,0x0                                                                                     
1053
000214   500f     MOVF      0xf,0x0,0x0                                                                                     
1054
000216   2203     ADDWFC    0x3,0x1,0x0                                                                                     
1055
000218   5064     MOVF      0x64,0x0,0x0                                                                                    
1056
00021a   6e10     MOVWF     0x10,0x0                                                                                        
1057
00021c   6a11     CLRF      0x11,0x0                                                                                        
1058
00021e   6a12     CLRF      0x12,0x0                                                                                        
1059
000220   6a13     CLRF      0x13,0x0                                                                                        
1060
000222   5010     MOVF      0x10,0x0,0x0                                                                                    
1061
000224   2600     ADDWF     0x0,0x1,0x0                                                                                     
1062
000226   5011     MOVF      0x11,0x0,0x0                                                                                    
1063
000228   2201     ADDWFC    0x1,0x1,0x0                                                                                     
1064
00022a   5012     MOVF      0x12,0x0,0x0                                                                                    
1065
00022c   2202     ADDWFC    0x2,0x1,0x0                                                                                     
1066
00022e   5013     MOVF      0x13,0x0,0x0                                                                                    
1067
000230   2203     ADDWFC    0x3,0x1,0x0                                                                                     
1068
000232   c000     MOVFF     0x0,0xfdf                                                                                       
1069
000234   ffdf                                                                                                               
1070
000236   0e01     MOVLW     0x1                                                                                             
1071
000238   c001     MOVFF     0x1,0xfdb                                                                                       
1072
00023a   ffdb                                                                                                               
1073
00023c   0e02     MOVLW     0x2                                                                                             
1074
00023e   c002     MOVFF     0x2,0xfdb                                                                                       
1075
000240   ffdb                                                                                                               
1076
000242   0e03     MOVLW     0x3                                                                                             
1077
000244   c003     MOVFF     0x3,0xfdb                                                                                       
1078
000246   ffdb                                                                                                               
1079
                                                                                                                            F:\MCP\projects\CAN\Source\CAN.c
1080
                                           		}                                                                              F:\MCP\projects\CAN\Source\CAN.c
1081
000248   d02f     BRA       0x2a8          		else                                                                           F:\MCP\projects\CAN\Source\CAN.c
1082
                                           		{                                                                              F:\MCP\projects\CAN\Source\CAN.c
1083
                                           			//Read standard ident.                                                        F:\MCP\projects\CAN\Source\CAN.c
1084
                                                                                                                            F:\MCP\projects\CAN\Source\CAN.c
1085
                                           			//xx xx xx xx xx 10 09 08   07 06 05 04 03 02 01 00                           F:\MCP\projects\CAN\Source\CAN.c
1086
                                                                                                                            F:\MCP\projects\CAN\Source\CAN.c
1087
                                                   	//RXB0SIDH 10 09 08 07 06 05 04 03                                      F:\MCP\projects\CAN\Source\CAN.c
1088
                                                   	//RXB0SIDL 02 01 00 xx xx xx xx xx                                      F:\MCP\projects\CAN\Source\CAN.c
1089
                                                                                                                            F:\MCP\projects\CAN\Source\CAN.c
1090
00024a   5061     MOVF      0x61,0x0,0x0   			cm.ident = (((DWORD)RXB0SIDH)<<3) + (((DWORD)RXB0SIDL)>>5);                   F:\MCP\projects\CAN\Source\CAN.c
1091
00024c   6e00     MOVWF     0x0,0x0                                                                                         
1092
00024e   6a01     CLRF      0x1,0x0                                                                                         
1093
000250   6a02     CLRF      0x2,0x0                                                                                         
1094
000252   6a03     CLRF      0x3,0x0                                                                                         
1095
000254   0e03     MOVLW     0x3                                                                                             
1096
000256   0b1f     ANDLW     0x1f                                                                                            
1097
000258   e007     BZ        0x268                                                                                           
1098
00025a   90d8     BCF       0xd8,0x0,0x0                                                                                    
1099
00025c   3600     RLCF      0x0,0x1,0x0                                                                                     
1100
00025e   3601     RLCF      0x1,0x1,0x0                                                                                     
1101
000260   3602     RLCF      0x2,0x1,0x0                                                                                     
1102
000262   3603     RLCF      0x3,0x1,0x0                                                                                     
1103
000264   06e8     DECF      0xe8,0x1,0x0                                                                                    
1104
000266   e1f9     BNZ       0x25a                                                                                           
1105
000268   5062     MOVF      0x62,0x0,0x0                                                                                    
1106
00026a   6e04     MOVWF     0x4,0x0                                                                                         
1107
00026c   6a05     CLRF      0x5,0x0                                                                                         
1108
00026e   6a06     CLRF      0x6,0x0                                                                                         
1109
000270   6a07     CLRF      0x7,0x0                                                                                         
1110
000272   0e05     MOVLW     0x5                                                                                             
1111
000274   90d8     BCF       0xd8,0x0,0x0                                                                                    
1112
000276   3207     RRCF      0x7,0x1,0x0                                                                                     
1113
000278   3206     RRCF      0x6,0x1,0x0                                                                                     
1114
00027a   3205     RRCF      0x5,0x1,0x0                                                                                     
1115
00027c   3204     RRCF      0x4,0x1,0x0                                                                                     
1116
00027e   06e8     DECF      0xe8,0x1,0x0                                                                                    
1117
000280   e1f9     BNZ       0x274                                                                                           
1118
000282   5004     MOVF      0x4,0x0,0x0                                                                                     
1119
000284   2600     ADDWF     0x0,0x1,0x0                                                                                     
1120
000286   5005     MOVF      0x5,0x0,0x0                                                                                     
1121
000288   2201     ADDWFC    0x1,0x1,0x0                                                                                     
1122
00028a   5006     MOVF      0x6,0x0,0x0                                                                                     
1123
00028c   2202     ADDWFC    0x2,0x1,0x0                                                                                     
1124
00028e   5007     MOVF      0x7,0x0,0x0                                                                                     
1125
000290   2203     ADDWFC    0x3,0x1,0x0                                                                                     
1126
000292   c000     MOVFF     0x0,0xfdf                                                                                       
1127
000294   ffdf                                                                                                               
1128
000296   0e01     MOVLW     0x1                                                                                             
1129
000298   c001     MOVFF     0x1,0xfdb                                                                                       
1130
00029a   ffdb                                                                                                               
1131
00029c   0e02     MOVLW     0x2                                                                                             
1132
00029e   c002     MOVFF     0x2,0xfdb                                                                                       
1133
0002a0   ffdb                                                                                                               
1134
0002a2   0e03     MOVLW     0x3                                                                                             
1135
0002a4   c003     MOVFF     0x3,0xfdb                                                                                       
1136
0002a6   ffdb                                                                                                               
1137
                                           		}                                                                              F:\MCP\projects\CAN\Source\CAN.c
1138
                                                                                                                            F:\MCP\projects\CAN\Source\CAN.c
1139
                                           		// Data length                                                                 F:\MCP\projects\CAN\Source\CAN.c
1140
0002a8   0e05     MOVLW     0x5            		cm.data_length=RXB0DLC;                                                        F:\MCP\projects\CAN\Source\CAN.c
1141
0002aa   cf65     MOVFF     0xf65,0xfdb                                                                                     
1142
0002ac   ffdb                                                                                                               
1143
                                                                                                                            F:\MCP\projects\CAN\Source\CAN.c
1144
                                           		// Data one bye one, for speed                                                 F:\MCP\projects\CAN\Source\CAN.c
1145
0002ae   0e06     MOVLW     0x6            		cm.data[0]=RXB0D0;	cm.data[1]=RXB0D1;                                          F:\MCP\projects\CAN\Source\CAN.c
1146
0002b0   cf66     MOVFF     0xf66,0xfdb                                                                                     
1147
0002b2   ffdb                                                                                                               
1148
0002b4   0e07     MOVLW     0x7                                                                                             
1149
0002b6   cf67     MOVFF     0xf67,0xfdb                                                                                     
1150
0002b8   ffdb                                                                                                               
1151
0002ba   0e08     MOVLW     0x8            		cm.data[2]=RXB0D2; 	cm.data[3]=RXB0D3;                                         F:\MCP\projects\CAN\Source\CAN.c
1152
0002bc   cf68     MOVFF     0xf68,0xfdb                                                                                     
1153
0002be   ffdb                                                                                                               
1154
0002c0   0e09     MOVLW     0x9                                                                                             
1155
0002c2   cf69     MOVFF     0xf69,0xfdb                                                                                     
1156
0002c4   ffdb                                                                                                               
1157
0002c6   0e0a     MOVLW     0xa            		cm.data[4]=RXB0D4; 	cm.data[5]=RXB0D5;                                         F:\MCP\projects\CAN\Source\CAN.c
1158
0002c8   cf6a     MOVFF     0xf6a,0xfdb                                                                                     
1159
0002ca   ffdb                                                                                                               
1160
0002cc   0e0b     MOVLW     0xb                                                                                             
1161
0002ce   cf6b     MOVFF     0xf6b,0xfdb                                                                                     
1162
0002d0   ffdb                                                                                                               
1163
0002d2   0e0c     MOVLW     0xc            		cm.data[6]=RXB0D6; 	cm.data[7]=RXB0D7;                                         F:\MCP\projects\CAN\Source\CAN.c
1164
0002d4   cf6c     MOVFF     0xf6c,0xfdb                                                                                     
1165
0002d6   ffdb                                                                                                               
1166
0002d8   0e0d     MOVLW     0xd                                                                                             
1167
0002da   cf6d     MOVFF     0xf6d,0xfdb                                                                                     
1168
0002dc   ffdb                                                                                                               
1169
                                                                                                                            F:\MCP\projects\CAN\Source\CAN.c
1170
                                           		// Clear ful status                                                            F:\MCP\projects\CAN\Source\CAN.c
1171
0002de   9e60     BCF       0x60,0x7,0x0   		RXB0CONbits.RXFUL=0;                                                           F:\MCP\projects\CAN\Source\CAN.c
1172
                                                                                                                            F:\MCP\projects\CAN\Source\CAN.c
1173
                                           		//Call main parser                                                             F:\MCP\projects\CAN\Source\CAN.c
1174
0002e0   cfd9     MOVFF     0xfd9,0xfe9    		canParse(cm);                                                                  F:\MCP\projects\CAN\Source\CAN.c
1175
0002e2   ffe9                                                                                                               
1176
0002e4   cfda     MOVFF     0xfda,0xfea                                                                                     
1177
0002e6   ffea                                                                                                               
1178
0002e8   cfee     MOVFF     0xfee,0xfe6                                                                                     
1179
0002ea   ffe6                                                                                                               
1180
0002ec   cfee     MOVFF     0xfee,0xfe6                                                                                     
1181
0002ee   ffe6                                                                                                               
1182
0002f0   cfee     MOVFF     0xfee,0xfe6                                                                                     
1183
0002f2   ffe6                                                                                                               
1184
0002f4   cfee     MOVFF     0xfee,0xfe6                                                                                     
1185
0002f6   ffe6                                                                                                               
1186
0002f8   cfee     MOVFF     0xfee,0xfe6                                                                                     
1187
0002fa   ffe6                                                                                                               
1188
0002fc   cfee     MOVFF     0xfee,0xfe6                                                                                     
1189
0002fe   ffe6                                                                                                               
1190
000300   cfee     MOVFF     0xfee,0xfe6                                                                                     
1191
000302   ffe6                                                                                                               
1192
000304   cfee     MOVFF     0xfee,0xfe6                                                                                     
1193
000306   ffe6                                                                                                               
1194
000308   cfee     MOVFF     0xfee,0xfe6                                                                                     
1195
00030a   ffe6                                                                                                               
1196
00030c   cfee     MOVFF     0xfee,0xfe6                                                                                     
1197
00030e   ffe6                                                                                                               
1198
000310   cfee     MOVFF     0xfee,0xfe6                                                                                     
1199
000312   ffe6                                                                                                               
1200
000314   cfee     MOVFF     0xfee,0xfe6                                                                                     
1201
000316   ffe6                                                                                                               
1202
000318   cfee     MOVFF     0xfee,0xfe6                                                                                     
1203
00031a   ffe6                                                                                                               
1204
00031c   cfee     MOVFF     0xfee,0xfe6                                                                                     
1205
00031e   ffe6                                                                                                               
1206
000320   ecfb     CALL      0x5f6,0x0                                                                                       
1207
000322   f002                                                                                                               
1208
000324   6e00     MOVWF     0x0,0x0                                                                                         
1209
000326   0e0e     MOVLW     0xe                                                                                             
1210
000328   5ee1     SUBWF     0xe1,0x1,0x0                                                                                    
1211
00032a   5000     MOVF      0x0,0x0,0x0                                                                                     
1212
00032c   0e0e     MOVLW     0xe            }                                                                                F:\MCP\projects\CAN\Source\CAN.c
1213
00032e   5ce1     SUBWF     0xe1,0x0,0x0                                                                                    
1214
000330   e202     BC        0x336                                                                                           
1215
000332   6ae1     CLRF      0xe1,0x0                                                                                        
1216
000334   52e5     MOVF      0xe5,0x1,0x0                                                                                    
1217
000336   6ee1     MOVWF     0xe1,0x0                                                                                        
1218
000338   52e5     MOVF      0xe5,0x1,0x0                                                                                    
1219
00033a   cfe7     MOVFF     0xfe7,0xfd9                                                                                     
1220
00033c   ffd9                                                                                                               
1221
00033e   0012     RETURN    0x0                                                                                             
1222
                                                                                                                            F:\MCP\projects\CAN\Source\CAN.c
1223
                                                                                                                            F:\MCP\projects\CAN\Source\CAN.c
1224
                                           /*                                                                               F:\MCP\projects\CAN\Source\CAN.c
1225
                                           *	Function: canSendMessage                                                       F:\MCP\projects\CAN\Source\CAN.c
1226
                                           *                                                                                F:\MCP\projects\CAN\Source\CAN.c
1227
                                           *	Input:	CAN_MESSAGE to send                                                     F:\MCP\projects\CAN\Source\CAN.c
1228
                                           *	Output: True if packet scheduled sucess, false otherwise.                      F:\MCP\projects\CAN\Source\CAN.c
1229
                                           *	Pre-conditions: canInit                                                        F:\MCP\projects\CAN\Source\CAN.c
1230
                                           *	Affects: ..                                                                    F:\MCP\projects\CAN\Source\CAN.c
1231
                                           *	Depends: ..                                                                    F:\MCP\projects\CAN\Source\CAN.c
1232
                                           */                                                                               F:\MCP\projects\CAN\Source\CAN.c
1233
000340   cfd9     MOVFF     0xfd9,0xfe6    BOOL canSendMessage(CAN_MESSAGE cm)                                              F:\MCP\projects\CAN\Source\CAN.c
1234
000342   ffe6                                                                                                               
1235
000344   cfe1     MOVFF     0xfe1,0xfd9                                                                                     
1236
000346   ffd9                                                                                                               
1237
                                           {                                                                                F:\MCP\projects\CAN\Source\CAN.c
1238
                                           	                                                                                F:\MCP\projects\CAN\Source\CAN.c
1239
000348   010f     MOVLB     0xf            	if ( TXB0CONbits.TXREQ == 0 )  { ECANCON=(ECANCON&0b00000)|0b00011; }           F:\MCP\projects\CAN\Source\CAN.c
1240
00034a   b740     BTFSC     0x40,0x3,0x1                                                                                    
1241
00034c   d004     BRA       0x356                                                                                           
1242
00034e   0e00     MOVLW     0x0                                                                                             
1243
000350   1477     ANDWF     0x77,0x0,0x0                                                                                    
1244
000352   0903     IORLW     0x3                                                                                             
1245
000354   6e77     MOVWF     0x77,0x0                                                                                        
1246
000356   010f     MOVLB     0xf            	if ( TXB1CONbits.TXREQ == 0 )  { ECANCON=(ECANCON&0b00000)|0b00100; }           F:\MCP\projects\CAN\Source\CAN.c
1247
000358   b730     BTFSC     0x30,0x3,0x1                                                                                    
1248
00035a   d004     BRA       0x364                                                                                           
1249
00035c   0e00     MOVLW     0x0                                                                                             
1250
00035e   1477     ANDWF     0x77,0x0,0x0                                                                                    
1251
000360   0904     IORLW     0x4                                                                                             
1252
000362   6e77     MOVWF     0x77,0x0                                                                                        
1253
000364   010f     MOVLB     0xf            	if ( TXB2CONbits.TXREQ == 0 )  { ECANCON=(ECANCON&0b00000)|0b00101; }           F:\MCP\projects\CAN\Source\CAN.c
1254
000366   b720     BTFSC     0x20,0x3,0x1                                                                                    
1255
000368   d005     BRA       0x374                                                                                           
1256
00036a   0e00     MOVLW     0x0                                                                                             
1257
00036c   1477     ANDWF     0x77,0x0,0x0                                                                                    
1258
00036e   0905     IORLW     0x5                                                                                             
1259
000370   6e77     MOVWF     0x77,0x0                                                                                        
1260
                                           	// None of the transmit buffers were empty.                                     F:\MCP\projects\CAN\Source\CAN.c
1261
000372   d002     BRA       0x378          	else { return FALSE;}                                                           F:\MCP\projects\CAN\Source\CAN.c
1262
000374   0e00     MOVLW     0x0                                                                                             
1263
000376   d0c0     BRA       0x4f8                                                                                           
1264
                                                                                                                            F:\MCP\projects\CAN\Source\CAN.c
1265
                                                                                                                            F:\MCP\projects\CAN\Source\CAN.c
1266
000378   0ef5     MOVLW     0xf5           		if (cm.extended==TRUE)                                                         F:\MCP\projects\CAN\Source\CAN.c
1267
00037a   04db     DECF      0xdb,0x0,0x0                                                                                    
1268
00037c   e15f     BNZ       0x43c                                                                                           
1269
                                           		{                                                                              F:\MCP\projects\CAN\Source\CAN.c
1270
                                           			//Write extended ident.                                                       F:\MCP\projects\CAN\Source\CAN.c
1271
                                           	                                                                                F:\MCP\projects\CAN\Source\CAN.c
1272
                                           			//xx xx xx 28 27 26 25 24   23 22 21 20 19 18 17 16   15 14 13 12 11 10 09 08   07 06 05 04 03 02 01 00 F:\MCP\projects\CAN\Source\CAN.c
1273
                                                                                                                            F:\MCP\projects\CAN\Source\CAN.c
1274
                                                   	//RXB0SIDH 28 27 26 25 24 23 22 21                                      F:\MCP\projects\CAN\Source\CAN.c
1275
                                                   	//RXB0SIDL 20 19 18 xx xx xx 17 16                                      F:\MCP\projects\CAN\Source\CAN.c
1276
                                                   	//RXB0EIDH 15 14 13 12 11 10 09 08                                      F:\MCP\projects\CAN\Source\CAN.c
1277
                                                   	//RXB0EIDL 07 06 05 04 03 02 01 00                                      F:\MCP\projects\CAN\Source\CAN.c
1278
                                                                                                                            F:\MCP\projects\CAN\Source\CAN.c
1279
                                                                                                                            F:\MCP\projects\CAN\Source\CAN.c
1280
00037e   0ef1     MOVLW     0xf1                   	RXB0SIDH =  (BYTE)((cm.ident>>21));                                     F:\MCP\projects\CAN\Source\CAN.c
1281
000380   cfdb     MOVFF     0xfdb,0x0                                                                                       
1282
000382   f000                                                                                                               
1283
000384   0ef2     MOVLW     0xf2                                                                                            
1284
000386   cfdb     MOVFF     0xfdb,0x1                                                                                       
1285
000388   f001                                                                                                               
1286
00038a   0ef3     MOVLW     0xf3                                                                                            
1287
00038c   cfdb     MOVFF     0xfdb,0x2                                                                                       
1288
00038e   f002                                                                                                               
1289
000390   0ef4     MOVLW     0xf4                                                                                            
1290
000392   cfdb     MOVFF     0xfdb,0x3                                                                                       
1291
000394   f003                                                                                                               
1292
000396   0e15     MOVLW     0x15                                                                                            
1293
000398   90d8     BCF       0xd8,0x0,0x0                                                                                    
1294
00039a   3203     RRCF      0x3,0x1,0x0                                                                                     
1295
00039c   3202     RRCF      0x2,0x1,0x0                                                                                     
1296
00039e   3201     RRCF      0x1,0x1,0x0                                                                                     
1297
0003a0   3200     RRCF      0x0,0x1,0x0                                                                                     
1298
0003a2   06e8     DECF      0xe8,0x1,0x0                                                                                    
1299
0003a4   e1f9     BNZ       0x398                                                                                           
1300
0003a6   5000     MOVF      0x0,0x0,0x0                                                                                     
1301
0003a8   6e61     MOVWF     0x61,0x0                                                                                        
1302
0003aa   0ef1     MOVLW     0xf1                   	RXB0SIDL = ((BYTE)(cm.ident>>16) & 0x03) + ((BYTE)(cm.ident>>13) & 0xE0); F:\MCP\projects\CAN\Source\CAN.c
1303
0003ac   cfdb     MOVFF     0xfdb,0x5                                                                                       
1304
0003ae   f005                                                                                                               
1305
0003b0   0ef2     MOVLW     0xf2                                                                                            
1306
0003b2   cfdb     MOVFF     0xfdb,0x6                                                                                       
1307
0003b4   f006                                                                                                               
1308
0003b6   0ef3     MOVLW     0xf3                                                                                            
1309
0003b8   cfdb     MOVFF     0xfdb,0x7                                                                                       
1310
0003ba   f007                                                                                                               
1311
0003bc   0ef4     MOVLW     0xf4                                                                                            
1312
0003be   cfdb     MOVFF     0xfdb,0x8                                                                                       
1313
0003c0   f008                                                                                                               
1314
0003c2   0e0d     MOVLW     0xd                                                                                             
1315
0003c4   90d8     BCF       0xd8,0x0,0x0                                                                                    
1316
0003c6   3208     RRCF      0x8,0x1,0x0                                                                                     
1317
0003c8   3207     RRCF      0x7,0x1,0x0                                                                                     
1318
0003ca   3206     RRCF      0x6,0x1,0x0                                                                                     
1319
0003cc   3205     RRCF      0x5,0x1,0x0                                                                                     
1320
0003ce   06e8     DECF      0xe8,0x1,0x0                                                                                    
1321
0003d0   e1f9     BNZ       0x3c4                                                                                           
1322
0003d2   0ee0     MOVLW     0xe0                                                                                            
1323
0003d4   1405     ANDWF     0x5,0x0,0x0                                                                                     
1324
0003d6   6e04     MOVWF     0x4,0x0                                                                                         
1325
0003d8   0ef1     MOVLW     0xf1                                                                                            
1326
0003da   cfdb     MOVFF     0xfdb,0x0                                                                                       
1327
0003dc   f000                                                                                                               
1328
0003de   0ef2     MOVLW     0xf2                                                                                            
1329
0003e0   cfdb     MOVFF     0xfdb,0x1                                                                                       
1330
0003e2   f001                                                                                                               
1331
0003e4   0ef3     MOVLW     0xf3                                                                                            
1332
0003e6   cfdb     MOVFF     0xfdb,0x2                                                                                       
1333
0003e8   f002                                                                                                               
1334
0003ea   0ef4     MOVLW     0xf4                                                                                            
1335
0003ec   cfdb     MOVFF     0xfdb,0x3                                                                                       
1336
0003ee   f003                                                                                                               
1337
0003f0   0e10     MOVLW     0x10                                                                                            
1338
0003f2   90d8     BCF       0xd8,0x0,0x0                                                                                    
1339
0003f4   3203     RRCF      0x3,0x1,0x0                                                                                     
1340
0003f6   3202     RRCF      0x2,0x1,0x0                                                                                     
1341
0003f8   3201     RRCF      0x1,0x1,0x0                                                                                     
1342
0003fa   3200     RRCF      0x0,0x1,0x0                                                                                     
1343
0003fc   06e8     DECF      0xe8,0x1,0x0                                                                                    
1344
0003fe   e1f9     BNZ       0x3f2                                                                                           
1345
000400   0e03     MOVLW     0x3                                                                                             
1346
000402   1400     ANDWF     0x0,0x0,0x0                                                                                     
1347
000404   2404     ADDWF     0x4,0x0,0x0                                                                                     
1348
000406   6e62     MOVWF     0x62,0x0                                                                                        
1349
000408   0ef1     MOVLW     0xf1                   	RXB0EIDH =  (BYTE)(cm.ident>>8);                                        F:\MCP\projects\CAN\Source\CAN.c
1350
00040a   cfdb     MOVFF     0xfdb,0x0                                                                                       
1351
00040c   f000                                                                                                               
1352
00040e   0ef2     MOVLW     0xf2                                                                                            
1353
000410   cfdb     MOVFF     0xfdb,0x1                                                                                       
1354
000412   f001                                                                                                               
1355
000414   0ef3     MOVLW     0xf3                                                                                            
1356
000416   cfdb     MOVFF     0xfdb,0x2                                                                                       
1357
000418   f002                                                                                                               
1358
00041a   0ef4     MOVLW     0xf4                                                                                            
1359
00041c   cfdb     MOVFF     0xfdb,0x3                                                                                       
1360
00041e   f003                                                                                                               
1361
000420   0e08     MOVLW     0x8                                                                                             
1362
000422   90d8     BCF       0xd8,0x0,0x0                                                                                    
1363
000424   3203     RRCF      0x3,0x1,0x0                                                                                     
1364
000426   3202     RRCF      0x2,0x1,0x0                                                                                     
1365
000428   3201     RRCF      0x1,0x1,0x0                                                                                     
1366
00042a   3200     RRCF      0x0,0x1,0x0                                                                                     
1367
00042c   06e8     DECF      0xe8,0x1,0x0                                                                                    
1368
00042e   e1f9     BNZ       0x422                                                                                           
1369
000430   5000     MOVF      0x0,0x0,0x0                                                                                     
1370
000432   6e63     MOVWF     0x63,0x0                                                                                        
1371
000434   0ef1     MOVLW     0xf1                   	RXB0EIDL =  (BYTE)cm.ident;                                             F:\MCP\projects\CAN\Source\CAN.c
1372
000436   50db     MOVF      0xdb,0x0,0x0                                                                                    
1373
000438   6e64     MOVWF     0x64,0x0                                                                                        
1374
                                                                                                                            F:\MCP\projects\CAN\Source\CAN.c
1375
                                           		}                                                                              F:\MCP\projects\CAN\Source\CAN.c
1376
00043a   d02f     BRA       0x49a          		else                                                                           F:\MCP\projects\CAN\Source\CAN.c
1377
                                           		{                                                                              F:\MCP\projects\CAN\Source\CAN.c
1378
                                           			//Write standard ident.                                                       F:\MCP\projects\CAN\Source\CAN.c
1379
                                           		                                                                               F:\MCP\projects\CAN\Source\CAN.c
1380
                                           			//xx xx xx xx xx 10 09 08   07 06 05 04 03 02 01 00                           F:\MCP\projects\CAN\Source\CAN.c
1381
                                                                                                                            F:\MCP\projects\CAN\Source\CAN.c
1382
                                                   	//RXB0SIDH 10 09 08 07 06 05 04 03                                      F:\MCP\projects\CAN\Source\CAN.c
1383
                                                   	//RXB0SIDL 02 01 00 xx xx xx xx xx                                      F:\MCP\projects\CAN\Source\CAN.c
1384
                                                                                                                            F:\MCP\projects\CAN\Source\CAN.c
1385
00043c   0ef1     MOVLW     0xf1                  		RXB0SIDH=  (BYTE)(cm.ident>>3);                                         F:\MCP\projects\CAN\Source\CAN.c
1386
00043e   cfdb     MOVFF     0xfdb,0x0                                                                                       
1387
000440   f000                                                                                                               
1388
000442   0ef2     MOVLW     0xf2                                                                                            
1389
000444   cfdb     MOVFF     0xfdb,0x1                                                                                       
1390
000446   f001                                                                                                               
1391
000448   0ef3     MOVLW     0xf3                                                                                            
1392
00044a   cfdb     MOVFF     0xfdb,0x2                                                                                       
1393
00044c   f002                                                                                                               
1394
00044e   0ef4     MOVLW     0xf4                                                                                            
1395
000450   cfdb     MOVFF     0xfdb,0x3                                                                                       
1396
000452   f003                                                                                                               
1397
000454   0e03     MOVLW     0x3                                                                                             
1398
000456   90d8     BCF       0xd8,0x0,0x0                                                                                    
1399
000458   3203     RRCF      0x3,0x1,0x0                                                                                     
1400
00045a   3202     RRCF      0x2,0x1,0x0                                                                                     
1401
00045c   3201     RRCF      0x1,0x1,0x0                                                                                     
1402
00045e   3200     RRCF      0x0,0x1,0x0                                                                                     
1403
000460   06e8     DECF      0xe8,0x1,0x0                                                                                    
1404
000462   e1f9     BNZ       0x456                                                                                           
1405
000464   5000     MOVF      0x0,0x0,0x0                                                                                     
1406
000466   6e61     MOVWF     0x61,0x0                                                                                        
1407
000468   0ef1     MOVLW     0xf1                   	RXB0SIDL= ((BYTE)(cm.ident<<5) & 0xE0);                                 F:\MCP\projects\CAN\Source\CAN.c
1408
00046a   cfdb     MOVFF     0xfdb,0x0                                                                                       
1409
00046c   f000                                                                                                               
1410
00046e   0ef2     MOVLW     0xf2                                                                                            
1411
000470   cfdb     MOVFF     0xfdb,0x1                                                                                       
1412
000472   f001                                                                                                               
1413
000474   0ef3     MOVLW     0xf3                                                                                            
1414
000476   cfdb     MOVFF     0xfdb,0x2                                                                                       
1415
000478   f002                                                                                                               
1416
00047a   0ef4     MOVLW     0xf4                                                                                            
1417
00047c   cfdb     MOVFF     0xfdb,0x3                                                                                       
1418
00047e   f003                                                                                                               
1419
000480   0e05     MOVLW     0x5                                                                                             
1420
000482   0b1f     ANDLW     0x1f                                                                                            
1421
000484   e007     BZ        0x494                                                                                           
1422
000486   90d8     BCF       0xd8,0x0,0x0                                                                                    
1423
000488   3600     RLCF      0x0,0x1,0x0                                                                                     
1424
00048a   3601     RLCF      0x1,0x1,0x0                                                                                     
1425
00048c   3602     RLCF      0x2,0x1,0x0                                                                                     
1426
00048e   3603     RLCF      0x3,0x1,0x0                                                                                     
1427
000490   06e8     DECF      0xe8,0x1,0x0                                                                                    
1428
000492   e1f9     BNZ       0x486                                                                                           
1429
000494   0ee0     MOVLW     0xe0                                                                                            
1430
000496   1400     ANDWF     0x0,0x0,0x0                                                                                     
1431
000498   6e62     MOVWF     0x62,0x0                                                                                        
1432
                                                                                                                            F:\MCP\projects\CAN\Source\CAN.c
1433
                                           		}                                                                              F:\MCP\projects\CAN\Source\CAN.c
1434
                                                                                                                            F:\MCP\projects\CAN\Source\CAN.c
1435
                                           		// Data length                                                                 F:\MCP\projects\CAN\Source\CAN.c
1436
00049a   0ef6     MOVLW     0xf6           		if (cm.data_length>8) RXB0DLC=8; else RXB0DLC=cm.data_length;                  F:\MCP\projects\CAN\Source\CAN.c
1437
00049c   50db     MOVF      0xdb,0x0,0x0                                                                                    
1438
00049e   0808     SUBLW     0x8                                                                                             
1439
0004a0   e203     BC        0x4a8                                                                                           
1440
0004a2   0e08     MOVLW     0x8                                                                                             
1441
0004a4   6e65     MOVWF     0x65,0x0                                                                                        
1442
0004a6   d003     BRA       0x4ae                                                                                           
1443
0004a8   0ef6     MOVLW     0xf6                                                                                            
1444
0004aa   50db     MOVF      0xdb,0x0,0x0                                                                                    
1445
0004ac   6e65     MOVWF     0x65,0x0                                                                                        
1446
                                                                                                                            F:\MCP\projects\CAN\Source\CAN.c
1447
                                           		// Data one bye one, for speed                                                 F:\MCP\projects\CAN\Source\CAN.c
1448
0004ae   0ef7     MOVLW     0xf7           		RXB0D0=cm.data[0];	RXB0D1=cm.data[1];                                          F:\MCP\projects\CAN\Source\CAN.c
1449
0004b0   50db     MOVF      0xdb,0x0,0x0                                                                                    
1450
0004b2   6e66     MOVWF     0x66,0x0                                                                                        
1451
0004b4   0ef8     MOVLW     0xf8                                                                                            
1452
0004b6   50db     MOVF      0xdb,0x0,0x0                                                                                    
1453
0004b8   6e67     MOVWF     0x67,0x0                                                                                        
1454
0004ba   0ef9     MOVLW     0xf9           		RXB0D2=cm.data[2]; 	RXB0D3=cm.data[3];                                         F:\MCP\projects\CAN\Source\CAN.c
1455
0004bc   50db     MOVF      0xdb,0x0,0x0                                                                                    
1456
0004be   6e68     MOVWF     0x68,0x0                                                                                        
1457
0004c0   0efa     MOVLW     0xfa                                                                                            
1458
0004c2   50db     MOVF      0xdb,0x0,0x0                                                                                    
1459
0004c4   6e69     MOVWF     0x69,0x0                                                                                        
1460
0004c6   0efb     MOVLW     0xfb           		RXB0D4=cm.data[4]; 	RXB0D5=cm.data[5];                                         F:\MCP\projects\CAN\Source\CAN.c
1461
0004c8   50db     MOVF      0xdb,0x0,0x0                                                                                    
1462
0004ca   6e6a     MOVWF     0x6a,0x0                                                                                        
1463
0004cc   0efc     MOVLW     0xfc                                                                                            
1464
0004ce   50db     MOVF      0xdb,0x0,0x0                                                                                    
1465
0004d0   6e6b     MOVWF     0x6b,0x0                                                                                        
1466
0004d2   0efd     MOVLW     0xfd           		RXB0D6=cm.data[6]; 	RXB0D7=cm.data[7];                                         F:\MCP\projects\CAN\Source\CAN.c
1467
0004d4   50db     MOVF      0xdb,0x0,0x0                                                                                    
1468
0004d6   6e6c     MOVWF     0x6c,0x0                                                                                        
1469
0004d8   0efe     MOVLW     0xfe                                                                                            
1470
0004da   50db     MOVF      0xdb,0x0,0x0                                                                                    
1471
0004dc   6e6d     MOVWF     0x6d,0x0                                                                                        
1472
                                                                                                                            F:\MCP\projects\CAN\Source\CAN.c
1473
                                           		// set extended or not                                                         F:\MCP\projects\CAN\Source\CAN.c
1474
0004de   0ef5     MOVLW     0xf5           		RXB0SIDLbits.EXID=(cm.extended==TRUE?1:0);                                     F:\MCP\projects\CAN\Source\CAN.c
1475
0004e0   04db     DECF      0xdb,0x0,0x0                                                                                    
1476
0004e2   e102     BNZ       0x4e8                                                                                           
1477
0004e4   0e01     MOVLW     0x1                                                                                             
1478
0004e6   d001     BRA       0x4ea                                                                                           
1479
0004e8   0e00     MOVLW     0x0                                                                                             
1480
0004ea   b0e8     BTFSC     0xe8,0x0,0x0                                                                                    
1481
0004ec   8662     BSF       0x62,0x3,0x0                                                                                    
1482
0004ee   a0e8     BTFSS     0xe8,0x0,0x0                                                                                    
1483
0004f0   9662     BCF       0x62,0x3,0x0                                                                                    
1484
                                                                                                                            F:\MCP\projects\CAN\Source\CAN.c
1485
                                                                                                                            F:\MCP\projects\CAN\Source\CAN.c
1486
                                           		// mark as redy to transmit                                                    F:\MCP\projects\CAN\Source\CAN.c
1487
                                           		_asm                                                                           F:\MCP\projects\CAN\Source\CAN.c
1488
0004f2   8660     BSF       0x60,0x3,0x0   			bsf RXB0CON, 3, 0                                                             F:\MCP\projects\CAN\Source\CAN.c
1489
                                           		_endasm                                                                        F:\MCP\projects\CAN\Source\CAN.c
1490
                                                                                                                            F:\MCP\projects\CAN\Source\CAN.c
1491
0004f4   0e01     MOVLW     0x1            		return TRUE;                                                                   F:\MCP\projects\CAN\Source\CAN.c
1492
0004f6   d000     BRA       0x4f8                                                                                           
1493
                                                                                                                            F:\MCP\projects\CAN\Source\CAN.c
1494
0004f8   52e5     MOVF      0xe5,0x1,0x0   }                                                                                F:\MCP\projects\CAN\Source\CAN.c
1495
0004fa   cfe7     MOVFF     0xfe7,0xfd9                                                                                     
1496
0004fc   ffd9                                                                                                               
1497
0004fe   0012     RETURN    0x0                                                                                             
1498
                                                                                                                            F:\MCP\projects\CAN\Source\CAN.c
1499
                                                                                                                            F:\MCP\projects\CAN\Source\CAN.c
1500
                                                                                                                            F:\MCP\projects\CAN\Source\CAN.c
1501
                                           #endif //USE_CAN                                                                 F:\MCP\projects\CAN\Source\CAN.c
1502
                                           /*********************************************************************           F:\MCP\projects\CAN\Source\Tick.c
1503
                                            *                                                                               F:\MCP\projects\CAN\Source\Tick.c
1504
                                            *                  Ticker service                                               F:\MCP\projects\CAN\Source\Tick.c
1505
                                            *                                                                               F:\MCP\projects\CAN\Source\Tick.c
1506
                                            *********************************************************************           F:\MCP\projects\CAN\Source\Tick.c
1507
                                            * FileName:        Tick.c                                                       F:\MCP\projects\CAN\Source\Tick.c
1508
                                            *                                                                               F:\MCP\projects\CAN\Source\Tick.c
1509
                                            * Author               Date    Comment                                          F:\MCP\projects\CAN\Source\Tick.c
1510
                                            *~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~           F:\MCP\projects\CAN\Source\Tick.c
1511
                                            * Johan Böhlin     21-10-06 	Original        (Rev 1.0)                          F:\MCP\projects\CAN\Source\Tick.c
1512
                                            ********************************************************************/           F:\MCP\projects\CAN\Source\Tick.c
1513
                                                                                                                            F:\MCP\projects\CAN\Source\Tick.c
1514
                                           #define TICK_INCLUDE                                                             F:\MCP\projects\CAN\Source\Tick.c
1515
                                                                                                                            F:\MCP\projects\CAN\Source\Tick.c
1516
                                           #include <Tick.h>                                                                F:\MCP\projects\CAN\Source\Tick.c
1517
                                           #include <Compiler.h>                                                            F:\MCP\projects\CAN\Source\Tick.c
1518
                                                                                                                            F:\MCP\projects\CAN\Source\Tick.c
1519
                                           #define TICK_TEMP_VALUE_1 ((INSTR_FREQ) / (TICKS_PER_SECOND * TICK_PRESCALE_VALUE)) F:\MCP\projects\CAN\Source\Tick.c
1520
                                                                                                                            F:\MCP\projects\CAN\Source\Tick.c
1521
                                           #if TICK_TEMP_VALUE_1 > 60000                                                    F:\MCP\projects\CAN\Source\Tick.c
1522
                                           #error TICK_PER_SECOND value cannot be programmed with current CLOCK_FREQ        F:\MCP\projects\CAN\Source\Tick.c
1523
                                           #error Either lower TICK_PER_SECOND or manually configure the Timer              F:\MCP\projects\CAN\Source\Tick.c
1524
                                           #endif                                                                           F:\MCP\projects\CAN\Source\Tick.c
1525
                                                                                                                            F:\MCP\projects\CAN\Source\Tick.c
1526
                                           #define TICK_TEMP_VALUE         (65535 - TICK_TEMP_VALUE_1)                      F:\MCP\projects\CAN\Source\Tick.c
1527
                                                                                                                            F:\MCP\projects\CAN\Source\Tick.c
1528
                                           #define TICK_COUNTER_HIGH       ((TICK_TEMP_VALUE >> 8) & 0xff)                  F:\MCP\projects\CAN\Source\Tick.c
1529
                                           #define TICK_COUNTER_LOW        (TICK_TEMP_VALUE & 0xff)                         F:\MCP\projects\CAN\Source\Tick.c
1530
                                                                                                                            F:\MCP\projects\CAN\Source\Tick.c
1531
                                           #if (TICK_PRESCALE_VALUE == 2)                                                   F:\MCP\projects\CAN\Source\Tick.c
1532
                                               #define TIMER_PRESCALE  (0)                                                  F:\MCP\projects\CAN\Source\Tick.c
1533
                                           #elif ( TICK_PRESCALE_VALUE == 4 )                                               F:\MCP\projects\CAN\Source\Tick.c
1534
                                               #define TIMER_PRESCALE  (1)                                                  F:\MCP\projects\CAN\Source\Tick.c
1535
                                           #elif ( TICK_PRESCALE_VALUE == 8 )                                               F:\MCP\projects\CAN\Source\Tick.c
1536
                                               #define TIMER_PRESCALE  (2)                                                  F:\MCP\projects\CAN\Source\Tick.c
1537
                                           #elif ( TICK_PRESCALE_VALUE == 16 )                                              F:\MCP\projects\CAN\Source\Tick.c
1538
                                               #define TIMER_PRESCALE  (3)                                                  F:\MCP\projects\CAN\Source\Tick.c
1539
                                           #elif ( TICK_PRESCALE_VALUE == 32 )                                              F:\MCP\projects\CAN\Source\Tick.c
1540
                                               #define TIMER_PRESCALE  (4)                                                  F:\MCP\projects\CAN\Source\Tick.c
1541
                                           #elif ( TICK_PRESCALE_VALUE == 64 )                                              F:\MCP\projects\CAN\Source\Tick.c
1542
                                               #define TIMER_PRESCALE  (5)                                                  F:\MCP\projects\CAN\Source\Tick.c
1543
                                           #elif ( TICK_PRESCALE_VALUE == 128 )                                             F:\MCP\projects\CAN\Source\Tick.c
1544
                                               #define TIMER_PRESCALE  (6)                                                  F:\MCP\projects\CAN\Source\Tick.c
1545
                                           #elif ( TICK_PRESCALE_VALUE == 256 )                                             F:\MCP\projects\CAN\Source\Tick.c
1546
                                               #define TIMER_PRESCALE  (7)                                                  F:\MCP\projects\CAN\Source\Tick.c
1547
                                           #else                                                                            F:\MCP\projects\CAN\Source\Tick.c
1548
                                               #error Invalid TICK_PRESCALE_VALUE specified.                                F:\MCP\projects\CAN\Source\Tick.c
1549
                                           #endif                                                                           F:\MCP\projects\CAN\Source\Tick.c
1550
                                                                                                                            F:\MCP\projects\CAN\Source\Tick.c
1551
                                                                                                                            F:\MCP\projects\CAN\Source\Tick.c
1552
                                           TICK TickCount = 0;	// 10ms/unit                                                 F:\MCP\projects\CAN\Source\Tick.c
1553
                                                                                                                            F:\MCP\projects\CAN\Source\Tick.c
1554
                                                                                                                            F:\MCP\projects\CAN\Source\Tick.c
1555
                                                                                                                            F:\MCP\projects\CAN\Source\Tick.c
1556
                                           /*                                                                               F:\MCP\projects\CAN\Source\Tick.c
1557
                                           *	Function: TickInit                                                             F:\MCP\projects\CAN\Source\Tick.c
1558
                                           *                                                                                F:\MCP\projects\CAN\Source\Tick.c
1559
                                           *	Input:	none                                                                    F:\MCP\projects\CAN\Source\Tick.c
1560
                                           *	Output: Tick manager is initialized.                                           F:\MCP\projects\CAN\Source\Tick.c
1561
                                           *	Pre-conditions: TickInit                                                       F:\MCP\projects\CAN\Source\Tick.c
1562
                                           *	Affects: none                                                                  F:\MCP\projects\CAN\Source\Tick.c
1563
                                           *	Depends: none                                                                  F:\MCP\projects\CAN\Source\Tick.c
1564
                                           */                                                                               F:\MCP\projects\CAN\Source\Tick.c
1565
                                           #define PERIOD (INSTR_FREQ/256/1000)*TICK_PERIOD_MS                              F:\MCP\projects\CAN\Source\Tick.c
1566
                                           void tickInit(void)                                                              F:\MCP\projects\CAN\Source\Tick.c
1567
                                           {                                                                                F:\MCP\projects\CAN\Source\Tick.c
1568
                                               // Start the timer.                                                          F:\MCP\projects\CAN\Source\Tick.c
1569
000aac   0e79     MOVLW     0x79               TMR0L = TICK_COUNTER_LOW;                                                    F:\MCP\projects\CAN\Source\Tick.c
51 johboh 1570
000aae   6ed6     MOVWF     0xd6,0x0                                                                                        
53 johboh 1571
000ab0   0efe     MOVLW     0xfe               TMR0H = TICK_COUNTER_HIGH;                                                   F:\MCP\projects\CAN\Source\Tick.c
51 johboh 1572
000ab2   6ed7     MOVWF     0xd7,0x0                                                                                        
53 johboh 1573
                                                                                                                            F:\MCP\projects\CAN\Source\Tick.c
1574
                                               // 16-BIT, internal timer, PSA set to 1:256                                  F:\MCP\projects\CAN\Source\Tick.c
1575
000ab4   0e07     MOVLW     0x7                T0CON = 0b00000000 | TIMER_PRESCALE;                                         F:\MCP\projects\CAN\Source\Tick.c
51 johboh 1576
000ab6   6ed5     MOVWF     0xd5,0x0                                                                                        
53 johboh 1577
                                                                                                                            F:\MCP\projects\CAN\Source\Tick.c
1578
                                               // Start the timer.                                                          F:\MCP\projects\CAN\Source\Tick.c
1579
000ab8   8ed5     BSF       0xd5,0x7,0x0       T0CONbits.TMR0ON = 1;                                                        F:\MCP\projects\CAN\Source\Tick.c
1580
                                                                                                                            F:\MCP\projects\CAN\Source\Tick.c
1581
000aba   84f2     BSF       0xf2,0x2,0x0       INTCONbits.TMR0IF = 1;                                                       F:\MCP\projects\CAN\Source\Tick.c
1582
000abc   8af2     BSF       0xf2,0x5,0x0       INTCONbits.TMR0IE = 1;                                                       F:\MCP\projects\CAN\Source\Tick.c
1583
000abe   0012     RETURN    0x0            }                                                                                F:\MCP\projects\CAN\Source\Tick.c
1584
                                                                                                                            F:\MCP\projects\CAN\Source\Tick.c
1585
                                           /*                                                                               F:\MCP\projects\CAN\Source\Tick.c
1586
                                           *	Function: TickGet                                                              F:\MCP\projects\CAN\Source\Tick.c
1587
                                           *                                                                                F:\MCP\projects\CAN\Source\Tick.c
1588
                                           *	Input:	none                                                                    F:\MCP\projects\CAN\Source\Tick.c
1589
                                           *	Output: Current tick value is given, 1 tick represents approximately 10ms      F:\MCP\projects\CAN\Source\Tick.c
1590
                                           *	Pre-conditions: TickInit                                                       F:\MCP\projects\CAN\Source\Tick.c
1591
                                           *	Affects: none                                                                  F:\MCP\projects\CAN\Source\Tick.c
1592
                                           *	Depends: none                                                                  F:\MCP\projects\CAN\Source\Tick.c
1593
                                           */                                                                               F:\MCP\projects\CAN\Source\Tick.c
1594
                                           TICK tickGet(void)                                                               F:\MCP\projects\CAN\Source\Tick.c
1595
                                           {                                                                                F:\MCP\projects\CAN\Source\Tick.c
1596
000ac0   c074     MOVFF     0x74,0x18          return TickCount;                                                            F:\MCP\projects\CAN\Source\Tick.c
51 johboh 1597
000ac2   f018                                                                                                               
1598
000ac4   c075     MOVFF     0x75,0x19                                                                                       
1599
000ac6   f019                                                                                                               
1600
000ac8   c076     MOVFF     0x76,0x1a                                                                                       
1601
000aca   f01a                                                                                                               
1602
000acc   c077     MOVFF     0x77,0x1b                                                                                       
1603
000ace   f01b                                                                                                               
1604
000ad0   d000     BRA       0xad2                                                                                           
53 johboh 1605
000ad2   0012     RETURN    0x0            }                                                                                F:\MCP\projects\CAN\Source\Tick.c
1606
                                                                                                                            F:\MCP\projects\CAN\Source\Tick.c
1607
                                                                                                                            F:\MCP\projects\CAN\Source\Tick.c
1608
                                           /*                                                                               F:\MCP\projects\CAN\Source\Tick.c
1609
                                           *	Function: tickUpdate                                                           F:\MCP\projects\CAN\Source\Tick.c
1610
                                           *                                                                                F:\MCP\projects\CAN\Source\Tick.c
1611
                                           *	Input:	none                                                                    F:\MCP\projects\CAN\Source\Tick.c
1612
                                           *	Output: none                                                                   F:\MCP\projects\CAN\Source\Tick.c
1613
                                           *	Pre-conditions: TickInit                                                       F:\MCP\projects\CAN\Source\Tick.c
1614
                                           *	Affects: none                                                                  F:\MCP\projects\CAN\Source\Tick.c
1615
                                           *	Depends: none                                                                  F:\MCP\projects\CAN\Source\Tick.c
1616
                                           */                                                                               F:\MCP\projects\CAN\Source\Tick.c
1617
                                           void tickUpdate(void)                                                            F:\MCP\projects\CAN\Source\Tick.c
1618
                                           {                                                                                F:\MCP\projects\CAN\Source\Tick.c
1619
000ad4   a4f2     BTFSS     0xf2,0x2,0x0       if(INTCONbits.TMR0IF)                                                        F:\MCP\projects\CAN\Source\Tick.c
51 johboh 1620
000ad6   d00b     BRA       0xaee                                                                                           
53 johboh 1621
                                               {                                                                            F:\MCP\projects\CAN\Source\Tick.c
1622
000ad8   0efe     MOVLW     0xfe                   TMR0H = TICK_COUNTER_HIGH;                                               F:\MCP\projects\CAN\Source\Tick.c
51 johboh 1623
000ada   6ed7     MOVWF     0xd7,0x0                                                                                        
53 johboh 1624
000adc   0e79     MOVLW     0x79                   TMR0L = TICK_COUNTER_LOW;                                                F:\MCP\projects\CAN\Source\Tick.c
51 johboh 1625
000ade   6ed6     MOVWF     0xd6,0x0                                                                                        
53 johboh 1626
                                                                                                                            F:\MCP\projects\CAN\Source\Tick.c
1627
000ae0   0100     MOVLB     0x0                    TickCount++;                                                             F:\MCP\projects\CAN\Source\Tick.c
51 johboh 1628
000ae2   2b74     INCF      0x74,0x1,0x1                                                                                    
1629
000ae4   0e00     MOVLW     0x0                                                                                             
1630
000ae6   2375     ADDWFC    0x75,0x1,0x1                                                                                    
1631
000ae8   2376     ADDWFC    0x76,0x1,0x1                                                                                    
1632
000aea   2377     ADDWFC    0x77,0x1,0x1                                                                                    
53 johboh 1633
                                                                                                                            F:\MCP\projects\CAN\Source\Tick.c
1634
000aec   94f2     BCF       0xf2,0x2,0x0           INTCONbits.TMR0IF = 0;                                                   F:\MCP\projects\CAN\Source\Tick.c
1635
                                               }                                                                            F:\MCP\projects\CAN\Source\Tick.c
1636
000aee   0012     RETURN    0x0            }                                                                                F:\MCP\projects\CAN\Source\Tick.c
1637
                                           /*********************************************************************           F:\MCP\projects\CAN\Source\uart.c
1638
                                            *                                                                               F:\MCP\projects\CAN\Source\uart.c
1639
                                            *                  UART                                                         F:\MCP\projects\CAN\Source\uart.c
1640
                                            *                                                                               F:\MCP\projects\CAN\Source\uart.c
1641
                                            *********************************************************************           F:\MCP\projects\CAN\Source\uart.c
1642
                                            * FileName:        uart.c                                                       F:\MCP\projects\CAN\Source\uart.c
1643
                                            *                                                                               F:\MCP\projects\CAN\Source\uart.c
1644
                                            * Author               Date    Comment                                          F:\MCP\projects\CAN\Source\uart.c
1645
                                            *~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~           F:\MCP\projects\CAN\Source\uart.c
1646
                                            * Johan Böhlin     21-10-06 	Original        (Rev 1.0)                          F:\MCP\projects\CAN\Source\uart.c
1647
                                            ********************************************************************/           F:\MCP\projects\CAN\Source\uart.c
1648
                                                                                                                            F:\MCP\projects\CAN\Source\uart.c
1649
                                           #include <uart.h>                                                                F:\MCP\projects\CAN\Source\uart.c
1650
                                           #include <stackTasks.h>                                                          F:\MCP\projects\CAN\Source\uart.c
1651
                                                                                                                            F:\MCP\projects\CAN\Source\uart.c
1652
                                           #ifdef USE_UART                                                                  F:\MCP\projects\CAN\Source\uart.c
1653
                                                                                                                            F:\MCP\projects\CAN\Source\uart.c
1654
                                           static char uartBusy(void);                                                      F:\MCP\projects\CAN\Source\uart.c
1655
                                                                                                                            F:\MCP\projects\CAN\Source\uart.c
1656
                                                                                                                            F:\MCP\projects\CAN\Source\uart.c
1657
                                           /*                                                                               F:\MCP\projects\CAN\Source\uart.c
1658
                                           *	Function: uartInit                                                             F:\MCP\projects\CAN\Source\uart.c
1659
                                           *                                                                                F:\MCP\projects\CAN\Source\uart.c
1660
                                           *	Input:	none                                                                    F:\MCP\projects\CAN\Source\uart.c
1661
                                           *	Output: none                                                                   F:\MCP\projects\CAN\Source\uart.c
1662
                                           *	Pre-conditions: none                                                           F:\MCP\projects\CAN\Source\uart.c
1663
                                           *	Affects: none                                                                  F:\MCP\projects\CAN\Source\uart.c
1664
                                           *	Depends: none                                                                  F:\MCP\projects\CAN\Source\uart.c
1665
                                           */                                                                               F:\MCP\projects\CAN\Source\uart.c
1666
                                           void uartInit()                                                                  F:\MCP\projects\CAN\Source\uart.c
1667
                                           {                                                                                F:\MCP\projects\CAN\Source\uart.c
1668
                                           		// Configure USART                                                             F:\MCP\projects\CAN\Source\uart.c
1669
000906   8e94     BSF       0x94,0x7,0x0   		TRISCbits.TRISC7=1;                                                            F:\MCP\projects\CAN\Source\uart.c
1670
000908   9c94     BCF       0x94,0x6,0x0   		TRISCbits.TRISC6=0;                                                            F:\MCP\projects\CAN\Source\uart.c
1671
00090a   0e20     MOVLW     0x20           		TXSTA=0b00100000; // Low BRG speed                                             F:\MCP\projects\CAN\Source\uart.c
51 johboh 1672
00090c   6eac     MOVWF     0xac,0x0                                                                                        
53 johboh 1673
00090e   0e90     MOVLW     0x90           		RCSTA=0b10010000;                                                              F:\MCP\projects\CAN\Source\uart.c
51 johboh 1674
000910   6eab     MOVWF     0xab,0x0                                                                                        
53 johboh 1675
000912   0e1f     MOVLW     0x1f           		SPBRG = SPBRG_VAL;                                                             F:\MCP\projects\CAN\Source\uart.c
51 johboh 1676
000914   6eaf     MOVWF     0xaf,0x0                                                                                        
53 johboh 1677
                                           		// USART RX interrupt                                                          F:\MCP\projects\CAN\Source\uart.c
1678
000916   9a9e     BCF       0x9e,0x5,0x0   		PIR1bits.RCIF=0;                                                               F:\MCP\projects\CAN\Source\uart.c
1679
000918   8a9d     BSF       0x9d,0x5,0x0   		PIE1bits.RCIE=1;                                                               F:\MCP\projects\CAN\Source\uart.c
1680
                                           		// High interrupt                                                              F:\MCP\projects\CAN\Source\uart.c
1681
00091a   8a9f     BSF       0x9f,0x5,0x0   		IPR1bits.RCIP=1;                                                               F:\MCP\projects\CAN\Source\uart.c
1682
00091c   0012     RETURN    0x0            }                                                                                F:\MCP\projects\CAN\Source\uart.c
1683
                                                                                                                            F:\MCP\projects\CAN\Source\uart.c
1684
                                                                                                                            F:\MCP\projects\CAN\Source\uart.c
1685
                                           /*                                                                               F:\MCP\projects\CAN\Source\uart.c
1686
                                           *	Function: uartPutc                                                             F:\MCP\projects\CAN\Source\uart.c
1687
                                           *                                                                                F:\MCP\projects\CAN\Source\uart.c
1688
                                           *	Input:	BYTE c to send on uart                                                  F:\MCP\projects\CAN\Source\uart.c
1689
                                           *	Output: none                                                                   F:\MCP\projects\CAN\Source\uart.c
1690
                                           *	Pre-conditions: call to uartInit()                                             F:\MCP\projects\CAN\Source\uart.c
1691
                                           *	Affects: none                                                                  F:\MCP\projects\CAN\Source\uart.c
1692
                                           *	Depends: none                                                                  F:\MCP\projects\CAN\Source\uart.c
1693
                                           */                                                                               F:\MCP\projects\CAN\Source\uart.c
1694
00091e   cfd9     MOVFF     0xfd9,0xfe6    void uartPutc(BYTE c)                                                            F:\MCP\projects\CAN\Source\uart.c
51 johboh 1695
000920   ffe6                                                                                                               
1696
000922   cfe1     MOVFF     0xfe1,0xfd9                                                                                     
1697
000924   ffd9                                                                                                               
53 johboh 1698
                                           {                                                                                F:\MCP\projects\CAN\Source\uart.c
1699
                                           	// Write the data byte to the USART                                             F:\MCP\projects\CAN\Source\uart.c
1700
000926   0efe     MOVLW     0xfe           	TXREG = c;                                                                      F:\MCP\projects\CAN\Source\uart.c
51 johboh 1701
000928   50db     MOVF      0xdb,0x0,0x0                                                                                    
1702
00092a   6ead     MOVWF     0xad,0x0                                                                                        
53 johboh 1703
00092c   d84b     RCALL     0x9c4          	while(uartBusy());                                                              F:\MCP\projects\CAN\Source\uart.c
51 johboh 1704
00092e   0900     IORLW     0x0                                                                                             
1705
000930   e001     BZ        0x934                                                                                           
1706
000932   d7fc     BRA       0x92c                                                                                           
53 johboh 1707
000934   52e5     MOVF      0xe5,0x1,0x0   }                                                                                F:\MCP\projects\CAN\Source\uart.c
51 johboh 1708
000936   cfe7     MOVFF     0xfe7,0xfd9                                                                                     
1709
000938   ffd9                                                                                                               
1710
00093a   0012     RETURN    0x0                                                                                             
53 johboh 1711
                                                                                                                            F:\MCP\projects\CAN\Source\uart.c
1712
                                                                                                                            F:\MCP\projects\CAN\Source\uart.c
1713
                                           /*                                                                               F:\MCP\projects\CAN\Source\uart.c
1714
                                           *	Function: uartPuts                                                             F:\MCP\projects\CAN\Source\uart.c
1715
                                           *                                                                                F:\MCP\projects\CAN\Source\uart.c
1716
                                           *	Input:	Byte array to send on uart                                              F:\MCP\projects\CAN\Source\uart.c
1717
                                           *	Output: none                                                                   F:\MCP\projects\CAN\Source\uart.c
1718
                                           *	Pre-conditions: call to uartInit()                                             F:\MCP\projects\CAN\Source\uart.c
1719
                                           *	Affects: none                                                                  F:\MCP\projects\CAN\Source\uart.c
1720
                                           *	Depends: none                                                                  F:\MCP\projects\CAN\Source\uart.c
1721
                                           */                                                                               F:\MCP\projects\CAN\Source\uart.c
1722
00093c   cfd9     MOVFF     0xfd9,0xfe6    void uartPuts(BYTE c[])                                                          F:\MCP\projects\CAN\Source\uart.c
51 johboh 1723
00093e   ffe6                                                                                                               
1724
000940   cfe1     MOVFF     0xfe1,0xfd9                                                                                     
1725
000942   ffd9                                                                                                               
53 johboh 1726
                                           {                                                                                F:\MCP\projects\CAN\Source\uart.c
1727
                                           	do                                                                              F:\MCP\projects\CAN\Source\uart.c
1728
                                             	{  // Transmit a byte                                                         F:\MCP\projects\CAN\Source\uart.c
1729
000944   d83f     RCALL     0x9c4              	while(uartBusy());                                                          F:\MCP\projects\CAN\Source\uart.c
51 johboh 1730
000946   0900     IORLW     0x0                                                                                             
1731
000948   e001     BZ        0x94c                                                                                           
1732
00094a   d7fc     BRA       0x944                                                                                           
53 johboh 1733
00094c   0efd     MOVLW     0xfd               	uartPutc(*c);                                                               F:\MCP\projects\CAN\Source\uart.c
51 johboh 1734
00094e   cfdb     MOVFF     0xfdb,0xfe9                                                                                     
1735
000950   ffe9                                                                                                               
1736
000952   0efe     MOVLW     0xfe                                                                                            
1737
000954   cfdb     MOVFF     0xfdb,0xfea                                                                                     
1738
000956   ffea                                                                                                               
1739
000958   50ef     MOVF      0xef,0x0,0x0                                                                                    
1740
00095a   6ee6     MOVWF     0xe6,0x0                                                                                        
1741
00095c   dfe0     RCALL     0x91e                                                                                           
1742
00095e   52e5     MOVF      0xe5,0x1,0x0                                                                                    
53 johboh 1743
000960   0efd     MOVLW     0xfd             	} while( *c++ );                                                              F:\MCP\projects\CAN\Source\uart.c
51 johboh 1744
000962   cfdb     MOVFF     0xfdb,0xfe9                                                                                     
1745
000964   ffe9                                                                                                               
1746
000966   2adb     INCF      0xdb,0x1,0x0                                                                                    
1747
000968   0efe     MOVLW     0xfe                                                                                            
1748
00096a   cfdb     MOVFF     0xfdb,0xfea                                                                                     
1749
00096c   ffea                                                                                                               
1750
00096e   e301     BNC       0x972                                                                                           
1751
000970   2adb     INCF      0xdb,0x1,0x0                                                                                    
1752
000972   50ef     MOVF      0xef,0x0,0x0                                                                                    
1753
000974   e1e7     BNZ       0x944                                                                                           
53 johboh 1754
000976   52e5     MOVF      0xe5,0x1,0x0   }                                                                                F:\MCP\projects\CAN\Source\uart.c
51 johboh 1755
000978   cfe7     MOVFF     0xfe7,0xfd9                                                                                     
1756
00097a   ffd9                                                                                                               
1757
00097c   0012     RETURN    0x0                                                                                             
53 johboh 1758
                                                                                                                            F:\MCP\projects\CAN\Source\uart.c
1759
                                           /*                                                                               F:\MCP\projects\CAN\Source\uart.c
1760
                                           *	Function: uartPutrs                                                            F:\MCP\projects\CAN\Source\uart.c
1761
                                           *                                                                                F:\MCP\projects\CAN\Source\uart.c
1762
                                           *	Input:	Byte array to send on uart (static)                                     F:\MCP\projects\CAN\Source\uart.c
1763
                                           *	Output: none                                                                   F:\MCP\projects\CAN\Source\uart.c
1764
                                           *	Pre-conditions: call to uartInit()                                             F:\MCP\projects\CAN\Source\uart.c
1765
                                           *	Affects: none                                                                  F:\MCP\projects\CAN\Source\uart.c
1766
                                           *	Depends: none                                                                  F:\MCP\projects\CAN\Source\uart.c
1767
                                           */                                                                               F:\MCP\projects\CAN\Source\uart.c
1768
00097e   cfd9     MOVFF     0xfd9,0xfe6    void uartPutrs(const rom char *c)                                                F:\MCP\projects\CAN\Source\uart.c
51 johboh 1769
000980   ffe6                                                                                                               
1770
000982   cfe1     MOVFF     0xfe1,0xfd9                                                                                     
1771
000984   ffd9                                                                                                               
53 johboh 1772
                                           {                                                                                F:\MCP\projects\CAN\Source\uart.c
1773
                                           	do                                                                              F:\MCP\projects\CAN\Source\uart.c
1774
                                             	{  // Transmit a byte                                                         F:\MCP\projects\CAN\Source\uart.c
1775
000986   d81e     RCALL     0x9c4              	while(uartBusy());                                                          F:\MCP\projects\CAN\Source\uart.c
51 johboh 1776
000988   0900     IORLW     0x0                                                                                             
1777
00098a   e001     BZ        0x98e                                                                                           
1778
00098c   d7fc     BRA       0x986                                                                                           
53 johboh 1779
00098e   0efd     MOVLW     0xfd               	uartPutc(*c);                                                               F:\MCP\projects\CAN\Source\uart.c
51 johboh 1780
000990   cfdb     MOVFF     0xfdb,0xff6                                                                                     
1781
000992   fff6                                                                                                               
1782
000994   0efe     MOVLW     0xfe                                                                                            
1783
000996   cfdb     MOVFF     0xfdb,0xff7                                                                                     
1784
000998   fff7                                                                                                               
1785
00099a   0008     TBLRD                                                                                                     
1786
00099c   50f5     MOVF      0xf5,0x0,0x0                                                                                    
1787
00099e   6ee6     MOVWF     0xe6,0x0                                                                                        
1788
0009a0   dfbe     RCALL     0x91e                                                                                           
1789
0009a2   52e5     MOVF      0xe5,0x1,0x0                                                                                    
53 johboh 1790
0009a4   0efd     MOVLW     0xfd             	} while( *c++ );                                                              F:\MCP\projects\CAN\Source\uart.c
51 johboh 1791
0009a6   cfdb     MOVFF     0xfdb,0xff6                                                                                     
1792
0009a8   fff6                                                                                                               
1793
0009aa   2adb     INCF      0xdb,0x1,0x0                                                                                    
1794
0009ac   0efe     MOVLW     0xfe                                                                                            
1795
0009ae   cfdb     MOVFF     0xfdb,0xff7                                                                                     
1796
0009b0   fff7                                                                                                               
1797
0009b2   e301     BNC       0x9b6                                                                                           
1798
0009b4   2adb     INCF      0xdb,0x1,0x0                                                                                    
1799
0009b6   0008     TBLRD                                                                                                     
1800
0009b8   50f5     MOVF      0xf5,0x0,0x0                                                                                    
1801
0009ba   e1e5     BNZ       0x986                                                                                           
53 johboh 1802
0009bc   52e5     MOVF      0xe5,0x1,0x0   }                                                                                F:\MCP\projects\CAN\Source\uart.c
51 johboh 1803
0009be   cfe7     MOVFF     0xfe7,0xfd9                                                                                     
1804
0009c0   ffd9                                                                                                               
1805
0009c2   0012     RETURN    0x0                                                                                             
53 johboh 1806
                                                                                                                            F:\MCP\projects\CAN\Source\uart.c
1807
                                                                                                                            F:\MCP\projects\CAN\Source\uart.c
1808
                                                                                                                            F:\MCP\projects\CAN\Source\uart.c
1809
                                                                                                                            F:\MCP\projects\CAN\Source\uart.c
1810
                                           /*                                                                               F:\MCP\projects\CAN\Source\uart.c
1811
                                           *	Function: uartBusy                                                             F:\MCP\projects\CAN\Source\uart.c
1812
                                           *                                                                                F:\MCP\projects\CAN\Source\uart.c
1813
                                           *	Input:	none.                                                                   F:\MCP\projects\CAN\Source\uart.c
1814
                                           *	Output: If usart busy or not.                                                  F:\MCP\projects\CAN\Source\uart.c
1815
                                           *	Pre-conditions: call to uartInit()                                             F:\MCP\projects\CAN\Source\uart.c
1816
                                           *	Affects: none                                                                  F:\MCP\projects\CAN\Source\uart.c
1817
                                           *	Depends: none                                                                  F:\MCP\projects\CAN\Source\uart.c
1818
                                           */                                                                               F:\MCP\projects\CAN\Source\uart.c
1819
                                           char uartBusy(void)                                                              F:\MCP\projects\CAN\Source\uart.c
1820
                                           {                                                                                F:\MCP\projects\CAN\Source\uart.c
1821
0009c4   50ac     MOVF      0xac,0x0,0x0   	return !TXSTAbits.TRMT;                                                         F:\MCP\projects\CAN\Source\uart.c
51 johboh 1822
0009c6   0b02     ANDLW     0x2                                                                                             
1823
0009c8   0a02     XORLW     0x2                                                                                             
1824
0009ca   e001     BZ        0x9ce                                                                                           
1825
0009cc   0e01     MOVLW     0x1                                                                                             
1826
0009ce   d000     BRA       0x9d0                                                                                           
53 johboh 1827
0009d0   0012     RETURN    0x0            }                                                                                F:\MCP\projects\CAN\Source\uart.c
1828
                                                                                                                            F:\MCP\projects\CAN\Source\uart.c
1829
                                                                                                                            F:\MCP\projects\CAN\Source\uart.c
1830
                                           /*                                                                               F:\MCP\projects\CAN\Source\uart.c
1831
                                           *	Function: uartGet                                                              F:\MCP\projects\CAN\Source\uart.c
1832
                                           *                                                                                F:\MCP\projects\CAN\Source\uart.c
1833
                                           *	Input:	none                                                                    F:\MCP\projects\CAN\Source\uart.c
1834
                                           *	Output: Byte read                                                              F:\MCP\projects\CAN\Source\uart.c
1835
                                           *	Pre-conditions: call to uartInit()                                             F:\MCP\projects\CAN\Source\uart.c
1836
                                           *	Affects: none                                                                  F:\MCP\projects\CAN\Source\uart.c
1837
                                           *	Depends: none.                                                                 F:\MCP\projects\CAN\Source\uart.c
1838
                                           */                                                                               F:\MCP\projects\CAN\Source\uart.c
1839
                                           BYTE uartGet(void)                                                               F:\MCP\projects\CAN\Source\uart.c
1840
                                           {                                                                                F:\MCP\projects\CAN\Source\uart.c
1841
                                           	// Return the received data                                                     F:\MCP\projects\CAN\Source\uart.c
1842
0009d2   50ae     MOVF      0xae,0x0,0x0   	return RCREG;	                                                                  F:\MCP\projects\CAN\Source\uart.c
51 johboh 1843
0009d4   d000     BRA       0x9d6                                                                                           
53 johboh 1844
0009d6   0012     RETURN    0x0            }                                                                                F:\MCP\projects\CAN\Source\uart.c
1845
                                                                                                                            F:\MCP\projects\CAN\Source\uart.c
1846
                                                                                                                            F:\MCP\projects\CAN\Source\uart.c
1847
                                           /*                                                                               F:\MCP\projects\CAN\Source\uart.c
1848
                                           *	Function: uartISR                                                              F:\MCP\projects\CAN\Source\uart.c
1849
                                           *                                                                                F:\MCP\projects\CAN\Source\uart.c
1850
                                           *	Input:	none                                                                    F:\MCP\projects\CAN\Source\uart.c
1851
                                           *	Output: none                                                                   F:\MCP\projects\CAN\Source\uart.c
1852
                                           *	Pre-conditions: call to uartInit()                                             F:\MCP\projects\CAN\Source\uart.c
1853
                                           *	Affects: call to uartParse                                                     F:\MCP\projects\CAN\Source\uart.c
1854
                                           *	Depends: none.                                                                 F:\MCP\projects\CAN\Source\uart.c
1855
                                           */                                                                               F:\MCP\projects\CAN\Source\uart.c
1856
                                           void uartISR(void)                                                               F:\MCP\projects\CAN\Source\uart.c
1857
                                           {                                                                                F:\MCP\projects\CAN\Source\uart.c
1858
0009d8   509e     MOVF      0x9e,0x0,0x0   	if (PIR1bits.RCIF==1 && PIE1bits.RCIE==1)                                       F:\MCP\projects\CAN\Source\uart.c
51 johboh 1859
0009da   0b20     ANDLW     0x20                                                                                            
1860
0009dc   e00d     BZ        0x9f8                                                                                           
1861
0009de   509d     MOVF      0x9d,0x0,0x0                                                                                    
1862
0009e0   0b20     ANDLW     0x20                                                                                            
1863
0009e2   e00a     BZ        0x9f8                                                                                           
53 johboh 1864
                                           	{                                                                               F:\MCP\projects\CAN\Source\uart.c
1865
0009e4   a2ab     BTFSS     0xab,0x1,0x0   		if (RCSTAbits.OERR) { RCSTAbits.CREN=0; RCSTAbits.CREN=1; }                    F:\MCP\projects\CAN\Source\uart.c
51 johboh 1866
0009e6   d002     BRA       0x9ec                                                                                           
1867
0009e8   98ab     BCF       0xab,0x4,0x0                                                                                    
1868
0009ea   88ab     BSF       0xab,0x4,0x0                                                                                    
53 johboh 1869
                                                                                                                            F:\MCP\projects\CAN\Source\uart.c
1870
0009ec   dff2     RCALL     0x9d2          		uartParse(uartGet());                                                          F:\MCP\projects\CAN\Source\uart.c
51 johboh 1871
0009ee   6ee6     MOVWF     0xe6,0x0                                                                                        
1872
0009f0   ec98     CALL      0x730,0x0                                                                                       
1873
0009f2   f003                                                                                                               
1874
0009f4   52e5     MOVF      0xe5,0x1,0x0                                                                                    
53 johboh 1875
0009f6   9a9e     BCF       0x9e,0x5,0x0   		PIR1bits.RCIF=0;                                                               F:\MCP\projects\CAN\Source\uart.c
1876
                                           	}                                                                               F:\MCP\projects\CAN\Source\uart.c
1877
0009f8   0012     RETURN    0x0            }                                                                                F:\MCP\projects\CAN\Source\uart.c
1878
                                                                                                                            F:\MCP\projects\CAN\Source\uart.c
1879
                                                                                                                            F:\MCP\projects\CAN\Source\uart.c
1880
                                           /*                                                                               F:\MCP\projects\CAN\Source\uart.c
1881
                                           *	Function: uartDataRedy                                                         F:\MCP\projects\CAN\Source\uart.c
1882
                                           *                                                                                F:\MCP\projects\CAN\Source\uart.c
1883
                                           *	Input:	none.                                                                   F:\MCP\projects\CAN\Source\uart.c
1884
                                           *	Output: If usart data are redy to be read.                                     F:\MCP\projects\CAN\Source\uart.c
1885
                                           *	Pre-conditions: call to uartInit()                                             F:\MCP\projects\CAN\Source\uart.c
1886
                                           *	Affects: none                                                                  F:\MCP\projects\CAN\Source\uart.c
1887
                                           *	Depends: none                                                                  F:\MCP\projects\CAN\Source\uart.c
1888
                                           */                                                                               F:\MCP\projects\CAN\Source\uart.c
1889
                                           char uartDataRedy(void)                                                          F:\MCP\projects\CAN\Source\uart.c
1890
                                           {                                                                                F:\MCP\projects\CAN\Source\uart.c
1891
0009fa   a2ab     BTFSS     0xab,0x1,0x0   	if(RCSTAbits.OERR)                                                              F:\MCP\projects\CAN\Source\uart.c
51 johboh 1892
0009fc   d002     BRA       0xa02                                                                                           
53 johboh 1893
                                           	{                                                                               F:\MCP\projects\CAN\Source\uart.c
1894
0009fe   98ab     BCF       0xab,0x4,0x0   		RCSTAbits.CREN = 0;                                                            F:\MCP\projects\CAN\Source\uart.c
1895
000a00   88ab     BSF       0xab,0x4,0x0   		RCSTAbits.CREN = 1;                                                            F:\MCP\projects\CAN\Source\uart.c
1896
                                           	}                                                                               F:\MCP\projects\CAN\Source\uart.c
1897
000a02   509e     MOVF      0x9e,0x0,0x0     return PIR1bits.RCIF;                                                          F:\MCP\projects\CAN\Source\uart.c
51 johboh 1898
000a04   0b20     ANDLW     0x20                                                                                            
1899
000a06   e001     BZ        0xa0a                                                                                           
1900
000a08   0e01     MOVLW     0x1                                                                                             
1901
000a0a   d000     BRA       0xa0c                                                                                           
53 johboh 1902
000a0c   0012     RETURN    0x0            }                                                                                F:\MCP\projects\CAN\Source\uart.c
1903
                                                                                                                            F:\MCP\projects\CAN\Source\uart.c
1904
                                           #endif                                                                           F:\MCP\projects\CAN\Source\uart.c