Subversion Repositories HomeAutomation

Rev

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

Rev Author Line No. Line
85 johboh 1
MP2COD 4.02, COFF to COD File Converter
2
Copyright (c) 2006 Microchip Technology Inc.
86 johboh 3
Listing File Generated: Tue Nov 14 10:50:27 2006
85 johboh 4
 
5
 
6
Address  Value    Disassembly              Source                                                                           File
7
-------  -------  -----------------------  -------------------------------------------------------------------------------  -----
8
                                           /*********************************************************************           F:\MCP\projects\CAN\canBase\Source\Tick.c
9
                                            *                                                                               F:\MCP\projects\CAN\canBase\Source\Tick.c
86 johboh 10
                                            *                  Ticker module service                                        F:\MCP\projects\CAN\canBase\Source\Tick.c
85 johboh 11
                                            *                                                                               F:\MCP\projects\CAN\canBase\Source\Tick.c
12
                                            *********************************************************************           F:\MCP\projects\CAN\canBase\Source\Tick.c
86 johboh 13
                                            * FileName:        $HeadURL$                                                    F:\MCP\projects\CAN\canBase\Source\Tick.c
14
                                            * Last changed:	$LastChangedDate$                                               F:\MCP\projects\CAN\canBase\Source\Tick.c
15
                                            * By:				$LastChangedBy$                                                        F:\MCP\projects\CAN\canBase\Source\Tick.c
16
                                            * Revision:		$Revision$                                                         F:\MCP\projects\CAN\canBase\Source\Tick.c
85 johboh 17
                                            ********************************************************************/           F:\MCP\projects\CAN\canBase\Source\Tick.c
18
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Tick.c
19
                                           #define TICK_INCLUDE                                                             F:\MCP\projects\CAN\canBase\Source\Tick.c
20
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Tick.c
21
                                           #include <Tick.h>                                                                F:\MCP\projects\CAN\canBase\Source\Tick.c
22
                                           #include <Compiler.h>                                                            F:\MCP\projects\CAN\canBase\Source\Tick.c
23
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Tick.c
24
                                           #define TICK_TEMP_VALUE_1 ((INSTR_FREQ) / (TICKS_PER_SECOND * TICK_PRESCALE_VALUE)) F:\MCP\projects\CAN\canBase\Source\Tick.c
25
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Tick.c
26
                                           #if TICK_TEMP_VALUE_1 > 60000                                                    F:\MCP\projects\CAN\canBase\Source\Tick.c
27
                                           #error TICK_PER_SECOND value cannot be programmed with current CLOCK_FREQ        F:\MCP\projects\CAN\canBase\Source\Tick.c
28
                                           #error Either lower TICK_PER_SECOND or manually configure the Timer              F:\MCP\projects\CAN\canBase\Source\Tick.c
29
                                           #endif                                                                           F:\MCP\projects\CAN\canBase\Source\Tick.c
30
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Tick.c
31
                                           #define TICK_TEMP_VALUE         (65535 - TICK_TEMP_VALUE_1)                      F:\MCP\projects\CAN\canBase\Source\Tick.c
32
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Tick.c
33
                                           #define TICK_COUNTER_HIGH       ((TICK_TEMP_VALUE >> 8) & 0xff)                  F:\MCP\projects\CAN\canBase\Source\Tick.c
34
                                           #define TICK_COUNTER_LOW        (TICK_TEMP_VALUE & 0xff)                         F:\MCP\projects\CAN\canBase\Source\Tick.c
35
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Tick.c
36
                                           #if (TICK_PRESCALE_VALUE == 2)                                                   F:\MCP\projects\CAN\canBase\Source\Tick.c
37
                                               #define TIMER_PRESCALE  (0)                                                  F:\MCP\projects\CAN\canBase\Source\Tick.c
38
                                           #elif ( TICK_PRESCALE_VALUE == 4 )                                               F:\MCP\projects\CAN\canBase\Source\Tick.c
39
                                               #define TIMER_PRESCALE  (1)                                                  F:\MCP\projects\CAN\canBase\Source\Tick.c
40
                                           #elif ( TICK_PRESCALE_VALUE == 8 )                                               F:\MCP\projects\CAN\canBase\Source\Tick.c
41
                                               #define TIMER_PRESCALE  (2)                                                  F:\MCP\projects\CAN\canBase\Source\Tick.c
42
                                           #elif ( TICK_PRESCALE_VALUE == 16 )                                              F:\MCP\projects\CAN\canBase\Source\Tick.c
43
                                               #define TIMER_PRESCALE  (3)                                                  F:\MCP\projects\CAN\canBase\Source\Tick.c
44
                                           #elif ( TICK_PRESCALE_VALUE == 32 )                                              F:\MCP\projects\CAN\canBase\Source\Tick.c
45
                                               #define TIMER_PRESCALE  (4)                                                  F:\MCP\projects\CAN\canBase\Source\Tick.c
46
                                           #elif ( TICK_PRESCALE_VALUE == 64 )                                              F:\MCP\projects\CAN\canBase\Source\Tick.c
47
                                               #define TIMER_PRESCALE  (5)                                                  F:\MCP\projects\CAN\canBase\Source\Tick.c
48
                                           #elif ( TICK_PRESCALE_VALUE == 128 )                                             F:\MCP\projects\CAN\canBase\Source\Tick.c
49
                                               #define TIMER_PRESCALE  (6)                                                  F:\MCP\projects\CAN\canBase\Source\Tick.c
50
                                           #elif ( TICK_PRESCALE_VALUE == 256 )                                             F:\MCP\projects\CAN\canBase\Source\Tick.c
51
                                               #define TIMER_PRESCALE  (7)                                                  F:\MCP\projects\CAN\canBase\Source\Tick.c
52
                                           #else                                                                            F:\MCP\projects\CAN\canBase\Source\Tick.c
53
                                               #error Invalid TICK_PRESCALE_VALUE specified.                                F:\MCP\projects\CAN\canBase\Source\Tick.c
54
                                           #endif                                                                           F:\MCP\projects\CAN\canBase\Source\Tick.c
55
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Tick.c
56
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Tick.c
57
                                           TICK TickCount = 0;	// 10ms/unit                                                 F:\MCP\projects\CAN\canBase\Source\Tick.c
58
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Tick.c
59
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Tick.c
60
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Tick.c
61
                                           /*                                                                               F:\MCP\projects\CAN\canBase\Source\Tick.c
62
                                           *	Function: TickInit                                                             F:\MCP\projects\CAN\canBase\Source\Tick.c
63
                                           *                                                                                F:\MCP\projects\CAN\canBase\Source\Tick.c
64
                                           *	Input:	none                                                                    F:\MCP\projects\CAN\canBase\Source\Tick.c
65
                                           *	Output: Tick manager is initialized.                                           F:\MCP\projects\CAN\canBase\Source\Tick.c
66
                                           *	Pre-conditions: TickInit                                                       F:\MCP\projects\CAN\canBase\Source\Tick.c
67
                                           *	Affects: none                                                                  F:\MCP\projects\CAN\canBase\Source\Tick.c
68
                                           *	Depends: none                                                                  F:\MCP\projects\CAN\canBase\Source\Tick.c
69
                                           */                                                                               F:\MCP\projects\CAN\canBase\Source\Tick.c
70
                                           #define PERIOD (INSTR_FREQ/256/1000)*TICK_PERIOD_MS                              F:\MCP\projects\CAN\canBase\Source\Tick.c
71
                                           void tickInit(void)                                                              F:\MCP\projects\CAN\canBase\Source\Tick.c
72
                                           {                                                                                F:\MCP\projects\CAN\canBase\Source\Tick.c
73
                                               // Start the timer.                                                          F:\MCP\projects\CAN\canBase\Source\Tick.c
86 johboh 74
00163c   0e79     MOVLW     0x79               TMR0L = TICK_COUNTER_LOW;                                                    F:\MCP\projects\CAN\canBase\Source\Tick.c
75
00163e   6ed6     MOVWF     0xd6,0x0                                                                                        
76
001640   0efe     MOVLW     0xfe               TMR0H = TICK_COUNTER_HIGH;                                                   F:\MCP\projects\CAN\canBase\Source\Tick.c
77
001642   6ed7     MOVWF     0xd7,0x0                                                                                        
85 johboh 78
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Tick.c
79
                                               // 16-BIT, internal timer, PSA set to 1:256                                  F:\MCP\projects\CAN\canBase\Source\Tick.c
86 johboh 80
001644   0e07     MOVLW     0x7                T0CON = 0b00000000 | TIMER_PRESCALE;                                         F:\MCP\projects\CAN\canBase\Source\Tick.c
81
001646   6ed5     MOVWF     0xd5,0x0                                                                                        
85 johboh 82
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Tick.c
83
                                               // Start the timer.                                                          F:\MCP\projects\CAN\canBase\Source\Tick.c
86 johboh 84
001648   8ed5     BSF       0xd5,0x7,0x0       T0CONbits.TMR0ON = 1;                                                        F:\MCP\projects\CAN\canBase\Source\Tick.c
85 johboh 85
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Tick.c
86 johboh 86
00164a   84f2     BSF       0xf2,0x2,0x0       INTCONbits.TMR0IF = 1;                                                       F:\MCP\projects\CAN\canBase\Source\Tick.c
87
00164c   8af2     BSF       0xf2,0x5,0x0       INTCONbits.TMR0IE = 1;                                                       F:\MCP\projects\CAN\canBase\Source\Tick.c
88
00164e   0012     RETURN    0x0            }                                                                                F:\MCP\projects\CAN\canBase\Source\Tick.c
85 johboh 89
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Tick.c
90
                                           /*                                                                               F:\MCP\projects\CAN\canBase\Source\Tick.c
91
                                           *	Function: TickGet                                                              F:\MCP\projects\CAN\canBase\Source\Tick.c
92
                                           *                                                                                F:\MCP\projects\CAN\canBase\Source\Tick.c
93
                                           *	Input:	none                                                                    F:\MCP\projects\CAN\canBase\Source\Tick.c
94
                                           *	Output: Current tick value is given, 1 tick represents approximately 10ms      F:\MCP\projects\CAN\canBase\Source\Tick.c
95
                                           *	Pre-conditions: TickInit                                                       F:\MCP\projects\CAN\canBase\Source\Tick.c
96
                                           *	Affects: none                                                                  F:\MCP\projects\CAN\canBase\Source\Tick.c
97
                                           *	Depends: none                                                                  F:\MCP\projects\CAN\canBase\Source\Tick.c
98
                                           */                                                                               F:\MCP\projects\CAN\canBase\Source\Tick.c
99
                                           TICK tickGet(void)                                                               F:\MCP\projects\CAN\canBase\Source\Tick.c
100
                                           {                                                                                F:\MCP\projects\CAN\canBase\Source\Tick.c
86 johboh 101
001650   c072     MOVFF     0x72,0x12          return TickCount;                                                            F:\MCP\projects\CAN\canBase\Source\Tick.c
102
001652   f012                                                                                                               
103
001654   c073     MOVFF     0x73,0x13                                                                                       
104
001656   f013                                                                                                               
105
001658   c074     MOVFF     0x74,0x14                                                                                       
106
00165a   f014                                                                                                               
107
00165c   c075     MOVFF     0x75,0x15                                                                                       
108
00165e   f015                                                                                                               
109
001660   d000     BRA       0x1662                                                                                          
110
001662   0012     RETURN    0x0            }                                                                                F:\MCP\projects\CAN\canBase\Source\Tick.c
85 johboh 111
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Tick.c
112
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Tick.c
113
                                           /*                                                                               F:\MCP\projects\CAN\canBase\Source\Tick.c
114
                                           *	Function: tickUpdate                                                           F:\MCP\projects\CAN\canBase\Source\Tick.c
115
                                           *                                                                                F:\MCP\projects\CAN\canBase\Source\Tick.c
116
                                           *	Input:	none                                                                    F:\MCP\projects\CAN\canBase\Source\Tick.c
117
                                           *	Output: none                                                                   F:\MCP\projects\CAN\canBase\Source\Tick.c
118
                                           *	Pre-conditions: TickInit                                                       F:\MCP\projects\CAN\canBase\Source\Tick.c
119
                                           *	Affects: none                                                                  F:\MCP\projects\CAN\canBase\Source\Tick.c
120
                                           *	Depends: none                                                                  F:\MCP\projects\CAN\canBase\Source\Tick.c
121
                                           */                                                                               F:\MCP\projects\CAN\canBase\Source\Tick.c
