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