Subversion Repositories HomeAutomation

Rev

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

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