122
                                           void tickUpdate(void)                                                            F:\MCP\projects\CAN\canBase\Source\Tick.c
123
                                           {                                                                                F:\MCP\projects\CAN\canBase\Source\Tick.c
86 johboh 124
001664   a4f2     BTFSS     0xf2,0x2,0x0       if(INTCONbits.TMR0IF)                                                        F:\MCP\projects\CAN\canBase\Source\Tick.c
125
001666   d00b     BRA       0x167e                                                                                          
85 johboh 126
                                               {                                                                            F:\MCP\projects\CAN\canBase\Source\Tick.c
86 johboh 127
001668   0efe     MOVLW     0xfe                   TMR0H = TICK_COUNTER_HIGH;                                               F:\MCP\projects\CAN\canBase\Source\Tick.c
128
00166a   6ed7     MOVWF     0xd7,0x0                                                                                        
129
00166c   0e79     MOVLW     0x79                   TMR0L = TICK_COUNTER_LOW;                                                F:\MCP\projects\CAN\canBase\Source\Tick.c
130
00166e   6ed6     MOVWF     0xd6,0x0                                                                                        
85 johboh 131
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Tick.c
86 johboh 132
001670   0100     MOVLB     0x0                    TickCount++;                                                             F:\MCP\projects\CAN\canBase\Source\Tick.c
133
001672   2b72     INCF      0x72,0x1,0x1                                                                                    
134
001674   0e00     MOVLW     0x0                                                                                             
135
001676   2373     ADDWFC    0x73,0x1,0x1                                                                                    
136
001678   2374     ADDWFC    0x74,0x1,0x1                                                                                    
137
00167a   2375     ADDWFC    0x75,0x1,0x1                                                                                    
85 johboh 138
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Tick.c
86 johboh 139
00167c   94f2     BCF       0xf2,0x2,0x0           INTCONbits.TMR0IF = 0;                                                   F:\MCP\projects\CAN\canBase\Source\Tick.c
85 johboh 140
                                               }                                                                            F:\MCP\projects\CAN\canBase\Source\Tick.c
86 johboh 141
00167e   0012     RETURN    0x0            }                                                                                F:\MCP\projects\CAN\canBase\Source\Tick.c
85 johboh 142
                                           /*********************************************************************           F:\MCP\projects\CAN\canBase\Source\CAN.c
143
                                            *                                                                               F:\MCP\projects\CAN\canBase\Source\CAN.c
86 johboh 144
                                            *                  CAN module                                                   F:\MCP\projects\CAN\canBase\Source\CAN.c
85 johboh 145
                                            *                                                                               F:\MCP\projects\CAN\canBase\Source\CAN.c
146
                                            *********************************************************************           F:\MCP\projects\CAN\canBase\Source\CAN.c
86 johboh 147
                                            * FileName:        $HeadURL$                                                    F:\MCP\projects\CAN\canBase\Source\CAN.c
148
                                            * Last changed:	$LastChangedDate$                                               F:\MCP\projects\CAN\canBase\Source\CAN.c
149
                                            * By:				$LastChangedBy$                                                        F:\MCP\projects\CAN\canBase\Source\CAN.c
150
                                            * Revision:		$Revision$                                                         F:\MCP\projects\CAN\canBase\Source\CAN.c
85 johboh 151
                                            ********************************************************************/           F:\MCP\projects\CAN\canBase\Source\CAN.c
152
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
153
                                           #include <CANdefs.h>                                                             F:\MCP\projects\CAN\canBase\Source\CAN.c
154
                                           #include <stackTasks.h>                                                          F:\MCP\projects\CAN\canBase\Source\CAN.c
155
                                           #include <CAN.h>                                                                 F:\MCP\projects\CAN\canBase\Source\CAN.c
156
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
157
                                           static void canGetPacket(void);                                                  F:\MCP\projects\CAN\canBase\Source\CAN.c
158
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
159
                                           #ifdef USE_CAN                                                                   F:\MCP\projects\CAN\canBase\Source\CAN.c
160
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
161
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
162
                                           /*                                                                               F:\MCP\projects\CAN\canBase\Source\CAN.c
163
                                           *	Function: canInit                                                              F:\MCP\projects\CAN\canBase\Source\CAN.c
164
                                           *                                                                                F:\MCP\projects\CAN\canBase\Source\CAN.c
165
                                           *	Input:	none                                                                    F:\MCP\projects\CAN\canBase\Source\CAN.c
166
                                           *	Output: none                                                                   F:\MCP\projects\CAN\canBase\Source\CAN.c
167
                                           *	Pre-conditions: none                                                           F:\MCP\projects\CAN\canBase\Source\CAN.c
168
                                           *	Affects: Changes can registers.                                                F:\MCP\projects\CAN\canBase\Source\CAN.c
169
                                           *	Depends: none.                                                                 F:\MCP\projects\CAN\canBase\Source\CAN.c
170
                                           */                                                                               F:\MCP\projects\CAN\canBase\Source\CAN.c
171
                                           void canInit()                                                                   F:\MCP\projects\CAN\canBase\Source\CAN.c
172
                                           {                                                                                F:\MCP\projects\CAN\canBase\Source\CAN.c
173
001044   0e80     MOVLW     0x80           	CANCON = 0x80; //request config mode                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
174
001046   6e6f     MOVWF     0x6f,0x0                                                                                        
175
001048   0ee0     MOVLW     0xe0           	while ((CANSTAT & 0xE0) != 0x80 ); //wait for config mode request               F:\MCP\projects\CAN\canBase\Source\CAN.c
176
00104a   146e     ANDWF     0x6e,0x0,0x0                                                                                    
177
00104c   0880     SUBLW     0x80                                                                                            
178
00104e   e001     BZ        0x1052                                                                                          
179
001050   d7fb     BRA       0x1048                                                                                          
180
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
181
                                           	// BAUD AND TQS                                                                 F:\MCP\projects\CAN\canBase\Source\CAN.c
182
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
183
001052   6a70     CLRF      0x70,0x0       	BRGCON1=0;                                                                      F:\MCP\projects\CAN\canBase\Source\CAN.c
184
                                           	                                                                                F:\MCP\projects\CAN\canBase\Source\CAN.c
185
                                           	// Sync_Seq = 2 x TQ = 1                                                        F:\MCP\projects\CAN\canBase\Source\CAN.c
186
001054   9e70     BCF       0x70,0x7,0x0   	BRGCON1bits.SJW1=0;                                                             F:\MCP\projects\CAN\canBase\Source\CAN.c
187
001056   8c70     BSF       0x70,0x6,0x0   	BRGCON1bits.SJW0=1;                                                             F:\MCP\projects\CAN\canBase\Source\CAN.c
188
                                           	                                                                                F:\MCP\projects\CAN\canBase\Source\CAN.c
189
                                           	// Setting BRP.                                                                 F:\MCP\projects\CAN\canBase\Source\CAN.c
190
001058   0e04     MOVLW     0x4            	BRGCON1=BRGCON1|CAN_BRP;                                                        F:\MCP\projects\CAN\canBase\Source\CAN.c
191
00105a   1070     IORWF     0x70,0x0,0x0                                                                                    
192
00105c   6e70     MOVWF     0x70,0x0                                                                                        
193
                                           	                                                                                F:\MCP\projects\CAN\canBase\Source\CAN.c
194
                                           	// Maximum PHEG1                                                                F:\MCP\projects\CAN\canBase\Source\CAN.c
195
00105e   8e71     BSF       0x71,0x7,0x0   	BRGCON2bits.SEG2PHTS = 1;                                                       F:\MCP\projects\CAN\canBase\Source\CAN.c
196
                                           	                                                                                F:\MCP\projects\CAN\canBase\Source\CAN.c
197
                                           	// Phase_Seg1 = 2 x TQ = 1                                                      F:\MCP\projects\CAN\canBase\Source\CAN.c
198
001060   9a71     BCF       0x71,0x5,0x0   	BRGCON2bits.SEG1PH2 = 0;                                                        F:\MCP\projects\CAN\canBase\Source\CAN.c
199
001062   9871     BCF       0x71,0x4,0x0   	BRGCON2bits.SEG1PH1 = 0;                                                        F:\MCP\projects\CAN\canBase\Source\CAN.c
200
001064   8671     BSF       0x71,0x3,0x0   	BRGCON2bits.SEG1PH0 = 1;                                                        F:\MCP\projects\CAN\canBase\Source\CAN.c
201
                                           	                                                                                F:\MCP\projects\CAN\canBase\Source\CAN.c
202
                                           	// Prop_Seq = 2 x TQ = 1                                                        F:\MCP\projects\CAN\canBase\Source\CAN.c
203
001066   9471     BCF       0x71,0x2,0x0   	BRGCON2bits.PRSEG2 = 0;                                                         F:\MCP\projects\CAN\canBase\Source\CAN.c
204
001068   9271     BCF       0x71,0x1,0x0   	BRGCON2bits.PRSEG1 = 0;                                                         F:\MCP\projects\CAN\canBase\Source\CAN.c
205
00106a   8071     BSF       0x71,0x0,0x0   	BRGCON2bits.PRSEG0 = 1;                                                         F:\MCP\projects\CAN\canBase\Source\CAN.c
206
                                           	                                                                                F:\MCP\projects\CAN\canBase\Source\CAN.c
207
                                           	//  Enableing bus wake-up                                                       F:\MCP\projects\CAN\canBase\Source\CAN.c
208
00106c   9e72     BCF       0x72,0x7,0x0   	BRGCON3bits.WAKDIS = 0;                                                         F:\MCP\projects\CAN\canBase\Source\CAN.c
209
                                           	                                                                                F:\MCP\projects\CAN\canBase\Source\CAN.c
210
                                           	// Dont use filter when wakeup                                                  F:\MCP\projects\CAN\canBase\Source\CAN.c
211
00106e   9c72     BCF       0x72,0x6,0x0   	BRGCON3bits.WAKFIL = 0;                                                         F:\MCP\projects\CAN\canBase\Source\CAN.c
212
                                           	                                                                                F:\MCP\projects\CAN\canBase\Source\CAN.c
213
                                           	// Phase_Seg2 = 2 x TQ = 1                                                      F:\MCP\projects\CAN\canBase\Source\CAN.c
214
001070   9472     BCF       0x72,0x2,0x0   	BRGCON3bits.SEG2PH2 = 0;                                                        F:\MCP\projects\CAN\canBase\Source\CAN.c
215
001072   9272     BCF       0x72,0x1,0x0   	BRGCON3bits.SEG2PH1 = 0;                                                        F:\MCP\projects\CAN\canBase\Source\CAN.c
216
001074   8072     BSF       0x72,0x0,0x0   	BRGCON3bits.SEG2PH0 = 1;                                                        F:\MCP\projects\CAN\canBase\Source\CAN.c
217
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
218
001076   6a77     CLRF      0x77,0x0       	ECANCON=0;                                                                      F:\MCP\projects\CAN\canBase\Source\CAN.c
219
001078   9e77     BCF       0x77,0x7,0x0   	ECANCONbits.MDSEL1 = 0;                                                         F:\MCP\projects\CAN\canBase\Source\CAN.c
220
00107a   8c77     BSF       0x77,0x6,0x0   	ECANCONbits.MDSEL0 = 1;                                                         F:\MCP\projects\CAN\canBase\Source\CAN.c
221
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
222
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
223
                                           	// FILTERS AND MASKS                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
224
00107c   8c60     BSF       0x60,0x6,0x0   	RXB0CONbits.RXM1=1;                                                             F:\MCP\projects\CAN\canBase\Source\CAN.c
225
00107e   9a60     BCF       0x60,0x5,0x0   	RXB0CONbits.RXM0=0;                                                             F:\MCP\projects\CAN\canBase\Source\CAN.c
226
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
227
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
228
                                           	// INTERRUPTS                                                                   F:\MCP\projects\CAN\canBase\Source\CAN.c
229
                                           	                                                                                F:\MCP\projects\CAN\canBase\Source\CAN.c
230
                                           	// Diable transmit interrupt                                                    F:\MCP\projects\CAN\canBase\Source\CAN.c
231
001080   010d     MOVLB     0xd            	TXBIE = 0;                                                                      F:\MCP\projects\CAN\canBase\Source\CAN.c
232
001082   6bfc     CLRF      0xfc,0x1                                                                                        
233
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
234
                                           	//rx any interrupt                                                              F:\MCP\projects\CAN\canBase\Source\CAN.c
235
001084   6aa4     CLRF      0xa4,0x0       	PIR3 = 0;                                                                       F:\MCP\projects\CAN\canBase\Source\CAN.c
236
001086   0e03     MOVLW     0x3            	PIE3 = 0b00000011;                                                              F:\MCP\projects\CAN\canBase\Source\CAN.c
237
001088   6ea3     MOVWF     0xa3,0x0                                                                                        
238
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
239
                                           	// High interrupt                                                               F:\MCP\projects\CAN\canBase\Source\CAN.c
240
00108a   6ea5     MOVWF     0xa5,0x0       	IPR3 =0b00000011;                                                               F:\MCP\projects\CAN\canBase\Source\CAN.c
241
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
242
                                           	// Programmable buffers interrupt                                               F:\MCP\projects\CAN\canBase\Source\CAN.c
243
00108c   69fa     SETF      0xfa,0x1       	BIE0  = 0xFF;	                                                                  F:\MCP\projects\CAN\canBase\Source\CAN.c
244
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
245
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
246
                                           	//loopback mode or not                                                          F:\MCP\projects\CAN\canBase\Source\CAN.c
247
                                           	#ifdef CAN_LOOPBACK_MODE                                                        F:\MCP\projects\CAN\canBase\Source\CAN.c
248
                                           		CANCON = 0x40;//request loopback mode                                          F:\MCP\projects\CAN\canBase\Source\CAN.c
249
                                           		while ((CANSTAT & 0xE0) != 0x40 );//wait for loopback mode                     F:\MCP\projects\CAN\canBase\Source\CAN.c
250
                                           	#else                                                                           F:\MCP\projects\CAN\canBase\Source\CAN.c
251
00108e   6a6f     CLRF      0x6f,0x0       		CANCON = 0x00;//request normal mode                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
252
001090   0ee0     MOVLW     0xe0           		while ((CANSTAT & 0xE0) != 0x00 );//wait for normal mode                       F:\MCP\projects\CAN\canBase\Source\CAN.c
253
001092   146e     ANDWF     0x6e,0x0,0x0                                                                                    
254
001094   e001     BZ        0x1098                                                                                          
255
001096   d7fc     BRA       0x1090                                                                                          
256
                                           	#endif                                                                          F:\MCP\projects\CAN\canBase\Source\CAN.c
257
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
258
001098   0012     RETURN    0x0            }                                                                                F:\MCP\projects\CAN\canBase\Source\CAN.c
259
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
260
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
261
                                           /*                                                                               F:\MCP\projects\CAN\canBase\Source\CAN.c
262
                                           *	Function: canISR                                                               F:\MCP\projects\CAN\canBase\Source\CAN.c
263
                                           *                                                                                F:\MCP\projects\CAN\canBase\Source\CAN.c
264
                                           *	Input:	none                                                                    F:\MCP\projects\CAN\canBase\Source\CAN.c
265
                                           *	Output: none                                                                   F:\MCP\projects\CAN\canBase\Source\CAN.c
266
                                           *	Pre-conditions: a call to canInit()                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
267
                                           *	Affects: interrupt registers and receive data buffers                          F:\MCP\projects\CAN\canBase\Source\CAN.c
268
                                           *	Depends: ..                                                                    F:\MCP\projects\CAN\canBase\Source\CAN.c
269
                                           */                                                                               F:\MCP\projects\CAN\canBase\Source\CAN.c
270
                                           void canISR()                                                                    F:\MCP\projects\CAN\canBase\Source\CAN.c
271
                                           {                                                                                F:\MCP\projects\CAN\canBase\Source\CAN.c
272
                                           	                                                                                F:\MCP\projects\CAN\canBase\Source\CAN.c
273
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
274
00109a   50a4     MOVF      0xa4,0x0,0x0   	if (PIR3bits.RXBnIF || PIR3bits.RXB1IF || PIR3bits.RXB0IF)                      F:\MCP\projects\CAN\canBase\Source\CAN.c
275
00109c   0b02     ANDLW     0x2                                                                                             
276
00109e   e106     BNZ       0x10ac                                                                                          
277
0010a0   50a4     MOVF      0xa4,0x0,0x0                                                                                    
278
0010a2   0b02     ANDLW     0x2                                                                                             
279
0010a4   e103     BNZ       0x10ac                                                                                          
280
0010a6   50a4     MOVF      0xa4,0x0,0x0                                                                                    
281
0010a8   0b01     ANDLW     0x1                                                                                             
282
0010aa   e047     BZ        0x113a                                                                                          
283
                                           	{                                                                               F:\MCP\projects\CAN\canBase\Source\CAN.c
284
                                           		// Get which buffer that is ful.                                               F:\MCP\projects\CAN\canBase\Source\CAN.c
285
0010ac   ae60     BTFSS     0x60,0x7,0x0   			 if (RXB0CONbits.RXFUL) { ECANCON=(ECANCON&0b00000)|0b10000; canGetPacket(); } F:\MCP\projects\CAN\canBase\Source\CAN.c
286
0010ae   d006     BRA       0x10bc                                                                                          
287
0010b0   0e00     MOVLW     0x0                                                                                             
288
0010b2   1477     ANDWF     0x77,0x0,0x0                                                                                    
289
0010b4   0910     IORLW     0x10                                                                                            
290
0010b6   6e77     MOVWF     0x77,0x0                                                                                        
291
0010b8   d841     RCALL     0x113c                                                                                          
292
0010ba   d039     BRA       0x112e         		else if (RXB1CONbits.RXFUL) { ECANCON=(ECANCON&0b00000)|0b10001; canGetPacket(); } F:\MCP\projects\CAN\canBase\Source\CAN.c
293
0010bc   010f     MOVLB     0xf                                                                                             
294
0010be   af50     BTFSS     0x50,0x7,0x1                                                                                    
295
0010c0   d006     BRA       0x10ce                                                                                          
296
0010c2   0e00     MOVLW     0x0                                                                                             
297
0010c4   1477     ANDWF     0x77,0x0,0x0                                                                                    
298
0010c6   0911     IORLW     0x11                                                                                            
299
0010c8   6e77     MOVWF     0x77,0x0                                                                                        
300
0010ca   d838     RCALL     0x113c                                                                                          
301
0010cc   d030     BRA       0x112e         		else if (B0CONbits.RXFUL) 	{ ECANCON=(ECANCON&0b00000)|0b10010; canGetPacket(); } F:\MCP\projects\CAN\canBase\Source\CAN.c
302
0010ce   010e     MOVLB     0xe                                                                                             
303
0010d0   af20     BTFSS     0x20,0x7,0x1                                                                                    
304
0010d2   d006     BRA       0x10e0                                                                                          
305
0010d4   0e00     MOVLW     0x0                                                                                             
306
0010d6   1477     ANDWF     0x77,0x0,0x0                                                                                    
307
0010d8   0912     IORLW     0x12                                                                                            
308
0010da   6e77     MOVWF     0x77,0x0                                                                                        
309
0010dc   d82f     RCALL     0x113c                                                                                          
310
0010de   d027     BRA       0x112e         		else if (B1CONbits.RXFUL) 	{ ECANCON=(ECANCON&0b00000)|0b10011; canGetPacket(); } F:\MCP\projects\CAN\canBase\Source\CAN.c
311
0010e0   af30     BTFSS     0x30,0x7,0x1                                                                                    
312
0010e2   d006     BRA       0x10f0                                                                                          
313
0010e4   0e00     MOVLW     0x0                                                                                             
314
0010e6   1477     ANDWF     0x77,0x0,0x0                                                                                    
315
0010e8   0913     IORLW     0x13                                                                                            
316
0010ea   6e77     MOVWF     0x77,0x0                                                                                        
317
0010ec   d827     RCALL     0x113c                                                                                          
318
0010ee   d01f     BRA       0x112e         		else if (B2CONbits.RXFUL) 	{ ECANCON=(ECANCON&0b00000)|0b10100; canGetPacket(); } F:\MCP\projects\CAN\canBase\Source\CAN.c
319
0010f0   af40     BTFSS     0x40,0x7,0x1                                                                                    
320
0010f2   d006     BRA       0x1100                                                                                          
321
0010f4   0e00     MOVLW     0x0                                                                                             
322
0010f6   1477     ANDWF     0x77,0x0,0x0                                                                                    
323
0010f8   0914     IORLW     0x14                                                                                            
324
0010fa   6e77     MOVWF     0x77,0x0                                                                                        
325
0010fc   d81f     RCALL     0x113c                                                                                          
326
0010fe   d017     BRA       0x112e         		else if (B3CONbits.RXFUL) 	{ ECANCON=(ECANCON&0b00000)|0b10101; canGetPacket(); } F:\MCP\projects\CAN\canBase\Source\CAN.c
327
001100   af50     BTFSS     0x50,0x7,0x1                                                                                    
328
001102   d006     BRA       0x1110                                                                                          
329
001104   0e00     MOVLW     0x0                                                                                             
330
001106   1477     ANDWF     0x77,0x0,0x0                                                                                    
331
001108   0915     IORLW     0x15                                                                                            
332
00110a   6e77     MOVWF     0x77,0x0                                                                                        
333
00110c   d817     RCALL     0x113c                                                                                          
334
00110e   d00f     BRA       0x112e         		else if (B4CONbits.RXFUL) 	{ ECANCON=(ECANCON&0b00000)|0b10110; canGetPacket(); } F:\MCP\projects\CAN\canBase\Source\CAN.c
335
001110   af60     BTFSS     0x60,0x7,0x1                                                                                    
336
001112   d006     BRA       0x1120                                                                                          
337
001114   0e00     MOVLW     0x0                                                                                             
338
001116   1477     ANDWF     0x77,0x0,0x0                                                                                    
339
001118   0916     IORLW     0x16                                                                                            
340
00111a   6e77     MOVWF     0x77,0x0                                                                                        
341
00111c   d80f     RCALL     0x113c                                                                                          
342
00111e   d007     BRA       0x112e         		else if (B5CONbits.RXFUL) 	{ ECANCON=(ECANCON&0b00000)|0b10111; canGetPacket(); } F:\MCP\projects\CAN\canBase\Source\CAN.c
343
001120   af70     BTFSS     0x70,0x7,0x1                                                                                    
344
001122   d005     BRA       0x112e                                                                                          
345
001124   0e00     MOVLW     0x0                                                                                             
346
001126   1477     ANDWF     0x77,0x0,0x0                                                                                    
347
001128   0917     IORLW     0x17                                                                                            
348
00112a   6e77     MOVWF     0x77,0x0                                                                                        
349
00112c   d807     RCALL     0x113c                                                                                          
350
                                           	                                                                                F:\MCP\projects\CAN\canBase\Source\CAN.c
351
00112e   b2a4     BTFSC     0xa4,0x1,0x0   		if (PIR3bits.RXBnIF) {PIR3bits.RXBnIF = 0;}                                    F:\MCP\projects\CAN\canBase\Source\CAN.c
352
001130   92a4     BCF       0xa4,0x1,0x0                                                                                    
353
001132   b2a4     BTFSC     0xa4,0x1,0x0   		if (PIR3bits.RXB1IF) {PIR3bits.RXB1IF = 0;}                                    F:\MCP\projects\CAN\canBase\Source\CAN.c
354
001134   92a4     BCF       0xa4,0x1,0x0                                                                                    
355
001136   b0a4     BTFSC     0xa4,0x0,0x0   		if (PIR3bits.RXB0IF) {PIR3bits.RXB0IF = 0;}                                    F:\MCP\projects\CAN\canBase\Source\CAN.c
356
001138   90a4     BCF       0xa4,0x0,0x0                                                                                    
357
                                           	                                                                                F:\MCP\projects\CAN\canBase\Source\CAN.c
358
                                           	}                                                                               F:\MCP\projects\CAN\canBase\Source\CAN.c
359
00113a   0012     RETURN    0x0            }                                                                                F:\MCP\projects\CAN\canBase\Source\CAN.c
360
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
361
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
362
                                           /*                                                                               F:\MCP\projects\CAN\canBase\Source\CAN.c
363
                                           *	Function: canGetPacket                                                         F:\MCP\projects\CAN\canBase\Source\CAN.c
364
                                           *                                                                                F:\MCP\projects\CAN\canBase\Source\CAN.c
365
                                           *	Input:	none                                                                    F:\MCP\projects\CAN\canBase\Source\CAN.c
366
                                           *	Output: none                                                                   F:\MCP\projects\CAN\canBase\Source\CAN.c
367
                                           *	Pre-conditions: a call to canISR and an packet is available and banked to RXB0 F:\MCP\projects\CAN\canBase\Source\CAN.c
368
                                           *	Affects: Calls canParse() function in main for parsing received packet.        F:\MCP\projects\CAN\canBase\Source\CAN.c
369
                                           *	Depends: none.                                                                 F:\MCP\projects\CAN\canBase\Source\CAN.c
370
                                           */                                                                               F:\MCP\projects\CAN\canBase\Source\CAN.c
371
00113c   cfd9     MOVFF     0xfd9,0xfe6    void canGetPacket()                                                              F:\MCP\projects\CAN\canBase\Source\CAN.c
372
00113e   ffe6                                                                                                               
373
001140   cfe1     MOVFF     0xfe1,0xfd9                                                                                     
374
001142   ffd9                                                                                                               
375
001144   0e0f     MOVLW     0xf                                                                                             
376
001146   26e1     ADDWF     0xe1,0x1,0x0                                                                                    
377
                                           {                                                                                F:\MCP\projects\CAN\canBase\Source\CAN.c
378
                                           		CAN_MESSAGE cm;                                                                F:\MCP\projects\CAN\canBase\Source\CAN.c
379
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
86 johboh 380
                                           		//RXB0SIDH 28 27 26 25 24 23 22 21                                             F:\MCP\projects\CAN\canBase\Source\CAN.c
381
                                                   //RXB0SIDL 20 19 18 xx xx xx 17 16                                       F:\MCP\projects\CAN\canBase\Source\CAN.c
382
                                                   //RXB0EIDH 15 14 13 12 11 10 09 08                                       F:\MCP\projects\CAN\canBase\Source\CAN.c
383
                                                   //RXB0EIDL 07 06 05 04 03 02 01 00                                       F:\MCP\projects\CAN\canBase\Source\CAN.c
85 johboh 384
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
86 johboh 385
                                           		//funct xx xx xx xx 28 27 26 25                                                F:\MCP\projects\CAN\canBase\Source\CAN.c
386
                                           		//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
387
                                           		//nid   xx xx 14 13 12 11 10 09                                                F:\MCP\projects\CAN\canBase\Source\CAN.c
388
                                           		//sid   xx xx xx xx xx xx xx 08 07 06 05 04 03 02 01 00                        F:\MCP\projects\CAN\canBase\Source\CAN.c
85 johboh 389
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
390
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
86 johboh 391
001148   0ef0     MOVLW     0xf0                  	cm.funct=((RXB0SIDH & 0xF0)>>4);                                         F:\MCP\projects\CAN\canBase\Source\CAN.c
392
00114a   1461     ANDWF     0x61,0x0,0x0                                                                                    
393
00114c   38e8     SWAPF     0xe8,0x0,0x0                                                                                    
394
00114e   0b0f     ANDLW     0xf                                                                                             
395
001150   6edf     MOVWF     0xdf,0x0                                                                                        
396
001152   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
397
001154   1461     ANDWF     0x61,0x0,0x0                                                                                    
398
001156   6e06     MOVWF     0x6,0x0                                                                                         
399
001158   6a07     CLRF      0x7,0x0                                                                                         
400
00115a   0e06     MOVLW     0x6                                                                                             
401
00115c   90d8     BCF       0xd8,0x0,0x0                                                                                    
402
00115e   3606     RLCF      0x6,0x1,0x0                                                                                     
403
001160   3607     RLCF      0x7,0x1,0x0                                                                                     
404
001162   04e8     DECF      0xe8,0x0,0x0                                                                                    
405
001164   e1fb     BNZ       0x115c                                                                                          
406
001166   0ee0     MOVLW     0xe0                                                                                            
407
001168   1462     ANDWF     0x62,0x0,0x0                                                                                    
408
00116a   6e08     MOVWF     0x8,0x0                                                                                         
409
00116c   6a09     CLRF      0x9,0x0                                                                                         
410
00116e   90d8     BCF       0xd8,0x0,0x0                                                                                    
411
001170   3209     RRCF      0x9,0x1,0x0                                                                                     
412
001172   3208     RRCF      0x8,0x1,0x0                                                                                     
413
001174   90d8     BCF       0xd8,0x0,0x0                                                                                    
414
001176   3209     RRCF      0x9,0x1,0x0                                                                                     
415
001178   3208     RRCF      0x8,0x1,0x0                                                                                     
416
00117a   5006     MOVF      0x6,0x0,0x0                                                                                     
417
00117c   2408     ADDWF     0x8,0x0,0x0                                                                                     
418
00117e   6e04     MOVWF     0x4,0x0                                                                                         
419
001180   5007     MOVF      0x7,0x0,0x0                                                                                     
420
001182   2009     ADDWFC    0x9,0x0,0x0                                                                                     
421
001184   6e05     MOVWF     0x5,0x0                                                                                         
422
001186   0e03     MOVLW     0x3                                                                                             
423
001188   1462     ANDWF     0x62,0x0,0x0                                                                                    
424
00118a   6e0a     MOVWF     0xa,0x0                                                                                         
425
00118c   6a0b     CLRF      0xb,0x0                                                                                         
426
00118e   90d8     BCF       0xd8,0x0,0x0                                                                                    
427
001190   360a     RLCF      0xa,0x1,0x0                                                                                     
428
001192   360b     RLCF      0xb,0x1,0x0                                                                                     
429
001194   5004     MOVF      0x4,0x0,0x0                                                                                     
430
001196   240a     ADDWF     0xa,0x0,0x0                                                                                     
431
001198   6e02     MOVWF     0x2,0x0                                                                                         
432
00119a   5005     MOVF      0x5,0x0,0x0                                                                                     
433
00119c   200b     ADDWFC    0xb,0x0,0x0                                                                                     
434
00119e   6e03     MOVWF     0x3,0x0                                                                                         
435
0011a0   0e80     MOVLW     0x80                                                                                            
436
0011a2   1463     ANDWF     0x63,0x0,0x0                                                                                    
437
0011a4   6e0c     MOVWF     0xc,0x0                                                                                         
438
0011a6   6a0d     CLRF      0xd,0x0                                                                                         
439
0011a8   0e07     MOVLW     0x7                                                                                             
440
0011aa   90d8     BCF       0xd8,0x0,0x0                                                                                    
441
0011ac   320d     RRCF      0xd,0x1,0x0                                                                                     
442
0011ae   320c     RRCF      0xc,0x1,0x0                                                                                     
443
0011b0   04e8     DECF      0xe8,0x0,0x0                                                                                    
444
0011b2   e1fb     BNZ       0x11aa                                                                                          
445
0011b4   5002     MOVF      0x2,0x0,0x0                                                                                     
446
0011b6   240c     ADDWF     0xc,0x0,0x0                                                                                     
447
0011b8   6e00     MOVWF     0x0,0x0                                                                                         
448
0011ba   5003     MOVF      0x3,0x0,0x0                                                                                     
449
0011bc   200d     ADDWFC    0xd,0x0,0x0                                                                                     
450
0011be   6e01     MOVWF     0x1,0x0                                                                                         
451
0011c0   0e01     MOVLW     0x1                                                                                             
452
0011c2   c000     MOVFF     0x0,0xfdb                                                                                       
453
0011c4   ffdb                                                                                                               
454
0011c6   0e02     MOVLW     0x2                                                                                             
455
0011c8   c001     MOVFF     0x1,0xfdb                                                                                       
456
0011ca   ffdb                                                                                                               
457
0011cc   0e7e     MOVLW     0x7e                   cm.nid=((RXB0EIDH & 0x7E)>>1);                                           F:\MCP\projects\CAN\canBase\Source\CAN.c
458
0011ce   1463     ANDWF     0x63,0x0,0x0                                                                                    
459
0011d0   40e8     RRNCF     0xe8,0x0,0x0                                                                                    
460
0011d2   0b7f     ANDLW     0x7f                                                                                            
461
0011d4   6ee7     MOVWF     0xe7,0x0                                                                                        
462
0011d6   0e03     MOVLW     0x3                                                                                             
463
0011d8   cfe7     MOVFF     0xfe7,0xfdb                                                                                     
464
0011da   ffdb                                                                                                               
465
0011dc   0e01     MOVLW     0x1                    cm.sid=(((WORD)(RXB0EIDH & 0x01))<<8)+RXB0EIDL;                          F:\MCP\projects\CAN\canBase\Source\CAN.c
466
0011de   1463     ANDWF     0x63,0x0,0x0                                                                                    
467
0011e0   6e02     MOVWF     0x2,0x0                                                                                         
468
0011e2   c002     MOVFF     0x2,0x3                                                                                         
469
0011e4   f003                                                                                                               
470
0011e6   6a02     CLRF      0x2,0x0                                                                                         
471
0011e8   5064     MOVF      0x64,0x0,0x0                                                                                    
472
0011ea   0100     MOVLB     0x0                                                                                             
473
0011ec   2402     ADDWF     0x2,0x0,0x0                                                                                     
474
0011ee   6e00     MOVWF     0x0,0x0                                                                                         
475
0011f0   0e00     MOVLW     0x0                                                                                             
476
0011f2   2003     ADDWFC    0x3,0x0,0x0                                                                                     
477
0011f4   6e01     MOVWF     0x1,0x0                                                                                         
478
0011f6   0e04     MOVLW     0x4                                                                                             
479
0011f8   c000     MOVFF     0x0,0xfdb                                                                                       
480
0011fa   ffdb                                                                                                               
481
0011fc   0e05     MOVLW     0x5                                                                                             
482
0011fe   c001     MOVFF     0x1,0xfdb                                                                                       
483
001200   ffdb                                                                                                               
85 johboh 484
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
485
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
86 johboh 486
                                           		// Data length                                                                 F:\MCP\projects\CAN\canBase\Source\CAN.c
487
001202   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
488
001204   0b01     ANDLW     0x1                                                                                             
489
001206   6e02     MOVWF     0x2,0x0                                                                                         
490
001208   5065     MOVF      0x65,0x0,0x0                                                                                    
491
00120a   0b02     ANDLW     0x2                                                                                             
492
00120c   e001     BZ        0x1210                                                                                          
493
00120e   0e01     MOVLW     0x1                                                                                             
494
001210   24e8     ADDWF     0xe8,0x0,0x0                                                                                    
495
001212   6e01     MOVWF     0x1,0x0                                                                                         
496
001214   5065     MOVF      0x65,0x0,0x0                                                                                    
497
001216   0b04     ANDLW     0x4                                                                                             
498
001218   e001     BZ        0x121c                                                                                          
499
00121a   0e01     MOVLW     0x1                                                                                             
500
00121c   0d04     MULLW     0x4                                                                                             
501
00121e   cff3     MOVFF     0xff3,0x0                                                                                       
502
001220   f000                                                                                                               
503
001222   5065     MOVF      0x65,0x0,0x0                                                                                    
504
001224   0b08     ANDLW     0x8                                                                                             
505
001226   e001     BZ        0x122a                                                                                          
506
001228   0e01     MOVLW     0x1                                                                                             
507
00122a   0d08     MULLW     0x8                                                                                             
508
00122c   50f3     MOVF      0xf3,0x0,0x0                                                                                    
509
00122e   2400     ADDWF     0x0,0x0,0x0                                                                                     
510
001230   2401     ADDWF     0x1,0x0,0x0                                                                                     
511
001232   2402     ADDWF     0x2,0x0,0x0                                                                                     
512
001234   6ee7     MOVWF     0xe7,0x0                                                                                        
513
001236   0e06     MOVLW     0x6                                                                                             
514
001238   cfe7     MOVFF     0xfe7,0xfdb                                                                                     
515
00123a   ffdb                                                                                                               
85 johboh 516
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
86 johboh 517
                                           		// Data one bye one, for speed                                                 F:\MCP\projects\CAN\canBase\Source\CAN.c
518
00123c   0e07     MOVLW     0x7            		cm.data[0]=RXB0D0;	cm.data[1]=RXB0D1;                                          F:\MCP\projects\CAN\canBase\Source\CAN.c
519
00123e   cf66     MOVFF     0xf66,0xfdb                                                                                     
85 johboh 520
001240   ffdb                                                                                                               
86 johboh 521
001242   0e08     MOVLW     0x8                                                                                             
522
001244   cf67     MOVFF     0xf67,0xfdb                                                                                     
85 johboh 523
001246   ffdb                                                                                                               
86 johboh 524
001248   0e09     MOVLW     0x9            		cm.data[2]=RXB0D2; 	cm.data[3]=RXB0D3;                                         F:\MCP\projects\CAN\canBase\Source\CAN.c
525
00124a   cf68     MOVFF     0xf68,0xfdb                                                                                     
526
00124c   ffdb                                                                                                               
527
00124e   0e0a     MOVLW     0xa                                                                                             
528
001250   cf69     MOVFF     0xf69,0xfdb                                                                                     
529
001252   ffdb                                                                                                               
530
001254   0e0b     MOVLW     0xb            		cm.data[4]=RXB0D4; 	cm.data[5]=RXB0D5;                                         F:\MCP\projects\CAN\canBase\Source\CAN.c
531
001256   cf6a     MOVFF     0xf6a,0xfdb                                                                                     
532
001258   ffdb                                                                                                               
533
00125a   0e0c     MOVLW     0xc                                                                                             
534
00125c   cf6b     MOVFF     0xf6b,0xfdb                                                                                     
535
00125e   ffdb                                                                                                               
536
001260   0e0d     MOVLW     0xd            		cm.data[6]=RXB0D6; 	cm.data[7]=RXB0D7;                                         F:\MCP\projects\CAN\canBase\Source\CAN.c
537
001262   cf6c     MOVFF     0xf6c,0xfdb                                                                                     
538
001264   ffdb                                                                                                               
539
001266   0e0e     MOVLW     0xe                                                                                             
540
001268   cf6d     MOVFF     0xf6d,0xfdb                                                                                     
541
00126a   ffdb                                                                                                               
85 johboh 542
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
543
                                           		// Clear ful status                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
86 johboh 544
00126c   9e60     BCF       0x60,0x7,0x0   		RXB0CONbits.RXFUL=0;                                                           F:\MCP\projects\CAN\canBase\Source\CAN.c
85 johboh 545
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
546
                                           		//Call main parser                                                             F:\MCP\projects\CAN\canBase\Source\CAN.c
86 johboh 547
00126e   cfd9     MOVFF     0xfd9,0xfe9    		canParse(cm);                                                                  F:\MCP\projects\CAN\canBase\Source\CAN.c
548
001270   ffe9                                                                                                               
549
001272   cfda     MOVFF     0xfda,0xfea                                                                                     
550
001274   ffea                                                                                                               
551
001276   cfee     MOVFF     0xfee,0xfe6                                                                                     
552
001278   ffe6                                                                                                               
553
00127a   cfee     MOVFF     0xfee,0xfe6                                                                                     
554
00127c   ffe6                                                                                                               
555
00127e   cfee     MOVFF     0xfee,0xfe6                                                                                     
556
001280   ffe6                                                                                                               
557
001282   cfee     MOVFF     0xfee,0xfe6                                                                                     
558
001284   ffe6                                                                                                               
559
001286   cfee     MOVFF     0xfee,0xfe6                                                                                     
560
001288   ffe6                                                                                                               
561
00128a   cfee     MOVFF     0xfee,0xfe6                                                                                     
562
00128c   ffe6                                                                                                               
563
00128e   cfee     MOVFF     0xfee,0xfe6                                                                                     
564
001290   ffe6                                                                                                               
565
001292   cfee     MOVFF     0xfee,0xfe6                                                                                     
566
001294   ffe6                                                                                                               
567
001296   cfee     MOVFF     0xfee,0xfe6                                                                                     
568
001298   ffe6                                                                                                               
569
00129a   cfee     MOVFF     0xfee,0xfe6                                                                                     
570
00129c   ffe6                                                                                                               
571
00129e   cfee     MOVFF     0xfee,0xfe6                                                                                     
572
0012a0   ffe6                                                                                                               
573
0012a2   cfee     MOVFF     0xfee,0xfe6                                                                                     
574
0012a4   ffe6                                                                                                               
575
0012a6   cfee     MOVFF     0xfee,0xfe6                                                                                     
576
0012a8   ffe6                                                                                                               
577
0012aa   cfee     MOVFF     0xfee,0xfe6                                                                                     
578
0012ac   ffe6                                                                                                               
579
0012ae   cfee     MOVFF     0xfee,0xfe6                                                                                     
580
0012b0   ffe6                                                                                                               
581
0012b2   ecb5     CALL      0x156a,0x0                                                                                      
582
0012b4   f00a                                                                                                               
583
0012b6   6e00     MOVWF     0x0,0x0                                                                                         
584
0012b8   0e0f     MOVLW     0xf                                                                                             
585
0012ba   5ee1     SUBWF     0xe1,0x1,0x0                                                                                    
586
0012bc   5000     MOVF      0x0,0x0,0x0                                                                                     
587
0012be   0e0f     MOVLW     0xf            }                                                                                F:\MCP\projects\CAN\canBase\Source\CAN.c
588
0012c0   5ce1     SUBWF     0xe1,0x0,0x0                                                                                    
589
0012c2   e202     BC        0x12c8                                                                                          
590
0012c4   6ae1     CLRF      0xe1,0x0                                                                                        
591
0012c6   52e5     MOVF      0xe5,0x1,0x0                                                                                    
592
0012c8   6ee1     MOVWF     0xe1,0x0                                                                                        
593
0012ca   52e5     MOVF      0xe5,0x1,0x0                                                                                    
594
0012cc   cfe7     MOVFF     0xfe7,0xfd9                                                                                     
595
0012ce   ffd9                                                                                                               
596
0012d0   0012     RETURN    0x0                                                                                             
85 johboh 597
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
598
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
599
                                           /*                                                                               F:\MCP\projects\CAN\canBase\Source\CAN.c
600
                                           *	Function: canSendMessage                                                       F:\MCP\projects\CAN\canBase\Source\CAN.c
601
                                           *                                                                                F:\MCP\projects\CAN\canBase\Source\CAN.c
602
                                           *	Input:	CAN_MESSAGE to send                                                     F:\MCP\projects\CAN\canBase\Source\CAN.c
603
                                           *	Output: True if packet scheduled sucess, false otherwise.                      F:\MCP\projects\CAN\canBase\Source\CAN.c
604
                                           *	Pre-conditions: canInit                                                        F:\MCP\projects\CAN\canBase\Source\CAN.c
605
                                           *	Affects: ..                                                                    F:\MCP\projects\CAN\canBase\Source\CAN.c
606
                                           *	Depends: ..                                                                    F:\MCP\projects\CAN\canBase\Source\CAN.c
607
                                           */                                                                               F:\MCP\projects\CAN\canBase\Source\CAN.c
86 johboh 608
0012d2   cfd9     MOVFF     0xfd9,0xfe6    BOOL canSendMessage(CAN_MESSAGE cm,CAN_PRIORITY prio)                            F:\MCP\projects\CAN\canBase\Source\CAN.c
609
0012d4   ffe6                                                                                                               
610
0012d6   cfe1     MOVFF     0xfe1,0xfd9                                                                                     
611
0012d8   ffd9                                                                                                               
85 johboh 612
                                           {                                                                                F:\MCP\projects\CAN\canBase\Source\CAN.c
613
                                           	                                                                                F:\MCP\projects\CAN\canBase\Source\CAN.c
86 johboh 614
0012da   010f     MOVLB     0xf            	if ( TXB0CONbits.TXREQ == 0 )  { ECANCON=(ECANCON&0b00000)|0b00011; }           F:\MCP\projects\CAN\canBase\Source\CAN.c
615
0012dc   b740     BTFSC     0x40,0x3,0x1                                                                                    
616
0012de   d004     BRA       0x12e8                                                                                          
617
0012e0   0e00     MOVLW     0x0                                                                                             
618
0012e2   1477     ANDWF     0x77,0x0,0x0                                                                                    
619
0012e4   0903     IORLW     0x3                                                                                             
620
0012e6   6e77     MOVWF     0x77,0x0                                                                                        
621
0012e8   010f     MOVLB     0xf            	if ( TXB1CONbits.TXREQ == 0 )  { ECANCON=(ECANCON&0b00000)|0b00100; }           F:\MCP\projects\CAN\canBase\Source\CAN.c
622
0012ea   b730     BTFSC     0x30,0x3,0x1                                                                                    
623
0012ec   d004     BRA       0x12f6                                                                                          
624
0012ee   0e00     MOVLW     0x0                                                                                             
625
0012f0   1477     ANDWF     0x77,0x0,0x0                                                                                    
626
0012f2   0904     IORLW     0x4                                                                                             
627
0012f4   6e77     MOVWF     0x77,0x0                                                                                        
628
0012f6   010f     MOVLB     0xf            	if ( TXB2CONbits.TXREQ == 0 )  { ECANCON=(ECANCON&0b00000)|0b00101; }           F:\MCP\projects\CAN\canBase\Source\CAN.c
629
0012f8   b720     BTFSC     0x20,0x3,0x1                                                                                    
630
0012fa   d005     BRA       0x1306                                                                                          
631
0012fc   0e00     MOVLW     0x0                                                                                             
632
0012fe   1477     ANDWF     0x77,0x0,0x0                                                                                    
633
001300   0905     IORLW     0x5                                                                                             
634
001302   6e77     MOVWF     0x77,0x0                                                                                        
85 johboh 635
                                           	// None of the transmit buffers were empty.                                     F:\MCP\projects\CAN\canBase\Source\CAN.c
86 johboh 636
001304   d002     BRA       0x130a         	else { return FALSE;}                                                           F:\MCP\projects\CAN\canBase\Source\CAN.c
637
001306   0e00     MOVLW     0x0                                                                                             
638
001308   d0b0     BRA       0x146a                                                                                          
85 johboh 639
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
86 johboh 640
00130a   0eef     MOVLW     0xef           	if (prio<0 || prio>3) prio = 0;                                                 F:\MCP\projects\CAN\canBase\Source\CAN.c
641
00130c   cfdb     MOVFF     0xfdb,0x0                                                                                       
642
00130e   f000                                                                                                               
643
001310   3400     RLCF      0x0,0x0,0x0                                                                                     
644
001312   e20e     BC        0x1330                                                                                          
645
001314   0eef     MOVLW     0xef                                                                                            
646
001316   cfdb     MOVFF     0xfdb,0x1                                                                                       
647
001318   f001                                                                                                               
648
00131a   0e03     MOVLW     0x3                                                                                             
649
00131c   6ee7     MOVWF     0xe7,0x0                                                                                        
650
00131e   1801     XORWF     0x1,0x0,0x0                                                                                     
651
001320   aee8     BTFSS     0xe8,0x7,0x0                                                                                    
652
001322   d002     BRA       0x1328                                                                                          
653
001324   3401     RLCF      0x1,0x0,0x0                                                                                     
654
001326   d003     BRA       0x132e                                                                                          
655
001328   50e7     MOVF      0xe7,0x0,0x0                                                                                    
656
00132a   80d8     BSF       0xd8,0x0,0x0                                                                                    
657
00132c   5401     SUBFWB    0x1,0x0,0x0                                                                                     
658
00132e   e202     BC        0x1334                                                                                          
659
001330   0eef     MOVLW     0xef                                                                                            
660
001332   6adb     CLRF      0xdb,0x0                                                                                        
85 johboh 661
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
662
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
86 johboh 663
                                           		//RXB0SIDH 28 27 26 25 24 23 22 21                                             F:\MCP\projects\CAN\canBase\Source\CAN.c
664
                                                   //RXB0SIDL 20 19 18 xx xx xx 17 16                                       F:\MCP\projects\CAN\canBase\Source\CAN.c
665
                                                   //RXB0EIDH 15 14 13 12 11 10 09 08                                       F:\MCP\projects\CAN\canBase\Source\CAN.c
666
                                                   //RXB0EIDL 07 06 05 04 03 02 01 00                                       F:\MCP\projects\CAN\canBase\Source\CAN.c
85 johboh 667
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
86 johboh 668
                                           		//funct xx xx xx xx 28 27 26 25                                                F:\MCP\projects\CAN\canBase\Source\CAN.c
669
                                           		//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
670
                                           		//nid   xx xx 14 13 12 11 10 09                                                F:\MCP\projects\CAN\canBase\Source\CAN.c
671
                                           		//sid   xx xx xx xx xx xx xx 08 07 06 05 04 03 02 01 00                        F:\MCP\projects\CAN\canBase\Source\CAN.c
85 johboh 672
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
86 johboh 673
001334   0ef1     MOVLW     0xf1           		RXB0SIDH = (BYTE)((cm.funct & 0x0F)<<4)+(BYTE)((cm.funcc & 0x03C0)>>6);        F:\MCP\projects\CAN\canBase\Source\CAN.c
674
001336   cfdb     MOVFF     0xfdb,0x0                                                                                       
675
001338   f000                                                                                                               
676
00133a   0ef2     MOVLW     0xf2                                                                                            
677
00133c   cfdb     MOVFF     0xfdb,0x1                                                                                       
678
00133e   f001                                                                                                               
679
001340   0ec0     MOVLW     0xc0                                                                                            
680
001342   1600     ANDWF     0x0,0x1,0x0                                                                                     
681
001344   0e03     MOVLW     0x3                                                                                             
682
001346   1601     ANDWF     0x1,0x1,0x0                                                                                     
683
001348   0e06     MOVLW     0x6                                                                                             
684
00134a   90d8     BCF       0xd8,0x0,0x0                                                                                    
685
00134c   3201     RRCF      0x1,0x1,0x0                                                                                     
686
00134e   3200     RRCF      0x0,0x1,0x0                                                                                     
687
001350   04e8     DECF      0xe8,0x0,0x0                                                                                    
688
001352   e1fb     BNZ       0x134a                                                                                          
689
001354   0ef0     MOVLW     0xf0                                                                                            
690
001356   50db     MOVF      0xdb,0x0,0x0                                                                                    
691
001358   0b0f     ANDLW     0xf                                                                                             
692
00135a   0d10     MULLW     0x10                                                                                            
693
00135c   50f3     MOVF      0xf3,0x0,0x0                                                                                    
694
00135e   2400     ADDWF     0x0,0x0,0x0                                                                                     
695
001360   6e61     MOVWF     0x61,0x0                                                                                        
696
001362   0e06     MOVLW     0x6            		RXB0SIDL = (BYTE)((cm.funcc & 0x003F)<<2)+(BYTE)((cm.funcc & 0x0006)>>1);      F:\MCP\projects\CAN\canBase\Source\CAN.c
697
001364   6ee7     MOVWF     0xe7,0x0                                                                                        
698
001366   0ef1     MOVLW     0xf1                                                                                            
699
001368   cfdb     MOVFF     0xfdb,0x2                                                                                       
700
00136a   f002                                                                                                               
701
00136c   0ef2     MOVLW     0xf2                                                                                            
702
00136e   cfdb     MOVFF     0xfdb,0x3                                                                                       
703
001370   f003                                                                                                               
704
001372   50e7     MOVF      0xe7,0x0,0x0                                                                                    
705
001374   1602     ANDWF     0x2,0x1,0x0                                                                                     
706
001376   6a03     CLRF      0x3,0x0                                                                                         
707
001378   90d8     BCF       0xd8,0x0,0x0                                                                                    
708
00137a   3203     RRCF      0x3,0x1,0x0                                                                                     
709
00137c   3202     RRCF      0x2,0x1,0x0                                                                                     
710
00137e   0e3f     MOVLW     0x3f                                                                                            
711
001380   6ee7     MOVWF     0xe7,0x0                                                                                        
712
001382   0ef1     MOVLW     0xf1                                                                                            
713
001384   cfdb     MOVFF     0xfdb,0x0                                                                                       
714
001386   f000                                                                                                               
715
001388   0ef2     MOVLW     0xf2                                                                                            
716
00138a   cfdb     MOVFF     0xfdb,0x1                                                                                       
717
00138c   f001                                                                                                               
718
00138e   50e7     MOVF      0xe7,0x0,0x0                                                                                    
719
001390   1600     ANDWF     0x0,0x1,0x0                                                                                     
720
001392   6a01     CLRF      0x1,0x0                                                                                         
721
001394   90d8     BCF       0xd8,0x0,0x0                                                                                    
722
001396   3600     RLCF      0x0,0x1,0x0                                                                                     
723
001398   3601     RLCF      0x1,0x1,0x0                                                                                     
724
00139a   90d8     BCF       0xd8,0x0,0x0                                                                                    
725
00139c   3600     RLCF      0x0,0x1,0x0                                                                                     
726
00139e   3601     RLCF      0x1,0x1,0x0                                                                                     
727
0013a0   5000     MOVF      0x0,0x0,0x0                                                                                     
728
0013a2   2402     ADDWF     0x2,0x0,0x0                                                                                     
729
0013a4   6e62     MOVWF     0x62,0x0                                                                                        
730
0013a6   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
731
0013a8   cfdb     MOVFF     0xfdb,0x2                                                                                       
732
0013aa   f002                                                                                                               
733
0013ac   0ef5     MOVLW     0xf5                                                                                            
734
0013ae   cfdb     MOVFF     0xfdb,0x3                                                                                       
735
0013b0   f003                                                                                                               
736
0013b2   0e00     MOVLW     0x0                                                                                             
737
0013b4   1602     ANDWF     0x2,0x1,0x0                                                                                     
738
0013b6   0e01     MOVLW     0x1                                                                                             
739
0013b8   1603     ANDWF     0x3,0x1,0x0                                                                                     
740
0013ba   c003     MOVFF     0x3,0x2                                                                                         
741
0013bc   f002                                                                                                               
742
0013be   6a03     CLRF      0x3,0x0                                                                                         
743
0013c0   0e01     MOVLW     0x1                                                                                             
744
0013c2   6ee7     MOVWF     0xe7,0x0                                                                                        
745
0013c4   0ef1     MOVLW     0xf1                                                                                            
746
0013c6   cfdb     MOVFF     0xfdb,0x0                                                                                       
747
0013c8   f000                                                                                                               
748
0013ca   0ef2     MOVLW     0xf2                                                                                            
749
0013cc   cfdb     MOVFF     0xfdb,0x1                                                                                       
750
0013ce   f001                                                                                                               
751
0013d0   50e7     MOVF      0xe7,0x0,0x0                                                                                    
752
0013d2   1600     ANDWF     0x0,0x1,0x0                                                                                     
753
0013d4   6a01     CLRF      0x1,0x0                                                                                         
754
0013d6   0e07     MOVLW     0x7                                                                                             
755
0013d8   90d8     BCF       0xd8,0x0,0x0                                                                                    
756
0013da   3600     RLCF      0x0,0x1,0x0                                                                                     
757
0013dc   3601     RLCF      0x1,0x1,0x0                                                                                     
758
0013de   04e8     DECF      0xe8,0x0,0x0                                                                                    
759
0013e0   e1fb     BNZ       0x13d8                                                                                          
760
0013e2   0ef3     MOVLW     0xf3                                                                                            
761
0013e4   50db     MOVF      0xdb,0x0,0x0                                                                                    
762
0013e6   0b3f     ANDLW     0x3f                                                                                            
763
0013e8   24e8     ADDWF     0xe8,0x0,0x0                                                                                    
764
0013ea   2400     ADDWF     0x0,0x0,0x0                                                                                     
765
0013ec   2402     ADDWF     0x2,0x0,0x0                                                                                     
766
0013ee   6e63     MOVWF     0x63,0x0                                                                                        
767
0013f0   0eff     MOVLW     0xff           		RXB0EIDL = (BYTE)((cm.sid & 0x00FF));                                          F:\MCP\projects\CAN\canBase\Source\CAN.c
768
0013f2   6ee7     MOVWF     0xe7,0x0                                                                                        
769
0013f4   0ef4     MOVLW     0xf4                                                                                            
85 johboh 770
0013f6   cfdb     MOVFF     0xfdb,0x0                                                                                       
771
0013f8   f000                                                                                                               
86 johboh 772
0013fa   0ef5     MOVLW     0xf5                                                                                            
85 johboh 773
0013fc   cfdb     MOVFF     0xfdb,0x1                                                                                       
774
0013fe   f001                                                                                                               
86 johboh 775
001400   50e7     MOVF      0xe7,0x0,0x0                                                                                    
776
001402   1600     ANDWF     0x0,0x1,0x0                                                                                     
777
001404   6a01     CLRF      0x1,0x0                                                                                         
778
001406   5000     MOVF      0x0,0x0,0x0                                                                                     
779
001408   6e64     MOVWF     0x64,0x0                                                                                        
85 johboh 780
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
86 johboh 781
                                           		// Data length                                                                 F:\MCP\projects\CAN\canBase\Source\CAN.c
782
00140a   6a65     CLRF      0x65,0x0       		RXB0DLC = 0;                                                                   F:\MCP\projects\CAN\canBase\Source\CAN.c
783
00140c   0ef6     MOVLW     0xf6           		if (cm.data_length>8) RXB0DLC=8; else RXB0DLC=cm.data_length;                  F:\MCP\projects\CAN\canBase\Source\CAN.c
784
00140e   50db     MOVF      0xdb,0x0,0x0                                                                                    
785
001410   0808     SUBLW     0x8                                                                                             
786
001412   e203     BC        0x141a                                                                                          
787
001414   0e08     MOVLW     0x8                                                                                             
788
001416   6e65     MOVWF     0x65,0x0                                                                                        
789
001418   d003     BRA       0x1420                                                                                          
790
00141a   0ef6     MOVLW     0xf6                                                                                            
791
00141c   50db     MOVF      0xdb,0x0,0x0                                                                                    
792
00141e   6e65     MOVWF     0x65,0x0                                                                                        
85 johboh 793
                                           		                                                                               F:\MCP\projects\CAN\canBase\Source\CAN.c
794
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
86 johboh 795
                                           		// NOT Remote request                                                          F:\MCP\projects\CAN\canBase\Source\CAN.c
796
                                           		_asm                                                                           F:\MCP\projects\CAN\canBase\Source\CAN.c
797
001420   9c65     BCF       0x65,0x6,0x0   			bcf RXB0DLC, 6, 0                                                             F:\MCP\projects\CAN\canBase\Source\CAN.c
798
                                           		_endasm                                                                        F:\MCP\projects\CAN\canBase\Source\CAN.c
85 johboh 799
                                           		                                                                               F:\MCP\projects\CAN\canBase\Source\CAN.c
800
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
801
                                           		// Data one bye one, for speed                                                 F:\MCP\projects\CAN\canBase\Source\CAN.c
86 johboh 802
001422   0ef7     MOVLW     0xf7           		RXB0D0=cm.data[0];	RXB0D1=cm.data[1];                                          F:\MCP\projects\CAN\canBase\Source\CAN.c
803
001424   50db     MOVF      0xdb,0x0,0x0                                                                                    
804
001426   6e66     MOVWF     0x66,0x0                                                                                        
805
001428   0ef8     MOVLW     0xf8                                                                                            
806
00142a   50db     MOVF      0xdb,0x0,0x0                                                                                    
807
00142c   6e67     MOVWF     0x67,0x0                                                                                        
808
00142e   0ef9     MOVLW     0xf9           		RXB0D2=cm.data[2]; 	RXB0D3=cm.data[3];                                         F:\MCP\projects\CAN\canBase\Source\CAN.c
809
001430   50db     MOVF      0xdb,0x0,0x0                                                                                    
810
001432   6e68     MOVWF     0x68,0x0                                                                                        
811
001434   0efa     MOVLW     0xfa                                                                                            
812
001436   50db     MOVF      0xdb,0x0,0x0                                                                                    
813
001438   6e69     MOVWF     0x69,0x0                                                                                        
814
00143a   0efb     MOVLW     0xfb           		RXB0D4=cm.data[4]; 	RXB0D5=cm.data[5];                                         F:\MCP\projects\CAN\canBase\Source\CAN.c
815
00143c   50db     MOVF      0xdb,0x0,0x0                                                                                    
816
00143e   6e6a     MOVWF     0x6a,0x0                                                                                        
817
001440   0efc     MOVLW     0xfc                                                                                            
818
001442   50db     MOVF      0xdb,0x0,0x0                                                                                    
819
001444   6e6b     MOVWF     0x6b,0x0                                                                                        
820
001446   0efd     MOVLW     0xfd           		RXB0D6=cm.data[6]; 	RXB0D7=cm.data[7];                                         F:\MCP\projects\CAN\canBase\Source\CAN.c
821
001448   50db     MOVF      0xdb,0x0,0x0                                                                                    
822
00144a   6e6c     MOVWF     0x6c,0x0                                                                                        
823
00144c   0efe     MOVLW     0xfe                                                                                            
824
00144e   50db     MOVF      0xdb,0x0,0x0                                                                                    
825
001450   6e6d     MOVWF     0x6d,0x0                                                                                        
85 johboh 826
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
86 johboh 827
                                           		// set extended                                                                F:\MCP\projects\CAN\canBase\Source\CAN.c
828
001452   8662     BSF       0x62,0x3,0x0   		RXB0SIDLbits.EXID=1;                                                           F:\MCP\projects\CAN\canBase\Source\CAN.c
85 johboh 829
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
830
                                           		// Priority                                                                    F:\MCP\projects\CAN\canBase\Source\CAN.c
86 johboh 831
001454   0eef     MOVLW     0xef           		RXB0CON = (RXB0CON & 0b11111100) | prio;                                       F:\MCP\projects\CAN\canBase\Source\CAN.c
832
001456   cfdb     MOVFF     0xfdb,0xfe6                                                                                     
833
001458   ffe6                                                                                                               
834
00145a   0efc     MOVLW     0xfc                                                                                            
835
00145c   1460     ANDWF     0x60,0x0,0x0                                                                                    
836
00145e   52e5     MOVF      0xe5,0x1,0x0                                                                                    
837
001460   10e7     IORWF     0xe7,0x0,0x0                                                                                    
838
001462   6e60     MOVWF     0x60,0x0                                                                                        
85 johboh 839
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
840
                                           		// mark as redy to transmit                                                    F:\MCP\projects\CAN\canBase\Source\CAN.c
841
                                           		_asm                                                                           F:\MCP\projects\CAN\canBase\Source\CAN.c
86 johboh 842
001464   8660     BSF       0x60,0x3,0x0   			bsf RXB0CON, 3, 0                                                             F:\MCP\projects\CAN\canBase\Source\CAN.c
85 johboh 843
                                           		_endasm                                                                        F:\MCP\projects\CAN\canBase\Source\CAN.c
844
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
86 johboh 845
001466   0e01     MOVLW     0x1            		return TRUE;                                                                   F:\MCP\projects\CAN\canBase\Source\CAN.c
846
001468   d000     BRA       0x146a                                                                                          
85 johboh 847
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
86 johboh 848
00146a   52e5     MOVF      0xe5,0x1,0x0   }                                                                                F:\MCP\projects\CAN\canBase\Source\CAN.c
849
00146c   cfe7     MOVFF     0xfe7,0xfd9                                                                                     
850
00146e   ffd9                                                                                                               
851
001470   0012     RETURN    0x0                                                                                             
85 johboh 852
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
853
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
854
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
855
                                           #endif //USE_CAN                                                                 F:\MCP\projects\CAN\canBase\Source\CAN.c
856
                                           /*********************************************************************           F:\MCP\projects\CAN\canBase\Source\Main.c
857
                                            *                                                                               F:\MCP\projects\CAN\canBase\Source\Main.c
858
                                            *                  Main application                                             F:\MCP\projects\CAN\canBase\Source\Main.c
859
                                            *                                                                               F:\MCP\projects\CAN\canBase\Source\Main.c
860
                                            *********************************************************************           F:\MCP\projects\CAN\canBase\Source\Main.c
86 johboh 861
                                            * FileName:        $HeadURL$                                                    F:\MCP\projects\CAN\canBase\Source\Main.c
862
                                            * Last changed:	$LastChangedDate$                                               F:\MCP\projects\CAN\canBase\Source\Main.c
863
                                            * By:				$LastChangedBy$                                                        F:\MCP\projects\CAN\canBase\Source\Main.c
864
                                            * Revision:		$Revision$                                                         F:\MCP\projects\CAN\canBase\Source\Main.c
85 johboh 865
                                            ********************************************************************/           F:\MCP\projects\CAN\canBase\Source\Main.c
866
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Main.c
867
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Main.c
868
                                           #include <compiler.h>                                                            F:\MCP\projects\CAN\canBase\Source\Main.c
869
                                           #include <stackTasks.h>                                                          F:\MCP\projects\CAN\canBase\Source\Main.c
870
                                           #include <Tick.h>                                                                F:\MCP\projects\CAN\canBase\Source\Main.c
871
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Main.c
872
                                           #ifdef USE_CAN                                                                   F:\MCP\projects\CAN\canBase\Source\Main.c
873
                                           	#include <CAN.h>                                                                F:\MCP\projects\CAN\canBase\Source\Main.c
874
                                           #endif                                                                           F:\MCP\projects\CAN\canBase\Source\Main.c
875
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Main.c
876
                                           static void mainInit(void);                                                      F:\MCP\projects\CAN\canBase\Source\Main.c
877
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Main.c
878
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Main.c
86 johboh 879
                                           void main()                                                                      F:\MCP\projects\CAN\canBase\Source\Main.c
85 johboh 880
                                           {                                                                                F:\MCP\projects\CAN\canBase\Source\Main.c
881
                                           	static TICK t = 0;                                                              F:\MCP\projects\CAN\canBase\Source\Main.c
882
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Main.c
883
                                           	// Inits                                                                        F:\MCP\projects\CAN\canBase\Source\Main.c
884
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Main.c
86 johboh 885
001472   d876     RCALL     0x1560         	mainInit();                                                                     F:\MCP\projects\CAN\canBase\Source\Main.c
85 johboh 886
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Main.c
887
                                           	#ifdef USE_CAN                                                                  F:\MCP\projects\CAN\canBase\Source\Main.c
86 johboh 888
001474   ec22     CALL      0x1044,0x0     		canInit();                                                                     F:\MCP\projects\CAN\canBase\Source\Main.c
889
001476   f008                                                                                                               
85 johboh 890
                                           	#endif                                                                          F:\MCP\projects\CAN\canBase\Source\Main.c
891
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Main.c
86 johboh 892
001478   ec1e     CALL      0x163c,0x0     	tickInit();                                                                     F:\MCP\projects\CAN\canBase\Source\Main.c
893
00147a   f00b                                                                                                               
85 johboh 894
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Main.c
86 johboh 895
0014b0   d7e5     BRA       0x147c         	while(1)                                                                        F:\MCP\projects\CAN\canBase\Source\Main.c
85 johboh 896
                                           	{                                                                               F:\MCP\projects\CAN\canBase\Source\Main.c
86 johboh 897
                                           		static TICK t = 0;                                                             F:\MCP\projects\CAN\canBase\Source\Main.c
898
00147c   ec28     CALL      0x1650,0x0     		if ((tickGet()-t)>TICK_SECOND/2)                                               F:\MCP\projects\CAN\canBase\Source\Main.c
899
00147e   f00b                                                                                                               
900
001480   0100     MOVLB     0x0                                                                                             
901
001482   516e     MOVF      0x6e,0x0,0x1                                                                                    
902
001484   5c12     SUBWF     0x12,0x0,0x0                                                                                    
903
001486   6e00     MOVWF     0x0,0x0                                                                                         
904
001488   516f     MOVF      0x6f,0x0,0x1                                                                                    
905
00148a   5813     SUBWFB    0x13,0x0,0x0                                                                                    
906
00148c   6e01     MOVWF     0x1,0x0                                                                                         
907
00148e   5170     MOVF      0x70,0x0,0x1                                                                                    
908
001490   5814     SUBWFB    0x14,0x0,0x0                                                                                    
909
001492   6e02     MOVWF     0x2,0x0                                                                                         
910
001494   5171     MOVF      0x71,0x0,0x1                                                                                    
911
001496   5815     SUBWFB    0x15,0x0,0x0                                                                                    
912
001498   6e03     MOVWF     0x3,0x0                                                                                         
913
00149a   80d8     BSF       0xd8,0x0,0x0                                                                                    
914
00149c   0e32     MOVLW     0x32                                                                                            
915
00149e   5400     SUBFWB    0x0,0x0,0x0                                                                                     
916
0014a0   0e00     MOVLW     0x0                                                                                             
917
0014a2   5401     SUBFWB    0x1,0x0,0x0                                                                                     
918
0014a4   0e00     MOVLW     0x0                                                                                             
919
0014a6   5402     SUBFWB    0x2,0x0,0x0                                                                                     
920
0014a8   0e00     MOVLW     0x0                                                                                             
921
0014aa   5403     SUBFWB    0x3,0x0,0x0                                                                                     
922
0014ac   e201     BC        0x14b0                                                                                          
85 johboh 923
                                           		{                                                                              F:\MCP\projects\CAN\canBase\Source\Main.c
86 johboh 924
0014ae   7282     BTG       0x82,0x1,0x0   			LED0_IO=~LED0_IO;                                                             F:\MCP\projects\CAN\canBase\Source\Main.c
85 johboh 925
                                           		}                                                                              F:\MCP\projects\CAN\canBase\Source\Main.c
926
                                           	}                                                                               F:\MCP\projects\CAN\canBase\Source\Main.c
86 johboh 927
0014b2   0012     RETURN    0x0            }                                                                                F:\MCP\projects\CAN\canBase\Source\Main.c
85 johboh 928
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Main.c
929
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Main.c
930
                                           #pragma interrupt high_isr                                                       F:\MCP\projects\CAN\canBase\Source\Main.c
86 johboh 931
0014b4   cfda     MOVFF     0xfda,0xfe4    void high_isr(void)                                                              F:\MCP\projects\CAN\canBase\Source\Main.c
932
0014b6   ffe4                                                                                                               
933
0014b8   cfe2     MOVFF     0xfe2,0xfda                                                                                     
934
0014ba   ffda                                                                                                               
935
0014bc   cfe9     MOVFF     0xfe9,0xfe4                                                                                     
936
0014be   ffe4                                                                                                               
937
0014c0   cfea     MOVFF     0xfea,0xfe4                                                                                     
938
0014c2   ffe4                                                                                                               
939
0014c4   cff6     MOVFF     0xff6,0xfe4                                                                                     
940
0014c6   ffe4                                                                                                               
941
0014c8   cff7     MOVFF     0xff7,0xfe4                                                                                     
942
0014ca   ffe4                                                                                                               
943
0014cc   cff5     MOVFF     0xff5,0xfe4                                                                                     
944
0014ce   ffe4                                                                                                               
945
0014d0   cff3     MOVFF     0xff3,0xfe4                                                                                     
946
0014d2   ffe4                                                                                                               
947
0014d4   cff4     MOVFF     0xff4,0xfe4                                                                                     
948
0014d6   ffe4                                                                                                               
949
0014d8   cffa     MOVFF     0xffa,0xfe4                                                                                     
950
0014da   ffe4                                                                                                               
951
0014dc   ee00     LFSR      0x0,0xe                                                                                         
952
0014de   f00e                                                                                                               
953
0014e0   0e0b     MOVLW     0xb                                                                                             
954
0014e2   04e8     DECF      0xe8,0x0,0x0                                                                                    
955
0014e4   e303     BNC       0x14ec                                                                                          
956
0014e6   cfee     MOVFF     0xfee,0xfe4                                                                                     
957
0014e8   ffe4                                                                                                               
958
0014ea   d7fb     BRA       0x14e2                                                                                          
959
0014ec   ee00     LFSR      0x0,0x0                                                                                         
960
0014ee   f000                                                                                                               
961
0014f0   0e0e     MOVLW     0xe                                                                                             
962
0014f2   04e8     DECF      0xe8,0x0,0x0                                                                                    
963
0014f4   e303     BNC       0x14fc                                                                                          
964
0014f6   cfee     MOVFF     0xfee,0xfe4                                                                                     
965
0014f8   ffe4                                                                                                               
966
0014fa   d7fb     BRA       0x14f2                                                                                          
967
0014fc   52e6     MOVF      0xe6,0x1,0x0                                                                                    
85 johboh 968
                                           {                                                                                F:\MCP\projects\CAN\canBase\Source\Main.c
969
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Main.c
970
                                           	#ifdef USE_CAN                                                                  F:\MCP\projects\CAN\canBase\Source\Main.c
86 johboh 971
0014fe   ec4d     CALL      0x109a,0x0     		canISR();                                                                      F:\MCP\projects\CAN\canBase\Source\Main.c
972
001500   f008                                                                                                               
85 johboh 973
                                           	#endif                                                                          F:\MCP\projects\CAN\canBase\Source\Main.c
974
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Main.c
86 johboh 975
001502   ec32     CALL      0x1664,0x0     	tickUpdate();                                                                   F:\MCP\projects\CAN\canBase\Source\Main.c
976
001504   f00b                                                                                                               
977
001506   52e5     MOVF      0xe5,0x1,0x0   }                                                                                F:\MCP\projects\CAN\canBase\Source\Main.c
978
001508   ee00     LFSR      0x0,0xd                                                                                         
979
00150a   f00d                                                                                                               
980
00150c   0e0e     MOVLW     0xe                                                                                             
981
00150e   04e8     DECF      0xe8,0x0,0x0                                                                                    
982
001510   e303     BNC       0x1518                                                                                          
983
001512   cfe5     MOVFF     0xfe5,0xfed                                                                                     
984
001514   ffed                                                                                                               
985
001516   d7fb     BRA       0x150e                                                                                          
986
001518   ee00     LFSR      0x0,0x18                                                                                        
987
00151a   f018                                                                                                               
988
00151c   0e0b     MOVLW     0xb                                                                                             
989
00151e   04e8     DECF      0xe8,0x0,0x0                                                                                    
990
001520   e303     BNC       0x1528                                                                                          
991
001522   cfe5     MOVFF     0xfe5,0xfed                                                                                     
992
001524   ffed                                                                                                               
993
001526   d7fb     BRA       0x151e                                                                                          
994
001528   cfe5     MOVFF     0xfe5,0xffa                                                                                     
995
00152a   fffa                                                                                                               
996
00152c   cfe5     MOVFF     0xfe5,0xff4                                                                                     
997
00152e   fff4                                                                                                               
998
001530   cfe5     MOVFF     0xfe5,0xff3                                                                                     
999
001532   fff3                                                                                                               
1000
001534   cfe5     MOVFF     0xfe5,0xff5                                                                                     
1001
001536   fff5                                                                                                               
1002
001538   cfe5     MOVFF     0xfe5,0xff7                                                                                     
1003
00153a   fff7                                                                                                               
1004
00153c   cfe5     MOVFF     0xfe5,0xff6                                                                                     
1005
00153e   fff6                                                                                                               
1006
001540   cfe5     MOVFF     0xfe5,0xfea                                                                                     
1007
001542   ffea                                                                                                               
1008
001544   cfe5     MOVFF     0xfe5,0xfe9                                                                                     
1009
001546   ffe9                                                                                                               
1010
001548   cfe5     MOVFF     0xfe5,0xfda                                                                                     
1011
00154a   ffda                                                                                                               
1012
00154c   0011     RETFIE    0x1                                                                                             
85 johboh 1013
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Main.c
1014
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Main.c
1015
                                           #pragma interrupt low_isr                                                        F:\MCP\projects\CAN\canBase\Source\Main.c
86 johboh 1016
00154e   cfda     MOVFF     0xfda,0xfe4    void low_isr(void)                                                               F:\MCP\projects\CAN\canBase\Source\Main.c
1017
001550   ffe4                                                                                                               
1018
001552   cfe2     MOVFF     0xfe2,0xfda                                                                                     
1019
001554   ffda                                                                                                               
1020
001556   52e6     MOVF      0xe6,0x1,0x0                                                                                    
85 johboh 1021
                                           {                                                                                F:\MCP\projects\CAN\canBase\Source\Main.c
1022
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Main.c
86 johboh 1023
001558   52e5     MOVF      0xe5,0x1,0x0   }                                                                                F:\MCP\projects\CAN\canBase\Source\Main.c
1024
00155a   cfe5     MOVFF     0xfe5,0xfda                                                                                     
1025
00155c   ffda                                                                                                               
1026
00155e   0011     RETFIE    0x1                                                                                             
85 johboh 1027
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Main.c
1028
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Main.c
1029
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Main.c
1030
                                           /*                                                                               F:\MCP\projects\CAN\canBase\Source\Main.c
1031
                                           *	Function: mainInit                                                             F:\MCP\projects\CAN\canBase\Source\Main.c
1032
                                           *                                                                                F:\MCP\projects\CAN\canBase\Source\Main.c
1033
                                           *	Input:	none                                                                    F:\MCP\projects\CAN\canBase\Source\Main.c
1034
                                           *	Output: none                                                                   F:\MCP\projects\CAN\canBase\Source\Main.c
1035
                                           *	Pre-conditions: none                                                           F:\MCP\projects\CAN\canBase\Source\Main.c
1036
                                           *	Affects: Se code                                                               F:\MCP\projects\CAN\canBase\Source\Main.c
1037
                                           *	Depends: none.                                                                 F:\MCP\projects\CAN\canBase\Source\Main.c
1038
                                           */                                                                               F:\MCP\projects\CAN\canBase\Source\Main.c
1039
                                           void mainInit()                                                                  F:\MCP\projects\CAN\canBase\Source\Main.c
1040
                                           {                                                                                F:\MCP\projects\CAN\canBase\Source\Main.c
86 johboh 1041
001560   9294     BCF       0x94,0x1,0x0   	LED0_TRIS=0;	                                                                   F:\MCP\projects\CAN\canBase\Source\Main.c
85 johboh 1042
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Main.c
1043
                                           	// Enable Interrupts                                                            F:\MCP\projects\CAN\canBase\Source\Main.c
86 johboh 1044
001562   8ef2     BSF       0xf2,0x7,0x0       INTCONbits.GIEH = 1;                                                         F:\MCP\projects\CAN\canBase\Source\Main.c
1045
001564   8cf2     BSF       0xf2,0x6,0x0       INTCONbits.GIEL = 1;                                                         F:\MCP\projects\CAN\canBase\Source\Main.c
85 johboh 1046
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Main.c
1047
                                           	// Enable interrupt prirority                                                   F:\MCP\projects\CAN\canBase\Source\Main.c
86 johboh 1048
001566   8ed0     BSF       0xd0,0x7,0x0   	RCONbits.IPEN=1;                                                                F:\MCP\projects\CAN\canBase\Source\Main.c
85 johboh 1049
                                           	                                                                                F:\MCP\projects\CAN\canBase\Source\Main.c
1050
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Main.c
86 johboh 1051
001568   0012     RETURN    0x0            }                                                                                F:\MCP\projects\CAN\canBase\Source\Main.c
85 johboh 1052
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Main.c
1053
                                           /*                                                                               F:\MCP\projects\CAN\canBase\Source\Main.c
1054
                                           *	Function: canParse                                                             F:\MCP\projects\CAN\canBase\Source\Main.c
1055
                                           *                                                                                F:\MCP\projects\CAN\canBase\Source\Main.c
1056
                                           *	Input:	Received can message                                                    F:\MCP\projects\CAN\canBase\Source\Main.c
1057
                                           *	Output: none                                                                   F:\MCP\projects\CAN\canBase\Source\Main.c
1058
                                           *	Pre-conditions: canInit and received packet.                                   F:\MCP\projects\CAN\canBase\Source\Main.c
1059
                                           *	Affects: Sensors/actuators/etc. See code.                                      F:\MCP\projects\CAN\canBase\Source\Main.c
1060
                                           *	Depends: none.                                                                 F:\MCP\projects\CAN\canBase\Source\Main.c
1061
                                           */                                                                               F:\MCP\projects\CAN\canBase\Source\Main.c
1062
                                           #ifdef USE_CAN                                                                   F:\MCP\projects\CAN\canBase\Source\Main.c
86 johboh 1063
00156a   cfd9     MOVFF     0xfd9,0xfe6    void canParse(CAN_MESSAGE cm)                                                    F:\MCP\projects\CAN\canBase\Source\Main.c
1064
00156c   ffe6                                                                                                               
1065
00156e   cfe1     MOVFF     0xfe1,0xfd9                                                                                     
1066
001570   ffd9                                                                                                               
85 johboh 1067
                                           {                                                                                F:\MCP\projects\CAN\canBase\Source\Main.c
86 johboh 1068
001572   0ef0     MOVLW     0xf0           	switch(cm.funct)                                                                F:\MCP\projects\CAN\canBase\Source\Main.c
1069
001574   50db     MOVF      0xdb,0x0,0x0                                                                                    
1070
001576   e001     BZ        0x157a                                                                                          
1071
001578   d00e     BRA       0x1596                                                                                          
1072
                                           	{                                                                               F:\MCP\projects\CAN\canBase\Source\Main.c
1073
                                           		case FUNCT_BOOTLOADER:                                                         F:\MCP\projects\CAN\canBase\Source\Main.c
1074
00157a   50d9     MOVF      0xd9,0x0,0x0   			if (cm.funcc==FUNCC_BOOT_INIT) { _asm goto 0x0 _endasm }                      F:\MCP\projects\CAN\canBase\Source\Main.c
1075
00157c   0ff1     ADDLW     0xf1                                                                                            
1076
00157e   6ee9     MOVWF     0xe9,0x0                                                                                        
1077
001580   0eff     MOVLW     0xff                                                                                            
1078
001582   20da     ADDWFC    0xda,0x0,0x0                                                                                    
1079
001584   6eea     MOVWF     0xea,0x0                                                                                        
1080
001586   0e01     MOVLW     0x1                                                                                             
1081
001588   18ee     XORWF     0xee,0x0,0x0                                                                                    
1082
00158a   e101     BNZ       0x158e                                                                                          
1083
00158c   50ed     MOVF      0xed,0x0,0x0                                                                                    
1084
00158e   e102     BNZ       0x1594                                                                                          
1085
001590   ef00     GOTO      0x0                                                                                             
1086
001592   f000                                                                                                               
1087
001594   d000     BRA       0x1596         		break;                                                                         F:\MCP\projects\CAN\canBase\Source\Main.c
1088
                                           	}                                                                               F:\MCP\projects\CAN\canBase\Source\Main.c
1089
001596   52e5     MOVF      0xe5,0x1,0x0   }                                                                                F:\MCP\projects\CAN\canBase\Source\Main.c
1090
001598   cfe7     MOVFF     0xfe7,0xfd9                                                                                     
1091
00159a   ffd9                                                                                                               
1092
00159c   0012     RETURN    0x0                                                                                             
1093
                                           #endif                                                                           F:\MCP\projects\CAN\canBase\Source\Main.c
85 johboh 1094
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Main.c
1095
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Main.c
86 johboh 1096
                                           // Below are mandantory when using bootloader                                    F:\MCP\projects\CAN\canBase\Source\Main.c
1097
                                           // define DEBUG_MODE to use without bootloader.                                  F:\MCP\projects\CAN\canBase\Source\Main.c
85 johboh 1098
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Main.c
1099
                                           #ifndef DEBUG_MODE                                                               F:\MCP\projects\CAN\canBase\Source\Main.c
1100
                                           extern void _startup (void);                                                     F:\MCP\projects\CAN\canBase\Source\Main.c
1101
                                           #pragma code _RESET_INTERRUPT_VECTOR = 0x001000                                  F:\MCP\projects\CAN\canBase\Source\Main.c
1102
                                           void _reset (void)                                                               F:\MCP\projects\CAN\canBase\Source\Main.c
1103
                                           {                                                                                F:\MCP\projects\CAN\canBase\Source\Main.c
86 johboh 1104
001000   ef40     GOTO      0x1680             _asm goto _startup _endasm                                                   F:\MCP\projects\CAN\canBase\Source\Main.c
1105
001002   f00b                                                                                                               
85 johboh 1106
001004   0012     RETURN    0x0            }                                                                                F:\MCP\projects\CAN\canBase\Source\Main.c
1107
                                           #pragma code                                                                     F:\MCP\projects\CAN\canBase\Source\Main.c
1108
                                           #endif                                                                           F:\MCP\projects\CAN\canBase\Source\Main.c
1109
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Main.c
1110
                                           #pragma code _HIGH_INTERRUPT_VECTOR = 0x001008                                   F:\MCP\projects\CAN\canBase\Source\Main.c
1111
                                           void _high_ISR (void)                                                            F:\MCP\projects\CAN\canBase\Source\Main.c
1112
                                           {                                                                                F:\MCP\projects\CAN\canBase\Source\Main.c
86 johboh 1113
001008   ef5a     GOTO      0x14b4         	_asm GOTO high_isr _endasm                                                      F:\MCP\projects\CAN\canBase\Source\Main.c
1114
00100a   f00a                                                                                                               
85 johboh 1115
00100c   0012     RETURN    0x0            }                                                                                F:\MCP\projects\CAN\canBase\Source\Main.c
1116
                                           #pragma code                                                                     F:\MCP\projects\CAN\canBase\Source\Main.c
1117
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Main.c
1118
                                           #pragma code _LOW_INTERRUPT_VECTOR = 0x001018                                    F:\MCP\projects\CAN\canBase\Source\Main.c
1119
                                           void _low_ISR (void)                                                             F:\MCP\projects\CAN\canBase\Source\Main.c
1120
                                           {                                                                                F:\MCP\projects\CAN\canBase\Source\Main.c
86 johboh 1121
001018   efa7     GOTO      0x154e             _asm GOTO low_isr _endasm                                                    F:\MCP\projects\CAN\canBase\Source\Main.c
1122
00101a   f00a                                                                                                               
85 johboh 1123
00101c   0012     RETURN    0x0            }                                                                                F:\MCP\projects\CAN\canBase\Source\Main.c
1124
                                           #pragma code                                                                     F:\MCP\projects\CAN\canBase\Source\Main.c