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.
90 johboh 3
Listing File Generated: Tue Nov 14 12:47:51 2006
85 johboh 4
 
5
 
6
Address  Value    Disassembly              Source                                                                           File
7
-------  -------  -----------------------  -------------------------------------------------------------------------------  -----
8
                                           /*********************************************************************           F:\MCP\projects\CAN\canBase\Source\Tick.c
9
                                            *                                                                               F:\MCP\projects\CAN\canBase\Source\Tick.c
86 johboh 10
                                            *                  Ticker module service                                        F:\MCP\projects\CAN\canBase\Source\Tick.c
85 johboh 11
                                            *                                                                               F:\MCP\projects\CAN\canBase\Source\Tick.c
12
                                            *********************************************************************           F:\MCP\projects\CAN\canBase\Source\Tick.c
87 johboh 13
                                            * FileName:        $HeadURL: http://svn.arune.se/svn/HomeAutomation/trunk/EmbeddedSoftware/PIC/canBase/Source/Tick.c $ F:\MCP\projects\CAN\canBase\Source\Tick.c
14
                                            * Last changed:	$LastChangedDate: 2006-11-14 10:55:38 +0100 (ti, 14 nov 2006) $ F:\MCP\projects\CAN\canBase\Source\Tick.c
15
                                            * By:				$LastChangedBy: johboh $                                               F:\MCP\projects\CAN\canBase\Source\Tick.c
16
                                            * Revision:		$Revision: 86 $                                                    F:\MCP\projects\CAN\canBase\Source\Tick.c
85 johboh 17
                                            ********************************************************************/           F:\MCP\projects\CAN\canBase\Source\Tick.c
18
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Tick.c
19
                                           #define TICK_INCLUDE                                                             F:\MCP\projects\CAN\canBase\Source\Tick.c
20
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Tick.c
21
                                           #include <Tick.h>                                                                F:\MCP\projects\CAN\canBase\Source\Tick.c
22
                                           #include <Compiler.h>                                                            F:\MCP\projects\CAN\canBase\Source\Tick.c
23
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Tick.c
24
                                           #define TICK_TEMP_VALUE_1 ((INSTR_FREQ) / (TICKS_PER_SECOND * TICK_PRESCALE_VALUE)) F:\MCP\projects\CAN\canBase\Source\Tick.c
25
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Tick.c
26
                                           #if TICK_TEMP_VALUE_1 > 60000                                                    F:\MCP\projects\CAN\canBase\Source\Tick.c
27
                                           #error TICK_PER_SECOND value cannot be programmed with current CLOCK_FREQ        F:\MCP\projects\CAN\canBase\Source\Tick.c
28
                                           #error Either lower TICK_PER_SECOND or manually configure the Timer              F:\MCP\projects\CAN\canBase\Source\Tick.c
29
                                           #endif                                                                           F:\MCP\projects\CAN\canBase\Source\Tick.c
30
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Tick.c
31
                                           #define TICK_TEMP_VALUE         (65535 - TICK_TEMP_VALUE_1)                      F:\MCP\projects\CAN\canBase\Source\Tick.c
32
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Tick.c
33
                                           #define TICK_COUNTER_HIGH       ((TICK_TEMP_VALUE >> 8) & 0xff)                  F:\MCP\projects\CAN\canBase\Source\Tick.c
34
                                           #define TICK_COUNTER_LOW        (TICK_TEMP_VALUE & 0xff)                         F:\MCP\projects\CAN\canBase\Source\Tick.c
35
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Tick.c
36
                                           #if (TICK_PRESCALE_VALUE == 2)                                                   F:\MCP\projects\CAN\canBase\Source\Tick.c
37
                                               #define TIMER_PRESCALE  (0)                                                  F:\MCP\projects\CAN\canBase\Source\Tick.c
38
                                           #elif ( TICK_PRESCALE_VALUE == 4 )                                               F:\MCP\projects\CAN\canBase\Source\Tick.c
39
                                               #define TIMER_PRESCALE  (1)                                                  F:\MCP\projects\CAN\canBase\Source\Tick.c
40
                                           #elif ( TICK_PRESCALE_VALUE == 8 )                                               F:\MCP\projects\CAN\canBase\Source\Tick.c
41
                                               #define TIMER_PRESCALE  (2)                                                  F:\MCP\projects\CAN\canBase\Source\Tick.c
42
                                           #elif ( TICK_PRESCALE_VALUE == 16 )                                              F:\MCP\projects\CAN\canBase\Source\Tick.c
43
                                               #define TIMER_PRESCALE  (3)                                                  F:\MCP\projects\CAN\canBase\Source\Tick.c
44
                                           #elif ( TICK_PRESCALE_VALUE == 32 )                                              F:\MCP\projects\CAN\canBase\Source\Tick.c
45
                                               #define TIMER_PRESCALE  (4)                                                  F:\MCP\projects\CAN\canBase\Source\Tick.c
46
                                           #elif ( TICK_PRESCALE_VALUE == 64 )                                              F:\MCP\projects\CAN\canBase\Source\Tick.c
47
                                               #define TIMER_PRESCALE  (5)                                                  F:\MCP\projects\CAN\canBase\Source\Tick.c
48
                                           #elif ( TICK_PRESCALE_VALUE == 128 )                                             F:\MCP\projects\CAN\canBase\Source\Tick.c
49
                                               #define TIMER_PRESCALE  (6)                                                  F:\MCP\projects\CAN\canBase\Source\Tick.c
50
                                           #elif ( TICK_PRESCALE_VALUE == 256 )                                             F:\MCP\projects\CAN\canBase\Source\Tick.c
51
                                               #define TIMER_PRESCALE  (7)                                                  F:\MCP\projects\CAN\canBase\Source\Tick.c
52
                                           #else                                                                            F:\MCP\projects\CAN\canBase\Source\Tick.c
53
                                               #error Invalid TICK_PRESCALE_VALUE specified.                                F:\MCP\projects\CAN\canBase\Source\Tick.c
54
                                           #endif                                                                           F:\MCP\projects\CAN\canBase\Source\Tick.c
55
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Tick.c
56
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Tick.c
57
                                           TICK TickCount = 0;	// 10ms/unit                                                 F:\MCP\projects\CAN\canBase\Source\Tick.c
58
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Tick.c
59
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Tick.c
60
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Tick.c
61
                                           /*                                                                               F:\MCP\projects\CAN\canBase\Source\Tick.c
62
                                           *	Function: TickInit                                                             F:\MCP\projects\CAN\canBase\Source\Tick.c
63
                                           *                                                                                F:\MCP\projects\CAN\canBase\Source\Tick.c
64
                                           *	Input:	none                                                                    F:\MCP\projects\CAN\canBase\Source\Tick.c
65
                                           *	Output: Tick manager is initialized.                                           F:\MCP\projects\CAN\canBase\Source\Tick.c
66
                                           *	Pre-conditions: TickInit                                                       F:\MCP\projects\CAN\canBase\Source\Tick.c
67
                                           *	Affects: none                                                                  F:\MCP\projects\CAN\canBase\Source\Tick.c
68
                                           *	Depends: none                                                                  F:\MCP\projects\CAN\canBase\Source\Tick.c
69
                                           */                                                                               F:\MCP\projects\CAN\canBase\Source\Tick.c
70
                                           #define PERIOD (INSTR_FREQ/256/1000)*TICK_PERIOD_MS                              F:\MCP\projects\CAN\canBase\Source\Tick.c
71
                                           void tickInit(void)                                                              F:\MCP\projects\CAN\canBase\Source\Tick.c
72
                                           {                                                                                F:\MCP\projects\CAN\canBase\Source\Tick.c
73
                                               // Start the timer.                                                          F:\MCP\projects\CAN\canBase\Source\Tick.c
89 johboh 74
0016d8   0e79     MOVLW     0x79               TMR0L = TICK_COUNTER_LOW;                                                    F:\MCP\projects\CAN\canBase\Source\Tick.c
75
0016da   6ed6     MOVWF     0xd6,0x0                                                                                        
76
0016dc   0efe     MOVLW     0xfe               TMR0H = TICK_COUNTER_HIGH;                                                   F:\MCP\projects\CAN\canBase\Source\Tick.c
77
0016de   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
89 johboh 80
0016e0   0e07     MOVLW     0x7                T0CON = 0b00000000 | TIMER_PRESCALE;                                         F:\MCP\projects\CAN\canBase\Source\Tick.c
81
0016e2   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
89 johboh 84
0016e4   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
89 johboh 86
0016e6   84f2     BSF       0xf2,0x2,0x0       INTCONbits.TMR0IF = 1;                                                       F:\MCP\projects\CAN\canBase\Source\Tick.c
87
0016e8   8af2     BSF       0xf2,0x5,0x0       INTCONbits.TMR0IE = 1;                                                       F:\MCP\projects\CAN\canBase\Source\Tick.c
88
0016ea   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
89 johboh 101
0016ec   c072     MOVFF     0x72,0x12          return TickCount;                                                            F:\MCP\projects\CAN\canBase\Source\Tick.c
102
0016ee   f012                                                                                                               
103
0016f0   c073     MOVFF     0x73,0x13                                                                                       
104
0016f2   f013                                                                                                               
105
0016f4   c074     MOVFF     0x74,0x14                                                                                       
106
0016f6   f014                                                                                                               
107
0016f8   c075     MOVFF     0x75,0x15                                                                                       
108
0016fa   f015                                                                                                               
109
0016fc   d000     BRA       0x16fe                                                                                          
110
0016fe   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
89 johboh 124
001700   a4f2     BTFSS     0xf2,0x2,0x0       if(INTCONbits.TMR0IF)                                                        F:\MCP\projects\CAN\canBase\Source\Tick.c
125
001702   d00b     BRA       0x171a                                                                                          
85 johboh 126
                                               {                                                                            F:\MCP\projects\CAN\canBase\Source\Tick.c
89 johboh 127
001704   0efe     MOVLW     0xfe                   TMR0H = TICK_COUNTER_HIGH;                                               F:\MCP\projects\CAN\canBase\Source\Tick.c
128
001706   6ed7     MOVWF     0xd7,0x0                                                                                        
129
001708   0e79     MOVLW     0x79                   TMR0L = TICK_COUNTER_LOW;                                                F:\MCP\projects\CAN\canBase\Source\Tick.c
130
00170a   6ed6     MOVWF     0xd6,0x0                                                                                        
85 johboh 131
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Tick.c
89 johboh 132
00170c   0100     MOVLB     0x0                    TickCount++;                                                             F:\MCP\projects\CAN\canBase\Source\Tick.c
133
00170e   2b72     INCF      0x72,0x1,0x1                                                                                    
134
001710   0e00     MOVLW     0x0                                                                                             
135
001712   2373     ADDWFC    0x73,0x1,0x1                                                                                    
136
001714   2374     ADDWFC    0x74,0x1,0x1                                                                                    
137
001716   2375     ADDWFC    0x75,0x1,0x1                                                                                    
85 johboh 138
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Tick.c
89 johboh 139
001718   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
89 johboh 141
00171a   0012     RETURN    0x0            }                                                                                F:\MCP\projects\CAN\canBase\Source\Tick.c
85 johboh 142
                                           /*********************************************************************           F:\MCP\projects\CAN\canBase\Source\CAN.c
143
                                            *                                                                               F:\MCP\projects\CAN\canBase\Source\CAN.c
86 johboh 144
                                            *                  CAN module                                                   F:\MCP\projects\CAN\canBase\Source\CAN.c
85 johboh 145
                                            *                                                                               F:\MCP\projects\CAN\canBase\Source\CAN.c
146
                                            *********************************************************************           F:\MCP\projects\CAN\canBase\Source\CAN.c
87 johboh 147
                                            * FileName:        $HeadURL: http://svn.arune.se/svn/HomeAutomation/trunk/EmbeddedSoftware/PIC/canBase/Source/CAN.c $ F:\MCP\projects\CAN\canBase\Source\CAN.c
89 johboh 148
                                            * Last changed:	$LastChangedDate: 2006-11-14 11:20:48 +0100 (ti, 14 nov 2006) $ F:\MCP\projects\CAN\canBase\Source\CAN.c
87 johboh 149
                                            * By:				$LastChangedBy: johboh $                                               F:\MCP\projects\CAN\canBase\Source\CAN.c
89 johboh 150
                                            * Revision:		$Revision: 87 $                                                    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
87 johboh 273
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
85 johboh 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
87 johboh 284
                                           					                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
285
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
85 johboh 286
                                           		// Get which buffer that is ful.                                               F:\MCP\projects\CAN\canBase\Source\CAN.c
287
0010ac   ae60     BTFSS     0x60,0x7,0x0   			 if (RXB0CONbits.RXFUL) { ECANCON=(ECANCON&0b00000)|0b10000; canGetPacket(); } F:\MCP\projects\CAN\canBase\Source\CAN.c
288
0010ae   d006     BRA       0x10bc                                                                                          
289
0010b0   0e00     MOVLW     0x0                                                                                             
290
0010b2   1477     ANDWF     0x77,0x0,0x0                                                                                    
291
0010b4   0910     IORLW     0x10                                                                                            
292
0010b6   6e77     MOVWF     0x77,0x0                                                                                        
293
0010b8   d841     RCALL     0x113c                                                                                          
294
0010ba   d039     BRA       0x112e         		else if (RXB1CONbits.RXFUL) { ECANCON=(ECANCON&0b00000)|0b10001; canGetPacket(); } F:\MCP\projects\CAN\canBase\Source\CAN.c
295
0010bc   010f     MOVLB     0xf                                                                                             
296
0010be   af50     BTFSS     0x50,0x7,0x1                                                                                    
297
0010c0   d006     BRA       0x10ce                                                                                          
298
0010c2   0e00     MOVLW     0x0                                                                                             
299
0010c4   1477     ANDWF     0x77,0x0,0x0                                                                                    
300
0010c6   0911     IORLW     0x11                                                                                            
301
0010c8   6e77     MOVWF     0x77,0x0                                                                                        
302
0010ca   d838     RCALL     0x113c                                                                                          
303
0010cc   d030     BRA       0x112e         		else if (B0CONbits.RXFUL) 	{ ECANCON=(ECANCON&0b00000)|0b10010; canGetPacket(); } F:\MCP\projects\CAN\canBase\Source\CAN.c
304
0010ce   010e     MOVLB     0xe                                                                                             
305
0010d0   af20     BTFSS     0x20,0x7,0x1                                                                                    
306
0010d2   d006     BRA       0x10e0                                                                                          
307
0010d4   0e00     MOVLW     0x0                                                                                             
308
0010d6   1477     ANDWF     0x77,0x0,0x0                                                                                    
309
0010d8   0912     IORLW     0x12                                                                                            
310
0010da   6e77     MOVWF     0x77,0x0                                                                                        
311
0010dc   d82f     RCALL     0x113c                                                                                          
312
0010de   d027     BRA       0x112e         		else if (B1CONbits.RXFUL) 	{ ECANCON=(ECANCON&0b00000)|0b10011; canGetPacket(); } F:\MCP\projects\CAN\canBase\Source\CAN.c
313
0010e0   af30     BTFSS     0x30,0x7,0x1                                                                                    
314
0010e2   d006     BRA       0x10f0                                                                                          
315
0010e4   0e00     MOVLW     0x0                                                                                             
316
0010e6   1477     ANDWF     0x77,0x0,0x0                                                                                    
317
0010e8   0913     IORLW     0x13                                                                                            
318
0010ea   6e77     MOVWF     0x77,0x0                                                                                        
319
0010ec   d827     RCALL     0x113c                                                                                          
320
0010ee   d01f     BRA       0x112e         		else if (B2CONbits.RXFUL) 	{ ECANCON=(ECANCON&0b00000)|0b10100; canGetPacket(); } F:\MCP\projects\CAN\canBase\Source\CAN.c
321
0010f0   af40     BTFSS     0x40,0x7,0x1                                                                                    
322
0010f2   d006     BRA       0x1100                                                                                          
323
0010f4   0e00     MOVLW     0x0                                                                                             
324
0010f6   1477     ANDWF     0x77,0x0,0x0                                                                                    
325
0010f8   0914     IORLW     0x14                                                                                            
326
0010fa   6e77     MOVWF     0x77,0x0                                                                                        
327
0010fc   d81f     RCALL     0x113c                                                                                          
328
0010fe   d017     BRA       0x112e         		else if (B3CONbits.RXFUL) 	{ ECANCON=(ECANCON&0b00000)|0b10101; canGetPacket(); } F:\MCP\projects\CAN\canBase\Source\CAN.c
329
001100   af50     BTFSS     0x50,0x7,0x1                                                                                    
330
001102   d006     BRA       0x1110                                                                                          
331
001104   0e00     MOVLW     0x0                                                                                             
332
001106   1477     ANDWF     0x77,0x0,0x0                                                                                    
333
001108   0915     IORLW     0x15                                                                                            
334
00110a   6e77     MOVWF     0x77,0x0                                                                                        
335
00110c   d817     RCALL     0x113c                                                                                          
336
00110e   d00f     BRA       0x112e         		else if (B4CONbits.RXFUL) 	{ ECANCON=(ECANCON&0b00000)|0b10110; canGetPacket(); } F:\MCP\projects\CAN\canBase\Source\CAN.c
337
001110   af60     BTFSS     0x60,0x7,0x1                                                                                    
338
001112   d006     BRA       0x1120                                                                                          
339
001114   0e00     MOVLW     0x0                                                                                             
340
001116   1477     ANDWF     0x77,0x0,0x0                                                                                    
341
001118   0916     IORLW     0x16                                                                                            
342
00111a   6e77     MOVWF     0x77,0x0                                                                                        
343
00111c   d80f     RCALL     0x113c                                                                                          
344
00111e   d007     BRA       0x112e         		else if (B5CONbits.RXFUL) 	{ ECANCON=(ECANCON&0b00000)|0b10111; canGetPacket(); } F:\MCP\projects\CAN\canBase\Source\CAN.c
345
001120   af70     BTFSS     0x70,0x7,0x1                                                                                    
346
001122   d005     BRA       0x112e                                                                                          
347
001124   0e00     MOVLW     0x0                                                                                             
348
001126   1477     ANDWF     0x77,0x0,0x0                                                                                    
349
001128   0917     IORLW     0x17                                                                                            
350
00112a   6e77     MOVWF     0x77,0x0                                                                                        
351
00112c   d807     RCALL     0x113c                                                                                          
352
                                           	                                                                                F:\MCP\projects\CAN\canBase\Source\CAN.c
353
00112e   b2a4     BTFSC     0xa4,0x1,0x0   		if (PIR3bits.RXBnIF) {PIR3bits.RXBnIF = 0;}                                    F:\MCP\projects\CAN\canBase\Source\CAN.c
354
001130   92a4     BCF       0xa4,0x1,0x0                                                                                    
355
001132   b2a4     BTFSC     0xa4,0x1,0x0   		if (PIR3bits.RXB1IF) {PIR3bits.RXB1IF = 0;}                                    F:\MCP\projects\CAN\canBase\Source\CAN.c
356
001134   92a4     BCF       0xa4,0x1,0x0                                                                                    
357
001136   b0a4     BTFSC     0xa4,0x0,0x0   		if (PIR3bits.RXB0IF) {PIR3bits.RXB0IF = 0;}                                    F:\MCP\projects\CAN\canBase\Source\CAN.c
358
001138   90a4     BCF       0xa4,0x0,0x0                                                                                    
359
                                           	                                                                                F:\MCP\projects\CAN\canBase\Source\CAN.c
360
                                           	}                                                                               F:\MCP\projects\CAN\canBase\Source\CAN.c
361
00113a   0012     RETURN    0x0            }                                                                                F:\MCP\projects\CAN\canBase\Source\CAN.c
362
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
363
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
364
                                           /*                                                                               F:\MCP\projects\CAN\canBase\Source\CAN.c
365
                                           *	Function: canGetPacket                                                         F:\MCP\projects\CAN\canBase\Source\CAN.c
366
                                           *                                                                                F:\MCP\projects\CAN\canBase\Source\CAN.c
367
                                           *	Input:	none                                                                    F:\MCP\projects\CAN\canBase\Source\CAN.c
368
                                           *	Output: none                                                                   F:\MCP\projects\CAN\canBase\Source\CAN.c
369
                                           *	Pre-conditions: a call to canISR and an packet is available and banked to RXB0 F:\MCP\projects\CAN\canBase\Source\CAN.c
370
                                           *	Affects: Calls canParse() function in main for parsing received packet.        F:\MCP\projects\CAN\canBase\Source\CAN.c
371
                                           *	Depends: none.                                                                 F:\MCP\projects\CAN\canBase\Source\CAN.c
372
                                           */                                                                               F:\MCP\projects\CAN\canBase\Source\CAN.c
373
00113c   cfd9     MOVFF     0xfd9,0xfe6    void canGetPacket()                                                              F:\MCP\projects\CAN\canBase\Source\CAN.c
374
00113e   ffe6                                                                                                               
375
001140   cfe1     MOVFF     0xfe1,0xfd9                                                                                     
376
001142   ffd9                                                                                                               
377
001144   0e0f     MOVLW     0xf                                                                                             
378
001146   26e1     ADDWF     0xe1,0x1,0x0                                                                                    
379
                                           {                                                                                F:\MCP\projects\CAN\canBase\Source\CAN.c
380
                                           		CAN_MESSAGE cm;                                                                F:\MCP\projects\CAN\canBase\Source\CAN.c
381
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
86 johboh 382
                                           		//RXB0SIDH 28 27 26 25 24 23 22 21                                             F:\MCP\projects\CAN\canBase\Source\CAN.c
383
                                                   //RXB0SIDL 20 19 18 xx xx xx 17 16                                       F:\MCP\projects\CAN\canBase\Source\CAN.c
384
                                                   //RXB0EIDH 15 14 13 12 11 10 09 08                                       F:\MCP\projects\CAN\canBase\Source\CAN.c
385
                                                   //RXB0EIDL 07 06 05 04 03 02 01 00                                       F:\MCP\projects\CAN\canBase\Source\CAN.c
85 johboh 386
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
86 johboh 387
                                           		//funct xx xx xx xx 28 27 26 25                                                F:\MCP\projects\CAN\canBase\Source\CAN.c
388
                                           		//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
389
                                           		//nid   xx xx 14 13 12 11 10 09                                                F:\MCP\projects\CAN\canBase\Source\CAN.c
390
                                           		//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 391
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
392
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
86 johboh 393
001148   0ef0     MOVLW     0xf0                  	cm.funct=((RXB0SIDH & 0xF0)>>4);                                         F:\MCP\projects\CAN\canBase\Source\CAN.c
394
00114a   1461     ANDWF     0x61,0x0,0x0                                                                                    
395
00114c   38e8     SWAPF     0xe8,0x0,0x0                                                                                    
396
00114e   0b0f     ANDLW     0xf                                                                                             
397
001150   6edf     MOVWF     0xdf,0x0                                                                                        
398
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
399
001154   1461     ANDWF     0x61,0x0,0x0                                                                                    
400
001156   6e06     MOVWF     0x6,0x0                                                                                         
401
001158   6a07     CLRF      0x7,0x0                                                                                         
402
00115a   0e06     MOVLW     0x6                                                                                             
403
00115c   90d8     BCF       0xd8,0x0,0x0                                                                                    
404
00115e   3606     RLCF      0x6,0x1,0x0                                                                                     
405
001160   3607     RLCF      0x7,0x1,0x0                                                                                     
406
001162   04e8     DECF      0xe8,0x0,0x0                                                                                    
407
001164   e1fb     BNZ       0x115c                                                                                          
408
001166   0ee0     MOVLW     0xe0                                                                                            
409
001168   1462     ANDWF     0x62,0x0,0x0                                                                                    
410
00116a   6e08     MOVWF     0x8,0x0                                                                                         
411
00116c   6a09     CLRF      0x9,0x0                                                                                         
412
00116e   90d8     BCF       0xd8,0x0,0x0                                                                                    
413
001170   3209     RRCF      0x9,0x1,0x0                                                                                     
414
001172   3208     RRCF      0x8,0x1,0x0                                                                                     
415
001174   90d8     BCF       0xd8,0x0,0x0                                                                                    
416
001176   3209     RRCF      0x9,0x1,0x0                                                                                     
417
001178   3208     RRCF      0x8,0x1,0x0                                                                                     
418
00117a   5006     MOVF      0x6,0x0,0x0                                                                                     
419
00117c   2408     ADDWF     0x8,0x0,0x0                                                                                     
420
00117e   6e04     MOVWF     0x4,0x0                                                                                         
421
001180   5007     MOVF      0x7,0x0,0x0                                                                                     
422
001182   2009     ADDWFC    0x9,0x0,0x0                                                                                     
423
001184   6e05     MOVWF     0x5,0x0                                                                                         
424
001186   0e03     MOVLW     0x3                                                                                             
425
001188   1462     ANDWF     0x62,0x0,0x0                                                                                    
426
00118a   6e0a     MOVWF     0xa,0x0                                                                                         
427
00118c   6a0b     CLRF      0xb,0x0                                                                                         
428
00118e   90d8     BCF       0xd8,0x0,0x0                                                                                    
429
001190   360a     RLCF      0xa,0x1,0x0                                                                                     
430
001192   360b     RLCF      0xb,0x1,0x0                                                                                     
431
001194   5004     MOVF      0x4,0x0,0x0                                                                                     
432
001196   240a     ADDWF     0xa,0x0,0x0                                                                                     
433
001198   6e02     MOVWF     0x2,0x0                                                                                         
434
00119a   5005     MOVF      0x5,0x0,0x0                                                                                     
435
00119c   200b     ADDWFC    0xb,0x0,0x0                                                                                     
436
00119e   6e03     MOVWF     0x3,0x0                                                                                         
437
0011a0   0e80     MOVLW     0x80                                                                                            
438
0011a2   1463     ANDWF     0x63,0x0,0x0                                                                                    
439
0011a4   6e0c     MOVWF     0xc,0x0                                                                                         
440
0011a6   6a0d     CLRF      0xd,0x0                                                                                         
441
0011a8   0e07     MOVLW     0x7                                                                                             
442
0011aa   90d8     BCF       0xd8,0x0,0x0                                                                                    
443
0011ac   320d     RRCF      0xd,0x1,0x0                                                                                     
444
0011ae   320c     RRCF      0xc,0x1,0x0                                                                                     
445
0011b0   04e8     DECF      0xe8,0x0,0x0                                                                                    
446
0011b2   e1fb     BNZ       0x11aa                                                                                          
447
0011b4   5002     MOVF      0x2,0x0,0x0                                                                                     
448
0011b6   240c     ADDWF     0xc,0x0,0x0                                                                                     
449
0011b8   6e00     MOVWF     0x0,0x0                                                                                         
450
0011ba   5003     MOVF      0x3,0x0,0x0                                                                                     
451
0011bc   200d     ADDWFC    0xd,0x0,0x0                                                                                     
452
0011be   6e01     MOVWF     0x1,0x0                                                                                         
453
0011c0   0e01     MOVLW     0x1                                                                                             
454
0011c2   c000     MOVFF     0x0,0xfdb                                                                                       
455
0011c4   ffdb                                                                                                               
456
0011c6   0e02     MOVLW     0x2                                                                                             
457
0011c8   c001     MOVFF     0x1,0xfdb                                                                                       
458
0011ca   ffdb                                                                                                               
459
0011cc   0e7e     MOVLW     0x7e                   cm.nid=((RXB0EIDH & 0x7E)>>1);                                           F:\MCP\projects\CAN\canBase\Source\CAN.c
460
0011ce   1463     ANDWF     0x63,0x0,0x0                                                                                    
461
0011d0   40e8     RRNCF     0xe8,0x0,0x0                                                                                    
462
0011d2   0b7f     ANDLW     0x7f                                                                                            
463
0011d4   6ee7     MOVWF     0xe7,0x0                                                                                        
464
0011d6   0e03     MOVLW     0x3                                                                                             
465
0011d8   cfe7     MOVFF     0xfe7,0xfdb                                                                                     
466
0011da   ffdb                                                                                                               
467
0011dc   0e01     MOVLW     0x1                    cm.sid=(((WORD)(RXB0EIDH & 0x01))<<8)+RXB0EIDL;                          F:\MCP\projects\CAN\canBase\Source\CAN.c
468
0011de   1463     ANDWF     0x63,0x0,0x0                                                                                    
469
0011e0   6e02     MOVWF     0x2,0x0                                                                                         
470
0011e2   c002     MOVFF     0x2,0x3                                                                                         
471
0011e4   f003                                                                                                               
472
0011e6   6a02     CLRF      0x2,0x0                                                                                         
473
0011e8   5064     MOVF      0x64,0x0,0x0                                                                                    
474
0011ea   0100     MOVLB     0x0                                                                                             
475
0011ec   2402     ADDWF     0x2,0x0,0x0                                                                                     
476
0011ee   6e00     MOVWF     0x0,0x0                                                                                         
477
0011f0   0e00     MOVLW     0x0                                                                                             
478
0011f2   2003     ADDWFC    0x3,0x0,0x0                                                                                     
479
0011f4   6e01     MOVWF     0x1,0x0                                                                                         
480
0011f6   0e04     MOVLW     0x4                                                                                             
481
0011f8   c000     MOVFF     0x0,0xfdb                                                                                       
482
0011fa   ffdb                                                                                                               
483
0011fc   0e05     MOVLW     0x5                                                                                             
484
0011fe   c001     MOVFF     0x1,0xfdb                                                                                       
485
001200   ffdb                                                                                                               
85 johboh 486
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
487
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
86 johboh 488
                                           		// Data length                                                                 F:\MCP\projects\CAN\canBase\Source\CAN.c
489
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
490
001204   0b01     ANDLW     0x1                                                                                             
491
001206   6e02     MOVWF     0x2,0x0                                                                                         
492
001208   5065     MOVF      0x65,0x0,0x0                                                                                    
493
00120a   0b02     ANDLW     0x2                                                                                             
494
00120c   e001     BZ        0x1210                                                                                          
495
00120e   0e01     MOVLW     0x1                                                                                             
496
001210   24e8     ADDWF     0xe8,0x0,0x0                                                                                    
497
001212   6e01     MOVWF     0x1,0x0                                                                                         
498
001214   5065     MOVF      0x65,0x0,0x0                                                                                    
499
001216   0b04     ANDLW     0x4                                                                                             
500
001218   e001     BZ        0x121c                                                                                          
501
00121a   0e01     MOVLW     0x1                                                                                             
502
00121c   0d04     MULLW     0x4                                                                                             
503
00121e   cff3     MOVFF     0xff3,0x0                                                                                       
504
001220   f000                                                                                                               
505
001222   5065     MOVF      0x65,0x0,0x0                                                                                    
506
001224   0b08     ANDLW     0x8                                                                                             
507
001226   e001     BZ        0x122a                                                                                          
508
001228   0e01     MOVLW     0x1                                                                                             
509
00122a   0d08     MULLW     0x8                                                                                             
510
00122c   50f3     MOVF      0xf3,0x0,0x0                                                                                    
511
00122e   2400     ADDWF     0x0,0x0,0x0                                                                                     
512
001230   2401     ADDWF     0x1,0x0,0x0                                                                                     
513
001232   2402     ADDWF     0x2,0x0,0x0                                                                                     
514
001234   6ee7     MOVWF     0xe7,0x0                                                                                        
515
001236   0e06     MOVLW     0x6                                                                                             
516
001238   cfe7     MOVFF     0xfe7,0xfdb                                                                                     
517
00123a   ffdb                                                                                                               
85 johboh 518
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
86 johboh 519
                                           		// Data one bye one, for speed                                                 F:\MCP\projects\CAN\canBase\Source\CAN.c
520
00123c   0e07     MOVLW     0x7            		cm.data[0]=RXB0D0;	cm.data[1]=RXB0D1;                                          F:\MCP\projects\CAN\canBase\Source\CAN.c
521
00123e   cf66     MOVFF     0xf66,0xfdb                                                                                     
85 johboh 522
001240   ffdb                                                                                                               
86 johboh 523
001242   0e08     MOVLW     0x8                                                                                             
524
001244   cf67     MOVFF     0xf67,0xfdb                                                                                     
85 johboh 525
001246   ffdb                                                                                                               
86 johboh 526
001248   0e09     MOVLW     0x9            		cm.data[2]=RXB0D2; 	cm.data[3]=RXB0D3;                                         F:\MCP\projects\CAN\canBase\Source\CAN.c
527
00124a   cf68     MOVFF     0xf68,0xfdb                                                                                     
528
00124c   ffdb                                                                                                               
529
00124e   0e0a     MOVLW     0xa                                                                                             
530
001250   cf69     MOVFF     0xf69,0xfdb                                                                                     
531
001252   ffdb                                                                                                               
532
001254   0e0b     MOVLW     0xb            		cm.data[4]=RXB0D4; 	cm.data[5]=RXB0D5;                                         F:\MCP\projects\CAN\canBase\Source\CAN.c
533
001256   cf6a     MOVFF     0xf6a,0xfdb                                                                                     
534
001258   ffdb                                                                                                               
535
00125a   0e0c     MOVLW     0xc                                                                                             
536
00125c   cf6b     MOVFF     0xf6b,0xfdb                                                                                     
537
00125e   ffdb                                                                                                               
538
001260   0e0d     MOVLW     0xd            		cm.data[6]=RXB0D6; 	cm.data[7]=RXB0D7;                                         F:\MCP\projects\CAN\canBase\Source\CAN.c
539
001262   cf6c     MOVFF     0xf6c,0xfdb                                                                                     
540
001264   ffdb                                                                                                               
541
001266   0e0e     MOVLW     0xe                                                                                             
542
001268   cf6d     MOVFF     0xf6d,0xfdb                                                                                     
543
00126a   ffdb                                                                                                               
85 johboh 544
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
545
                                           		// Clear ful status                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
86 johboh 546
00126c   9e60     BCF       0x60,0x7,0x0   		RXB0CONbits.RXFUL=0;                                                           F:\MCP\projects\CAN\canBase\Source\CAN.c
85 johboh 547
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
548
                                           		//Call main parser                                                             F:\MCP\projects\CAN\canBase\Source\CAN.c
86 johboh 549
00126e   cfd9     MOVFF     0xfd9,0xfe9    		canParse(cm);                                                                  F:\MCP\projects\CAN\canBase\Source\CAN.c
550
001270   ffe9                                                                                                               
551
001272   cfda     MOVFF     0xfda,0xfea                                                                                     
552
001274   ffea                                                                                                               
553
001276   cfee     MOVFF     0xfee,0xfe6                                                                                     
554
001278   ffe6                                                                                                               
555
00127a   cfee     MOVFF     0xfee,0xfe6                                                                                     
556
00127c   ffe6                                                                                                               
557
00127e   cfee     MOVFF     0xfee,0xfe6                                                                                     
558
001280   ffe6                                                                                                               
559
001282   cfee     MOVFF     0xfee,0xfe6                                                                                     
560
001284   ffe6                                                                                                               
561
001286   cfee     MOVFF     0xfee,0xfe6                                                                                     
562
001288   ffe6                                                                                                               
563
00128a   cfee     MOVFF     0xfee,0xfe6                                                                                     
564
00128c   ffe6                                                                                                               
565
00128e   cfee     MOVFF     0xfee,0xfe6                                                                                     
566
001290   ffe6                                                                                                               
567
001292   cfee     MOVFF     0xfee,0xfe6                                                                                     
568
001294   ffe6                                                                                                               
569
001296   cfee     MOVFF     0xfee,0xfe6                                                                                     
570
001298   ffe6                                                                                                               
571
00129a   cfee     MOVFF     0xfee,0xfe6                                                                                     
572
00129c   ffe6                                                                                                               
573
00129e   cfee     MOVFF     0xfee,0xfe6                                                                                     
574
0012a0   ffe6                                                                                                               
575
0012a2   cfee     MOVFF     0xfee,0xfe6                                                                                     
576
0012a4   ffe6                                                                                                               
577
0012a6   cfee     MOVFF     0xfee,0xfe6                                                                                     
578
0012a8   ffe6                                                                                                               
579
0012aa   cfee     MOVFF     0xfee,0xfe6                                                                                     
580
0012ac   ffe6                                                                                                               
581
0012ae   cfee     MOVFF     0xfee,0xfe6                                                                                     
582
0012b0   ffe6                                                                                                               
89 johboh 583
0012b2   ec03     CALL      0x1606,0x0                                                                                      
87 johboh 584
0012b4   f00b                                                                                                               
86 johboh 585
0012b6   6e00     MOVWF     0x0,0x0                                                                                         
586
0012b8   0e0f     MOVLW     0xf                                                                                             
587
0012ba   5ee1     SUBWF     0xe1,0x1,0x0                                                                                    
588
0012bc   5000     MOVF      0x0,0x0,0x0                                                                                     
589
0012be   0e0f     MOVLW     0xf            }                                                                                F:\MCP\projects\CAN\canBase\Source\CAN.c
590
0012c0   5ce1     SUBWF     0xe1,0x0,0x0                                                                                    
591
0012c2   e202     BC        0x12c8                                                                                          
592
0012c4   6ae1     CLRF      0xe1,0x0                                                                                        
593
0012c6   52e5     MOVF      0xe5,0x1,0x0                                                                                    
594
0012c8   6ee1     MOVWF     0xe1,0x0                                                                                        
595
0012ca   52e5     MOVF      0xe5,0x1,0x0                                                                                    
596
0012cc   cfe7     MOVFF     0xfe7,0xfd9                                                                                     
597
0012ce   ffd9                                                                                                               
598
0012d0   0012     RETURN    0x0                                                                                             
85 johboh 599
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
600
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
601
                                           /*                                                                               F:\MCP\projects\CAN\canBase\Source\CAN.c
602
                                           *	Function: canSendMessage                                                       F:\MCP\projects\CAN\canBase\Source\CAN.c
603
                                           *                                                                                F:\MCP\projects\CAN\canBase\Source\CAN.c
604
                                           *	Input:	CAN_MESSAGE to send                                                     F:\MCP\projects\CAN\canBase\Source\CAN.c
605
                                           *	Output: True if packet scheduled sucess, false otherwise.                      F:\MCP\projects\CAN\canBase\Source\CAN.c
606
                                           *	Pre-conditions: canInit                                                        F:\MCP\projects\CAN\canBase\Source\CAN.c
607
                                           *	Affects: ..                                                                    F:\MCP\projects\CAN\canBase\Source\CAN.c
608
                                           *	Depends: ..                                                                    F:\MCP\projects\CAN\canBase\Source\CAN.c
609
                                           */                                                                               F:\MCP\projects\CAN\canBase\Source\CAN.c
86 johboh 610
0012d2   cfd9     MOVFF     0xfd9,0xfe6    BOOL canSendMessage(CAN_MESSAGE cm,CAN_PRIORITY prio)                            F:\MCP\projects\CAN\canBase\Source\CAN.c
611
0012d4   ffe6                                                                                                               
612
0012d6   cfe1     MOVFF     0xfe1,0xfd9                                                                                     
613
0012d8   ffd9                                                                                                               
85 johboh 614
                                           {                                                                                F:\MCP\projects\CAN\canBase\Source\CAN.c
615
                                           	                                                                                F:\MCP\projects\CAN\canBase\Source\CAN.c
86 johboh 616
0012da   010f     MOVLB     0xf            	if ( TXB0CONbits.TXREQ == 0 )  { ECANCON=(ECANCON&0b00000)|0b00011; }           F:\MCP\projects\CAN\canBase\Source\CAN.c
617
0012dc   b740     BTFSC     0x40,0x3,0x1                                                                                    
618
0012de   d004     BRA       0x12e8                                                                                          
619
0012e0   0e00     MOVLW     0x0                                                                                             
620
0012e2   1477     ANDWF     0x77,0x0,0x0                                                                                    
621
0012e4   0903     IORLW     0x3                                                                                             
622
0012e6   6e77     MOVWF     0x77,0x0                                                                                        
623
0012e8   010f     MOVLB     0xf            	if ( TXB1CONbits.TXREQ == 0 )  { ECANCON=(ECANCON&0b00000)|0b00100; }           F:\MCP\projects\CAN\canBase\Source\CAN.c
624
0012ea   b730     BTFSC     0x30,0x3,0x1                                                                                    
625
0012ec   d004     BRA       0x12f6                                                                                          
626
0012ee   0e00     MOVLW     0x0                                                                                             
627
0012f0   1477     ANDWF     0x77,0x0,0x0                                                                                    
628
0012f2   0904     IORLW     0x4                                                                                             
629
0012f4   6e77     MOVWF     0x77,0x0                                                                                        
630
0012f6   010f     MOVLB     0xf            	if ( TXB2CONbits.TXREQ == 0 )  { ECANCON=(ECANCON&0b00000)|0b00101; }           F:\MCP\projects\CAN\canBase\Source\CAN.c
631
0012f8   b720     BTFSC     0x20,0x3,0x1                                                                                    
632
0012fa   d005     BRA       0x1306                                                                                          
633
0012fc   0e00     MOVLW     0x0                                                                                             
634
0012fe   1477     ANDWF     0x77,0x0,0x0                                                                                    
635
001300   0905     IORLW     0x5                                                                                             
636
001302   6e77     MOVWF     0x77,0x0                                                                                        
85 johboh 637
                                           	// None of the transmit buffers were empty.                                     F:\MCP\projects\CAN\canBase\Source\CAN.c
86 johboh 638
001304   d002     BRA       0x130a         	else { return FALSE;}                                                           F:\MCP\projects\CAN\canBase\Source\CAN.c
639
001306   0e00     MOVLW     0x0                                                                                             
640
001308   d0b0     BRA       0x146a                                                                                          
85 johboh 641
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
86 johboh 642
00130a   0eef     MOVLW     0xef           	if (prio<0 || prio>3) prio = 0;                                                 F:\MCP\projects\CAN\canBase\Source\CAN.c
643
00130c   cfdb     MOVFF     0xfdb,0x0                                                                                       
644
00130e   f000                                                                                                               
645
001310   3400     RLCF      0x0,0x0,0x0                                                                                     
646
001312   e20e     BC        0x1330                                                                                          
647
001314   0eef     MOVLW     0xef                                                                                            
648
001316   cfdb     MOVFF     0xfdb,0x1                                                                                       
649
001318   f001                                                                                                               
650
00131a   0e03     MOVLW     0x3                                                                                             
651
00131c   6ee7     MOVWF     0xe7,0x0                                                                                        
652
00131e   1801     XORWF     0x1,0x0,0x0                                                                                     
653
001320   aee8     BTFSS     0xe8,0x7,0x0                                                                                    
654
001322   d002     BRA       0x1328                                                                                          
655
001324   3401     RLCF      0x1,0x0,0x0                                                                                     
656
001326   d003     BRA       0x132e                                                                                          
657
001328   50e7     MOVF      0xe7,0x0,0x0                                                                                    
658
00132a   80d8     BSF       0xd8,0x0,0x0                                                                                    
659
00132c   5401     SUBFWB    0x1,0x0,0x0                                                                                     
660
00132e   e202     BC        0x1334                                                                                          
661
001330   0eef     MOVLW     0xef                                                                                            
662
001332   6adb     CLRF      0xdb,0x0                                                                                        
85 johboh 663
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
664
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
86 johboh 665
                                           		//RXB0SIDH 28 27 26 25 24 23 22 21                                             F:\MCP\projects\CAN\canBase\Source\CAN.c
666
                                                   //RXB0SIDL 20 19 18 xx xx xx 17 16                                       F:\MCP\projects\CAN\canBase\Source\CAN.c
667
                                                   //RXB0EIDH 15 14 13 12 11 10 09 08                                       F:\MCP\projects\CAN\canBase\Source\CAN.c
668
                                                   //RXB0EIDL 07 06 05 04 03 02 01 00                                       F:\MCP\projects\CAN\canBase\Source\CAN.c
85 johboh 669
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
86 johboh 670
                                           		//funct xx xx xx xx 28 27 26 25                                                F:\MCP\projects\CAN\canBase\Source\CAN.c
671
                                           		//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
672
                                           		//nid   xx xx 14 13 12 11 10 09                                                F:\MCP\projects\CAN\canBase\Source\CAN.c
673
                                           		//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 674
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
86 johboh 675
001334   0ef1     MOVLW     0xf1           		RXB0SIDH = (BYTE)((cm.funct & 0x0F)<<4)+(BYTE)((cm.funcc & 0x03C0)>>6);        F:\MCP\projects\CAN\canBase\Source\CAN.c
676
001336   cfdb     MOVFF     0xfdb,0x0                                                                                       
677
001338   f000                                                                                                               
678
00133a   0ef2     MOVLW     0xf2                                                                                            
679
00133c   cfdb     MOVFF     0xfdb,0x1                                                                                       
680
00133e   f001                                                                                                               
681
001340   0ec0     MOVLW     0xc0                                                                                            
682
001342   1600     ANDWF     0x0,0x1,0x0                                                                                     
683
001344   0e03     MOVLW     0x3                                                                                             
684
001346   1601     ANDWF     0x1,0x1,0x0                                                                                     
685
001348   0e06     MOVLW     0x6                                                                                             
686
00134a   90d8     BCF       0xd8,0x0,0x0                                                                                    
687
00134c   3201     RRCF      0x1,0x1,0x0                                                                                     
688
00134e   3200     RRCF      0x0,0x1,0x0                                                                                     
689
001350   04e8     DECF      0xe8,0x0,0x0                                                                                    
690
001352   e1fb     BNZ       0x134a                                                                                          
691
001354   0ef0     MOVLW     0xf0                                                                                            
692
001356   50db     MOVF      0xdb,0x0,0x0                                                                                    
693
001358   0b0f     ANDLW     0xf                                                                                             
694
00135a   0d10     MULLW     0x10                                                                                            
695
00135c   50f3     MOVF      0xf3,0x0,0x0                                                                                    
696
00135e   2400     ADDWF     0x0,0x0,0x0                                                                                     
697
001360   6e61     MOVWF     0x61,0x0                                                                                        
698
001362   0e06     MOVLW     0x6            		RXB0SIDL = (BYTE)((cm.funcc & 0x003F)<<2)+(BYTE)((cm.funcc & 0x0006)>>1);      F:\MCP\projects\CAN\canBase\Source\CAN.c
699
001364   6ee7     MOVWF     0xe7,0x0                                                                                        
700
001366   0ef1     MOVLW     0xf1                                                                                            
701
001368   cfdb     MOVFF     0xfdb,0x2                                                                                       
702
00136a   f002                                                                                                               
703
00136c   0ef2     MOVLW     0xf2                                                                                            
704
00136e   cfdb     MOVFF     0xfdb,0x3                                                                                       
705
001370   f003                                                                                                               
706
001372   50e7     MOVF      0xe7,0x0,0x0                                                                                    
707
001374   1602     ANDWF     0x2,0x1,0x0                                                                                     
708
001376   6a03     CLRF      0x3,0x0                                                                                         
709
001378   90d8     BCF       0xd8,0x0,0x0                                                                                    
710
00137a   3203     RRCF      0x3,0x1,0x0                                                                                     
711
00137c   3202     RRCF      0x2,0x1,0x0                                                                                     
712
00137e   0e3f     MOVLW     0x3f                                                                                            
713
001380   6ee7     MOVWF     0xe7,0x0                                                                                        
714
001382   0ef1     MOVLW     0xf1                                                                                            
715
001384   cfdb     MOVFF     0xfdb,0x0                                                                                       
716
001386   f000                                                                                                               
717
001388   0ef2     MOVLW     0xf2                                                                                            
718
00138a   cfdb     MOVFF     0xfdb,0x1                                                                                       
719
00138c   f001                                                                                                               
720
00138e   50e7     MOVF      0xe7,0x0,0x0                                                                                    
721
001390   1600     ANDWF     0x0,0x1,0x0                                                                                     
722
001392   6a01     CLRF      0x1,0x0                                                                                         
723
001394   90d8     BCF       0xd8,0x0,0x0                                                                                    
724
001396   3600     RLCF      0x0,0x1,0x0                                                                                     
725
001398   3601     RLCF      0x1,0x1,0x0                                                                                     
726
00139a   90d8     BCF       0xd8,0x0,0x0                                                                                    
727
00139c   3600     RLCF      0x0,0x1,0x0                                                                                     
728
00139e   3601     RLCF      0x1,0x1,0x0                                                                                     
729
0013a0   5000     MOVF      0x0,0x0,0x0                                                                                     
730
0013a2   2402     ADDWF     0x2,0x0,0x0                                                                                     
731
0013a4   6e62     MOVWF     0x62,0x0                                                                                        
732
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
733
0013a8   cfdb     MOVFF     0xfdb,0x2                                                                                       
734
0013aa   f002                                                                                                               
735
0013ac   0ef5     MOVLW     0xf5                                                                                            
736
0013ae   cfdb     MOVFF     0xfdb,0x3                                                                                       
737
0013b0   f003                                                                                                               
738
0013b2   0e00     MOVLW     0x0                                                                                             
739
0013b4   1602     ANDWF     0x2,0x1,0x0                                                                                     
740
0013b6   0e01     MOVLW     0x1                                                                                             
741
0013b8   1603     ANDWF     0x3,0x1,0x0                                                                                     
742
0013ba   c003     MOVFF     0x3,0x2                                                                                         
743
0013bc   f002                                                                                                               
744
0013be   6a03     CLRF      0x3,0x0                                                                                         
745
0013c0   0e01     MOVLW     0x1                                                                                             
746
0013c2   6ee7     MOVWF     0xe7,0x0                                                                                        
747
0013c4   0ef1     MOVLW     0xf1                                                                                            
748
0013c6   cfdb     MOVFF     0xfdb,0x0                                                                                       
749
0013c8   f000                                                                                                               
750
0013ca   0ef2     MOVLW     0xf2                                                                                            
751
0013cc   cfdb     MOVFF     0xfdb,0x1                                                                                       
752
0013ce   f001                                                                                                               
753
0013d0   50e7     MOVF      0xe7,0x0,0x0                                                                                    
754
0013d2   1600     ANDWF     0x0,0x1,0x0                                                                                     
755
0013d4   6a01     CLRF      0x1,0x0                                                                                         
756
0013d6   0e07     MOVLW     0x7                                                                                             
757
0013d8   90d8     BCF       0xd8,0x0,0x0                                                                                    
758
0013da   3600     RLCF      0x0,0x1,0x0                                                                                     
759
0013dc   3601     RLCF      0x1,0x1,0x0                                                                                     
760
0013de   04e8     DECF      0xe8,0x0,0x0                                                                                    
761
0013e0   e1fb     BNZ       0x13d8                                                                                          
762
0013e2   0ef3     MOVLW     0xf3                                                                                            
763
0013e4   50db     MOVF      0xdb,0x0,0x0                                                                                    
764
0013e6   0b3f     ANDLW     0x3f                                                                                            
765
0013e8   24e8     ADDWF     0xe8,0x0,0x0                                                                                    
766
0013ea   2400     ADDWF     0x0,0x0,0x0                                                                                     
767
0013ec   2402     ADDWF     0x2,0x0,0x0                                                                                     
768
0013ee   6e63     MOVWF     0x63,0x0                                                                                        
769
0013f0   0eff     MOVLW     0xff           		RXB0EIDL = (BYTE)((cm.sid & 0x00FF));                                          F:\MCP\projects\CAN\canBase\Source\CAN.c
770
0013f2   6ee7     MOVWF     0xe7,0x0                                                                                        
771
0013f4   0ef4     MOVLW     0xf4                                                                                            
85 johboh 772
0013f6   cfdb     MOVFF     0xfdb,0x0                                                                                       
773
0013f8   f000                                                                                                               
86 johboh 774
0013fa   0ef5     MOVLW     0xf5                                                                                            
85 johboh 775
0013fc   cfdb     MOVFF     0xfdb,0x1                                                                                       
776
0013fe   f001                                                                                                               
86 johboh 777
001400   50e7     MOVF      0xe7,0x0,0x0                                                                                    
778
001402   1600     ANDWF     0x0,0x1,0x0                                                                                     
779
001404   6a01     CLRF      0x1,0x0                                                                                         
780
001406   5000     MOVF      0x0,0x0,0x0                                                                                     
781
001408   6e64     MOVWF     0x64,0x0                                                                                        
85 johboh 782
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
86 johboh 783
                                           		// Data length                                                                 F:\MCP\projects\CAN\canBase\Source\CAN.c
784
00140a   6a65     CLRF      0x65,0x0       		RXB0DLC = 0;                                                                   F:\MCP\projects\CAN\canBase\Source\CAN.c
785
00140c   0ef6     MOVLW     0xf6           		if (cm.data_length>8) RXB0DLC=8; else RXB0DLC=cm.data_length;                  F:\MCP\projects\CAN\canBase\Source\CAN.c
786
00140e   50db     MOVF      0xdb,0x0,0x0                                                                                    
787
001410   0808     SUBLW     0x8                                                                                             
788
001412   e203     BC        0x141a                                                                                          
789
001414   0e08     MOVLW     0x8                                                                                             
790
001416   6e65     MOVWF     0x65,0x0                                                                                        
791
001418   d003     BRA       0x1420                                                                                          
792
00141a   0ef6     MOVLW     0xf6                                                                                            
793
00141c   50db     MOVF      0xdb,0x0,0x0                                                                                    
794
00141e   6e65     MOVWF     0x65,0x0                                                                                        
85 johboh 795
                                           		                                                                               F:\MCP\projects\CAN\canBase\Source\CAN.c
796
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
86 johboh 797
                                           		// NOT Remote request                                                          F:\MCP\projects\CAN\canBase\Source\CAN.c
798
                                           		_asm                                                                           F:\MCP\projects\CAN\canBase\Source\CAN.c
799
001420   9c65     BCF       0x65,0x6,0x0   			bcf RXB0DLC, 6, 0                                                             F:\MCP\projects\CAN\canBase\Source\CAN.c
800
                                           		_endasm                                                                        F:\MCP\projects\CAN\canBase\Source\CAN.c
85 johboh 801
                                           		                                                                               F:\MCP\projects\CAN\canBase\Source\CAN.c
802
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
803
                                           		// Data one bye one, for speed                                                 F:\MCP\projects\CAN\canBase\Source\CAN.c
86 johboh 804
001422   0ef7     MOVLW     0xf7           		RXB0D0=cm.data[0];	RXB0D1=cm.data[1];                                          F:\MCP\projects\CAN\canBase\Source\CAN.c
805
001424   50db     MOVF      0xdb,0x0,0x0                                                                                    
806
001426   6e66     MOVWF     0x66,0x0                                                                                        
807
001428   0ef8     MOVLW     0xf8                                                                                            
808
00142a   50db     MOVF      0xdb,0x0,0x0                                                                                    
809
00142c   6e67     MOVWF     0x67,0x0                                                                                        
810
00142e   0ef9     MOVLW     0xf9           		RXB0D2=cm.data[2]; 	RXB0D3=cm.data[3];                                         F:\MCP\projects\CAN\canBase\Source\CAN.c
811
001430   50db     MOVF      0xdb,0x0,0x0                                                                                    
812
001432   6e68     MOVWF     0x68,0x0                                                                                        
813
001434   0efa     MOVLW     0xfa                                                                                            
814
001436   50db     MOVF      0xdb,0x0,0x0                                                                                    
815
001438   6e69     MOVWF     0x69,0x0                                                                                        
816
00143a   0efb     MOVLW     0xfb           		RXB0D4=cm.data[4]; 	RXB0D5=cm.data[5];                                         F:\MCP\projects\CAN\canBase\Source\CAN.c
817
00143c   50db     MOVF      0xdb,0x0,0x0                                                                                    
818
00143e   6e6a     MOVWF     0x6a,0x0                                                                                        
819
001440   0efc     MOVLW     0xfc                                                                                            
820
001442   50db     MOVF      0xdb,0x0,0x0                                                                                    
821
001444   6e6b     MOVWF     0x6b,0x0                                                                                        
822
001446   0efd     MOVLW     0xfd           		RXB0D6=cm.data[6]; 	RXB0D7=cm.data[7];                                         F:\MCP\projects\CAN\canBase\Source\CAN.c
823
001448   50db     MOVF      0xdb,0x0,0x0                                                                                    
824
00144a   6e6c     MOVWF     0x6c,0x0                                                                                        
825
00144c   0efe     MOVLW     0xfe                                                                                            
826
00144e   50db     MOVF      0xdb,0x0,0x0                                                                                    
827
001450   6e6d     MOVWF     0x6d,0x0                                                                                        
85 johboh 828
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
86 johboh 829
                                           		// set extended                                                                F:\MCP\projects\CAN\canBase\Source\CAN.c
830
001452   8662     BSF       0x62,0x3,0x0   		RXB0SIDLbits.EXID=1;                                                           F:\MCP\projects\CAN\canBase\Source\CAN.c
85 johboh 831
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
832
                                           		// Priority                                                                    F:\MCP\projects\CAN\canBase\Source\CAN.c
86 johboh 833
001454   0eef     MOVLW     0xef           		RXB0CON = (RXB0CON & 0b11111100) | prio;                                       F:\MCP\projects\CAN\canBase\Source\CAN.c
834
001456   cfdb     MOVFF     0xfdb,0xfe6                                                                                     
835
001458   ffe6                                                                                                               
836
00145a   0efc     MOVLW     0xfc                                                                                            
837
00145c   1460     ANDWF     0x60,0x0,0x0                                                                                    
838
00145e   52e5     MOVF      0xe5,0x1,0x0                                                                                    
839
001460   10e7     IORWF     0xe7,0x0,0x0                                                                                    
840
001462   6e60     MOVWF     0x60,0x0                                                                                        
85 johboh 841
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
842
                                           		// mark as redy to transmit                                                    F:\MCP\projects\CAN\canBase\Source\CAN.c
843
                                           		_asm                                                                           F:\MCP\projects\CAN\canBase\Source\CAN.c
86 johboh 844
001464   8660     BSF       0x60,0x3,0x0   			bsf RXB0CON, 3, 0                                                             F:\MCP\projects\CAN\canBase\Source\CAN.c
85 johboh 845
                                           		_endasm                                                                        F:\MCP\projects\CAN\canBase\Source\CAN.c
846
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
86 johboh 847
001466   0e01     MOVLW     0x1            		return TRUE;                                                                   F:\MCP\projects\CAN\canBase\Source\CAN.c
848
001468   d000     BRA       0x146a                                                                                          
85 johboh 849
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
86 johboh 850
00146a   52e5     MOVF      0xe5,0x1,0x0   }                                                                                F:\MCP\projects\CAN\canBase\Source\CAN.c
851
00146c   cfe7     MOVFF     0xfe7,0xfd9                                                                                     
852
00146e   ffd9                                                                                                               
853
001470   0012     RETURN    0x0                                                                                             
85 johboh 854
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
855
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
856
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
857
                                           #endif //USE_CAN                                                                 F:\MCP\projects\CAN\canBase\Source\CAN.c
858
                                           /*********************************************************************           F:\MCP\projects\CAN\canBase\Source\Main.c
859
                                            *                                                                               F:\MCP\projects\CAN\canBase\Source\Main.c
860
                                            *                  Main application                                             F:\MCP\projects\CAN\canBase\Source\Main.c
861
                                            *                                                                               F:\MCP\projects\CAN\canBase\Source\Main.c
862
                                            *********************************************************************           F:\MCP\projects\CAN\canBase\Source\Main.c
87 johboh 863
                                            * FileName:        $HeadURL: http://svn.arune.se/svn/HomeAutomation/trunk/EmbeddedSoftware/PIC/canBase/Source/Main.c $ F:\MCP\projects\CAN\canBase\Source\Main.c
90 johboh 864
                                            * Last changed:	$LastChangedDate: 2006-11-14 11:44:48 +0100 (ti, 14 nov 2006) $ F:\MCP\projects\CAN\canBase\Source\Main.c
87 johboh 865
                                            * By:				$LastChangedBy: johboh $                                               F:\MCP\projects\CAN\canBase\Source\Main.c
90 johboh 866
                                            * Revision:		$Revision: 89 $                                                    F:\MCP\projects\CAN\canBase\Source\Main.c
85 johboh 867
                                            ********************************************************************/           F:\MCP\projects\CAN\canBase\Source\Main.c
868
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Main.c
869
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Main.c
870
                                           #include <compiler.h>                                                            F:\MCP\projects\CAN\canBase\Source\Main.c
871
                                           #include <stackTasks.h>                                                          F:\MCP\projects\CAN\canBase\Source\Main.c
872
                                           #include <Tick.h>                                                                F:\MCP\projects\CAN\canBase\Source\Main.c
90 johboh 873
                                           #include <funcdefs.h>                                                            F:\MCP\projects\CAN\canBase\Source\Main.c
85 johboh 874
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Main.c
875
                                           #ifdef USE_CAN                                                                   F:\MCP\projects\CAN\canBase\Source\Main.c
876
                                           	#include <CAN.h>                                                                F:\MCP\projects\CAN\canBase\Source\Main.c
877
                                           #endif                                                                           F:\MCP\projects\CAN\canBase\Source\Main.c
878
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Main.c
879
                                           static void mainInit(void);                                                      F:\MCP\projects\CAN\canBase\Source\Main.c
880
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Main.c
881
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Main.c
87 johboh 882
001472   cfd9     MOVFF     0xfd9,0xfe6    void main()                                                                      F:\MCP\projects\CAN\canBase\Source\Main.c
883
001474   ffe6                                                                                                               
884
001476   cfe1     MOVFF     0xfe1,0xfd9                                                                                     
885
001478   ffd9                                                                                                               
886
00147a   0e0f     MOVLW     0xf                                                                                             
887
00147c   26e1     ADDWF     0xe1,0x1,0x0                                                                                    
85 johboh 888
                                           {                                                                                F:\MCP\projects\CAN\canBase\Source\Main.c
889
                                           	static TICK t = 0;                                                              F:\MCP\projects\CAN\canBase\Source\Main.c
87 johboh 890
                                           	CAN_MESSAGE cm2;                                                                F:\MCP\projects\CAN\canBase\Source\Main.c
85 johboh 891
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Main.c
892
                                           	// Inits                                                                        F:\MCP\projects\CAN\canBase\Source\Main.c
893
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Main.c
89 johboh 894
00147e   d8be     RCALL     0x15fc         	mainInit();                                                                     F:\MCP\projects\CAN\canBase\Source\Main.c
85 johboh 895
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Main.c
896
                                           	#ifdef USE_CAN                                                                  F:\MCP\projects\CAN\canBase\Source\Main.c
87 johboh 897
001480   ec22     CALL      0x1044,0x0     		canInit();                                                                     F:\MCP\projects\CAN\canBase\Source\Main.c
898
001482   f008                                                                                                               
85 johboh 899
                                           	#endif                                                                          F:\MCP\projects\CAN\canBase\Source\Main.c
900
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Main.c
89 johboh 901
001484   ec6c     CALL      0x16d8,0x0     	tickInit();                                                                     F:\MCP\projects\CAN\canBase\Source\Main.c
87 johboh 902
001486   f00b                                                                                                               
85 johboh 903
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Main.c
87 johboh 904
                                           	// Dummy bootmessage                                                            F:\MCP\projects\CAN\canBase\Source\Main.c
905
001488   0e91     MOVLW     0x91           	cm2.data[0]=0x91;                                                               F:\MCP\projects\CAN\canBase\Source\Main.c
906
00148a   6ef3     MOVWF     0xf3,0x0                                                                                        
907
00148c   0e07     MOVLW     0x7                                                                                             
908
00148e   cff3     MOVFF     0xff3,0xfdb                                                                                     
909
001490   ffdb                                                                                                               
910
001492   0e01     MOVLW     0x1            	cm2.data_length=1;                                                              F:\MCP\projects\CAN\canBase\Source\Main.c
911
001494   6ef3     MOVWF     0xf3,0x0                                                                                        
912
001496   0e06     MOVLW     0x6                                                                                             
913
001498   cff3     MOVFF     0xff3,0xfdb                                                                                     
914
00149a   ffdb                                                                                                               
915
00149c   0e02     MOVLW     0x2            	canSendMessage(cm2,PRIO_HIGH);                                                  F:\MCP\projects\CAN\canBase\Source\Main.c
916
00149e   6ee6     MOVWF     0xe6,0x0                                                                                        
917
0014a0   cfd9     MOVFF     0xfd9,0xfe9                                                                                     
918
0014a2   ffe9                                                                                                               
919
0014a4   cfda     MOVFF     0xfda,0xfea                                                                                     
920
0014a6   ffea                                                                                                               
921
0014a8   cfee     MOVFF     0xfee,0xfe6                                                                                     
922
0014aa   ffe6                                                                                                               
923
0014ac   cfee     MOVFF     0xfee,0xfe6                                                                                     
924
0014ae   ffe6                                                                                                               
925
0014b0   cfee     MOVFF     0xfee,0xfe6                                                                                     
926
0014b2   ffe6                                                                                                               
927
0014b4   cfee     MOVFF     0xfee,0xfe6                                                                                     
928
0014b6   ffe6                                                                                                               
929
0014b8   cfee     MOVFF     0xfee,0xfe6                                                                                     
930
0014ba   ffe6                                                                                                               
931
0014bc   cfee     MOVFF     0xfee,0xfe6                                                                                     
932
0014be   ffe6                                                                                                               
933
0014c0   cfee     MOVFF     0xfee,0xfe6                                                                                     
934
0014c2   ffe6                                                                                                               
935
0014c4   cfee     MOVFF     0xfee,0xfe6                                                                                     
936
0014c6   ffe6                                                                                                               
937
0014c8   cfee     MOVFF     0xfee,0xfe6                                                                                     
938
0014ca   ffe6                                                                                                               
939
0014cc   cfee     MOVFF     0xfee,0xfe6                                                                                     
940
0014ce   ffe6                                                                                                               
941
0014d0   cfee     MOVFF     0xfee,0xfe6                                                                                     
942
0014d2   ffe6                                                                                                               
943
0014d4   cfee     MOVFF     0xfee,0xfe6                                                                                     
944
0014d6   ffe6                                                                                                               
945
0014d8   cfee     MOVFF     0xfee,0xfe6                                                                                     
946
0014da   ffe6                                                                                                               
947
0014dc   cfee     MOVFF     0xfee,0xfe6                                                                                     
948
0014de   ffe6                                                                                                               
949
0014e0   cfee     MOVFF     0xfee,0xfe6                                                                                     
950
0014e2   ffe6                                                                                                               
951
0014e4   ec69     CALL      0x12d2,0x0                                                                                      
952
0014e6   f009                                                                                                               
953
0014e8   6e00     MOVWF     0x0,0x0                                                                                         
954
0014ea   0e10     MOVLW     0x10                                                                                            
955
0014ec   5ee1     SUBWF     0xe1,0x1,0x0                                                                                    
956
0014ee   5000     MOVF      0x0,0x0,0x0                                                                                     
957
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Main.c
958
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Main.c
959
001538   d7db     BRA       0x14f0         	while(1)                                                                        F:\MCP\projects\CAN\canBase\Source\Main.c
85 johboh 960
                                           	{                                                                               F:\MCP\projects\CAN\canBase\Source\Main.c
86 johboh 961
                                           		static TICK t = 0;                                                             F:\MCP\projects\CAN\canBase\Source\Main.c
89 johboh 962
0014f0   ec76     CALL      0x16ec,0x0     		if ((tickGet()-t)>TICK_SECOND)                                                 F:\MCP\projects\CAN\canBase\Source\Main.c
87 johboh 963
0014f2   f00b                                                                                                               
964
0014f4   0100     MOVLB     0x0                                                                                             
965
0014f6   516e     MOVF      0x6e,0x0,0x1                                                                                    
966
0014f8   5c12     SUBWF     0x12,0x0,0x0                                                                                    
967
0014fa   6e00     MOVWF     0x0,0x0                                                                                         
968
0014fc   516f     MOVF      0x6f,0x0,0x1                                                                                    
969
0014fe   5813     SUBWFB    0x13,0x0,0x0                                                                                    
970
001500   6e01     MOVWF     0x1,0x0                                                                                         
971
001502   5170     MOVF      0x70,0x0,0x1                                                                                    
972
001504   5814     SUBWFB    0x14,0x0,0x0                                                                                    
973
001506   6e02     MOVWF     0x2,0x0                                                                                         
974
001508   5171     MOVF      0x71,0x0,0x1                                                                                    
975
00150a   5815     SUBWFB    0x15,0x0,0x0                                                                                    
976
00150c   6e03     MOVWF     0x3,0x0                                                                                         
977
00150e   80d8     BSF       0xd8,0x0,0x0                                                                                    
978
001510   0e64     MOVLW     0x64                                                                                            
979
001512   5400     SUBFWB    0x0,0x0,0x0                                                                                     
980
001514   0e00     MOVLW     0x0                                                                                             
981
001516   5401     SUBFWB    0x1,0x0,0x0                                                                                     
982
001518   0e00     MOVLW     0x0                                                                                             
983
00151a   5402     SUBFWB    0x2,0x0,0x0                                                                                     
984
00151c   0e00     MOVLW     0x0                                                                                             
985
00151e   5403     SUBFWB    0x3,0x0,0x0                                                                                     
986
001520   e20b     BC        0x1538                                                                                          
85 johboh 987
                                           		{                                                                              F:\MCP\projects\CAN\canBase\Source\Main.c
87 johboh 988
001522   7282     BTG       0x82,0x1,0x0   			LED0_IO=~LED0_IO;                                                             F:\MCP\projects\CAN\canBase\Source\Main.c
89 johboh 989
001524   ec76     CALL      0x16ec,0x0     			t = tickGet();                                                                F:\MCP\projects\CAN\canBase\Source\Main.c
87 johboh 990
001526   f00b                                                                                                               
991
001528   c012     MOVFF     0x12,0x6e                                                                                       
992
00152a   f06e                                                                                                               
993
00152c   c013     MOVFF     0x13,0x6f                                                                                       
994
00152e   f06f                                                                                                               
995
001530   c014     MOVFF     0x14,0x70                                                                                       
996
001532   f070                                                                                                               
997
001534   c015     MOVFF     0x15,0x71                                                                                       
998
001536   f071                                                                                                               
85 johboh 999
                                           		}                                                                              F:\MCP\projects\CAN\canBase\Source\Main.c
1000
                                           	}                                                                               F:\MCP\projects\CAN\canBase\Source\Main.c
87 johboh 1001
00153a   0e0f     MOVLW     0xf            }                                                                                F:\MCP\projects\CAN\canBase\Source\Main.c
1002
00153c   5ce1     SUBWF     0xe1,0x0,0x0                                                                                    
1003
00153e   e202     BC        0x1544                                                                                          
1004
001540   6ae1     CLRF      0xe1,0x0                                                                                        
1005
001542   52e5     MOVF      0xe5,0x1,0x0                                                                                    
1006
001544   6ee1     MOVWF     0xe1,0x0                                                                                        
1007
001546   52e5     MOVF      0xe5,0x1,0x0                                                                                    
1008
001548   cfe7     MOVFF     0xfe7,0xfd9                                                                                     
1009
00154a   ffd9                                                                                                               
1010
00154c   0012     RETURN    0x0                                                                                             
85 johboh 1011
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Main.c
1012
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Main.c
1013
                                           #pragma interrupt high_isr                                                       F:\MCP\projects\CAN\canBase\Source\Main.c
87 johboh 1014
00154e   cfda     MOVFF     0xfda,0xfe4    void high_isr(void)                                                              F:\MCP\projects\CAN\canBase\Source\Main.c
1015
001550   ffe4                                                                                                               
1016
001552   cfe2     MOVFF     0xfe2,0xfda                                                                                     
1017
001554   ffda                                                                                                               
1018
001556   cfe9     MOVFF     0xfe9,0xfe4                                                                                     
1019
001558   ffe4                                                                                                               
1020
00155a   cfea     MOVFF     0xfea,0xfe4                                                                                     
1021
00155c   ffe4                                                                                                               
1022
00155e   cff6     MOVFF     0xff6,0xfe4                                                                                     
1023
001560   ffe4                                                                                                               
1024
001562   cff7     MOVFF     0xff7,0xfe4                                                                                     
1025
001564   ffe4                                                                                                               
1026
001566   cff5     MOVFF     0xff5,0xfe4                                                                                     
1027
001568   ffe4                                                                                                               
1028
00156a   cff3     MOVFF     0xff3,0xfe4                                                                                     
1029
00156c   ffe4                                                                                                               
1030
00156e   cff4     MOVFF     0xff4,0xfe4                                                                                     
1031
001570   ffe4                                                                                                               
1032
001572   cffa     MOVFF     0xffa,0xfe4                                                                                     
1033
001574   ffe4                                                                                                               
1034
001576   ee00     LFSR      0x0,0xe                                                                                         
1035
001578   f00e                                                                                                               
1036
00157a   0e0b     MOVLW     0xb                                                                                             
1037
00157c   04e8     DECF      0xe8,0x0,0x0                                                                                    
1038
00157e   e303     BNC       0x1586                                                                                          
1039
001580   cfee     MOVFF     0xfee,0xfe4                                                                                     
1040
001582   ffe4                                                                                                               
1041
001584   d7fb     BRA       0x157c                                                                                          
1042
001586   ee00     LFSR      0x0,0x0                                                                                         
1043
001588   f000                                                                                                               
1044
00158a   0e0e     MOVLW     0xe                                                                                             
1045
00158c   04e8     DECF      0xe8,0x0,0x0                                                                                    
1046
00158e   e303     BNC       0x1596                                                                                          
1047
001590   cfee     MOVFF     0xfee,0xfe4                                                                                     
1048
001592   ffe4                                                                                                               
1049
001594   d7fb     BRA       0x158c                                                                                          
1050
001596   52e6     MOVF      0xe6,0x1,0x0                                                                                    
85 johboh 1051
                                           {                                                                                F:\MCP\projects\CAN\canBase\Source\Main.c
89 johboh 1052
001598   0004     CLRWDT                   	ClrWdt();                                                                       F:\MCP\projects\CAN\canBase\Source\Main.c
85 johboh 1053
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Main.c
1054
                                           	#ifdef USE_CAN                                                                  F:\MCP\projects\CAN\canBase\Source\Main.c
89 johboh 1055
00159a   ec4d     CALL      0x109a,0x0     		canISR();                                                                      F:\MCP\projects\CAN\canBase\Source\Main.c
1056
00159c   f008                                                                                                               
85 johboh 1057
                                           	#endif                                                                          F:\MCP\projects\CAN\canBase\Source\Main.c
1058
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Main.c
89 johboh 1059
00159e   ec80     CALL      0x1700,0x0     	tickUpdate();                                                                   F:\MCP\projects\CAN\canBase\Source\Main.c
1060
0015a0   f00b                                                                                                               
85 johboh 1061
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Main.c
89 johboh 1062
0015a2   52e5     MOVF      0xe5,0x1,0x0   }                                                                                F:\MCP\projects\CAN\canBase\Source\Main.c
1063
0015a4   ee00     LFSR      0x0,0xd                                                                                         
1064
0015a6   f00d                                                                                                               
1065
0015a8   0e0e     MOVLW     0xe                                                                                             
1066
0015aa   04e8     DECF      0xe8,0x0,0x0                                                                                    
1067
0015ac   e303     BNC       0x15b4                                                                                          
1068
0015ae   cfe5     MOVFF     0xfe5,0xfed                                                                                     
1069
0015b0   ffed                                                                                                               
1070
0015b2   d7fb     BRA       0x15aa                                                                                          
1071
0015b4   ee00     LFSR      0x0,0x18                                                                                        
1072
0015b6   f018                                                                                                               
1073
0015b8   0e0b     MOVLW     0xb                                                                                             
1074
0015ba   04e8     DECF      0xe8,0x0,0x0                                                                                    
1075
0015bc   e303     BNC       0x15c4                                                                                          
1076
0015be   cfe5     MOVFF     0xfe5,0xfed                                                                                     
1077
0015c0   ffed                                                                                                               
1078
0015c2   d7fb     BRA       0x15ba                                                                                          
1079
0015c4   cfe5     MOVFF     0xfe5,0xffa                                                                                     
1080
0015c6   fffa                                                                                                               
1081
0015c8   cfe5     MOVFF     0xfe5,0xff4                                                                                     
1082
0015ca   fff4                                                                                                               
1083
0015cc   cfe5     MOVFF     0xfe5,0xff3                                                                                     
1084
0015ce   fff3                                                                                                               
1085
0015d0   cfe5     MOVFF     0xfe5,0xff5                                                                                     
1086
0015d2   fff5                                                                                                               
1087
0015d4   cfe5     MOVFF     0xfe5,0xff7                                                                                     
1088
0015d6   fff7                                                                                                               
1089
0015d8   cfe5     MOVFF     0xfe5,0xff6                                                                                     
1090
0015da   fff6                                                                                                               
1091
0015dc   cfe5     MOVFF     0xfe5,0xfea                                                                                     
1092
0015de   ffea                                                                                                               
1093
0015e0   cfe5     MOVFF     0xfe5,0xfe9                                                                                     
1094
0015e2   ffe9                                                                                                               
1095
0015e4   cfe5     MOVFF     0xfe5,0xfda                                                                                     
1096
0015e6   ffda                                                                                                               
1097
0015e8   0011     RETFIE    0x1                                                                                             
85 johboh 1098
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Main.c
89 johboh 1099
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Main.c
85 johboh 1100
                                           #pragma interrupt low_isr                                                        F:\MCP\projects\CAN\canBase\Source\Main.c
89 johboh 1101
0015ea   cfda     MOVFF     0xfda,0xfe4    void low_isr(void)                                                               F:\MCP\projects\CAN\canBase\Source\Main.c
1102
0015ec   ffe4                                                                                                               
1103
0015ee   cfe2     MOVFF     0xfe2,0xfda                                                                                     
1104
0015f0   ffda                                                                                                               
1105
0015f2   52e6     MOVF      0xe6,0x1,0x0                                                                                    
85 johboh 1106
                                           {                                                                                F:\MCP\projects\CAN\canBase\Source\Main.c
1107
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Main.c
89 johboh 1108
0015f4   52e5     MOVF      0xe5,0x1,0x0   }                                                                                F:\MCP\projects\CAN\canBase\Source\Main.c
1109
0015f6   cfe5     MOVFF     0xfe5,0xfda                                                                                     
1110
0015f8   ffda                                                                                                               
1111
0015fa   0011     RETFIE    0x1                                                                                             
85 johboh 1112
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Main.c
1113
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Main.c
1114
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Main.c
1115
                                           /*                                                                               F:\MCP\projects\CAN\canBase\Source\Main.c
1116
                                           *	Function: mainInit                                                             F:\MCP\projects\CAN\canBase\Source\Main.c
1117
                                           *                                                                                F:\MCP\projects\CAN\canBase\Source\Main.c
1118
                                           *	Input:	none                                                                    F:\MCP\projects\CAN\canBase\Source\Main.c
1119
                                           *	Output: none                                                                   F:\MCP\projects\CAN\canBase\Source\Main.c
1120
                                           *	Pre-conditions: none                                                           F:\MCP\projects\CAN\canBase\Source\Main.c
1121
                                           *	Affects: Se code                                                               F:\MCP\projects\CAN\canBase\Source\Main.c
1122
                                           *	Depends: none.                                                                 F:\MCP\projects\CAN\canBase\Source\Main.c
1123
                                           */                                                                               F:\MCP\projects\CAN\canBase\Source\Main.c
1124
                                           void mainInit()                                                                  F:\MCP\projects\CAN\canBase\Source\Main.c
1125
                                           {                                                                                F:\MCP\projects\CAN\canBase\Source\Main.c
89 johboh 1126
0015fc   9294     BCF       0x94,0x1,0x0   	LED0_TRIS=0;	                                                                   F:\MCP\projects\CAN\canBase\Source\Main.c
85 johboh 1127
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Main.c
1128
                                           	// Enable Interrupts                                                            F:\MCP\projects\CAN\canBase\Source\Main.c
89 johboh 1129
0015fe   8ef2     BSF       0xf2,0x7,0x0       INTCONbits.GIEH = 1;                                                         F:\MCP\projects\CAN\canBase\Source\Main.c
1130
001600   8cf2     BSF       0xf2,0x6,0x0       INTCONbits.GIEL = 1;                                                         F:\MCP\projects\CAN\canBase\Source\Main.c
85 johboh 1131
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Main.c
1132
                                           	// Enable interrupt prirority                                                   F:\MCP\projects\CAN\canBase\Source\Main.c
89 johboh 1133
001602   8ed0     BSF       0xd0,0x7,0x0   	RCONbits.IPEN=1;                                                                F:\MCP\projects\CAN\canBase\Source\Main.c
85 johboh 1134
                                           	                                                                                F:\MCP\projects\CAN\canBase\Source\Main.c
1135
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Main.c
89 johboh 1136
001604   0012     RETURN    0x0            }                                                                                F:\MCP\projects\CAN\canBase\Source\Main.c
85 johboh 1137
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Main.c
1138
                                           /*                                                                               F:\MCP\projects\CAN\canBase\Source\Main.c
1139
                                           *	Function: canParse                                                             F:\MCP\projects\CAN\canBase\Source\Main.c
1140
                                           *                                                                                F:\MCP\projects\CAN\canBase\Source\Main.c
1141
                                           *	Input:	Received can message                                                    F:\MCP\projects\CAN\canBase\Source\Main.c
1142
                                           *	Output: none                                                                   F:\MCP\projects\CAN\canBase\Source\Main.c
1143
                                           *	Pre-conditions: canInit and received packet.                                   F:\MCP\projects\CAN\canBase\Source\Main.c
1144
                                           *	Affects: Sensors/actuators/etc. See code.                                      F:\MCP\projects\CAN\canBase\Source\Main.c
1145
                                           *	Depends: none.                                                                 F:\MCP\projects\CAN\canBase\Source\Main.c
1146
                                           */                                                                               F:\MCP\projects\CAN\canBase\Source\Main.c
1147
                                           #ifdef USE_CAN                                                                   F:\MCP\projects\CAN\canBase\Source\Main.c
89 johboh 1148
001606   cfd9     MOVFF     0xfd9,0xfe6    void canParse(CAN_MESSAGE cm)                                                    F:\MCP\projects\CAN\canBase\Source\Main.c
1149
001608   ffe6                                                                                                               
1150
00160a   cfe1     MOVFF     0xfe1,0xfd9                                                                                     
1151
00160c   ffd9                                                                                                               
85 johboh 1152
                                           {                                                                                F:\MCP\projects\CAN\canBase\Source\Main.c
89 johboh 1153
00160e   0004     CLRWDT                   	ClrWdt();                                                                       F:\MCP\projects\CAN\canBase\Source\Main.c
1154
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Main.c
1155
001610   0ef0     MOVLW     0xf0           	switch(cm.funct)                                                                F:\MCP\projects\CAN\canBase\Source\Main.c
1156
001612   50db     MOVF      0xdb,0x0,0x0                                                                                    
1157
001614   e001     BZ        0x1618                                                                                          
1158
001616   d00d     BRA       0x1632                                                                                          
86 johboh 1159
                                           	{                                                                               F:\MCP\projects\CAN\canBase\Source\Main.c
1160
                                           		case FUNCT_BOOTLOADER:                                                         F:\MCP\projects\CAN\canBase\Source\Main.c
89 johboh 1161
001618   50d9     MOVF      0xd9,0x0,0x0   			if (cm.funcc==FUNCC_BOOT_INIT) { Reset(); }                                   F:\MCP\projects\CAN\canBase\Source\Main.c
1162
00161a   0ff1     ADDLW     0xf1                                                                                            
1163
00161c   6ee9     MOVWF     0xe9,0x0                                                                                        
1164
00161e   0eff     MOVLW     0xff                                                                                            
1165
001620   20da     ADDWFC    0xda,0x0,0x0                                                                                    
1166
001622   6eea     MOVWF     0xea,0x0                                                                                        
1167
001624   0e01     MOVLW     0x1                                                                                             
1168
001626   18ee     XORWF     0xee,0x0,0x0                                                                                    
87 johboh 1169
001628   e101     BNZ       0x162c                                                                                          
89 johboh 1170
00162a   50ed     MOVF      0xed,0x0,0x0                                                                                    
1171
00162c   e101     BNZ       0x1630                                                                                          
1172
00162e   00ff     RESET                                                                                                     
1173
001630   d000     BRA       0x1632         		break;                                                                         F:\MCP\projects\CAN\canBase\Source\Main.c
86 johboh 1174
                                           	}                                                                               F:\MCP\projects\CAN\canBase\Source\Main.c
89 johboh 1175
001632   52e5     MOVF      0xe5,0x1,0x0   }                                                                                F:\MCP\projects\CAN\canBase\Source\Main.c
1176
001634   cfe7     MOVFF     0xfe7,0xfd9                                                                                     
1177
001636   ffd9                                                                                                               
1178
001638   0012     RETURN    0x0                                                                                             
86 johboh 1179
                                           #endif                                                                           F:\MCP\projects\CAN\canBase\Source\Main.c
85 johboh 1180
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Main.c
1181
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Main.c
86 johboh 1182
                                           // Below are mandantory when using bootloader                                    F:\MCP\projects\CAN\canBase\Source\Main.c
1183
                                           // define DEBUG_MODE to use without bootloader.                                  F:\MCP\projects\CAN\canBase\Source\Main.c
85 johboh 1184
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Main.c
1185
                                           #ifndef DEBUG_MODE                                                               F:\MCP\projects\CAN\canBase\Source\Main.c
1186
                                           extern void _startup (void);                                                     F:\MCP\projects\CAN\canBase\Source\Main.c
1187
                                           #pragma code _RESET_INTERRUPT_VECTOR = 0x001000                                  F:\MCP\projects\CAN\canBase\Source\Main.c
1188
                                           void _reset (void)                                                               F:\MCP\projects\CAN\canBase\Source\Main.c
1189
                                           {                                                                                F:\MCP\projects\CAN\canBase\Source\Main.c
89 johboh 1190
001000   ef8e     GOTO      0x171c             _asm goto _startup _endasm                                                   F:\MCP\projects\CAN\canBase\Source\Main.c
86 johboh 1191
001002   f00b                                                                                                               
85 johboh 1192
001004   0012     RETURN    0x0            }                                                                                F:\MCP\projects\CAN\canBase\Source\Main.c
1193
                                           #pragma code                                                                     F:\MCP\projects\CAN\canBase\Source\Main.c
1194
                                           #endif                                                                           F:\MCP\projects\CAN\canBase\Source\Main.c
1195
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Main.c
1196
                                           #pragma code _HIGH_INTERRUPT_VECTOR = 0x001008                                   F:\MCP\projects\CAN\canBase\Source\Main.c
1197
                                           void _high_ISR (void)                                                            F:\MCP\projects\CAN\canBase\Source\Main.c
1198
                                           {                                                                                F:\MCP\projects\CAN\canBase\Source\Main.c
87 johboh 1199
001008   efa7     GOTO      0x154e         	_asm GOTO high_isr _endasm                                                      F:\MCP\projects\CAN\canBase\Source\Main.c
86 johboh 1200
00100a   f00a                                                                                                               
85 johboh 1201
00100c   0012     RETURN    0x0            }                                                                                F:\MCP\projects\CAN\canBase\Source\Main.c
1202
                                           #pragma code                                                                     F:\MCP\projects\CAN\canBase\Source\Main.c
1203
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Main.c
1204
                                           #pragma code _LOW_INTERRUPT_VECTOR = 0x001018                                    F:\MCP\projects\CAN\canBase\Source\Main.c
1205
                                           void _low_ISR (void)                                                             F:\MCP\projects\CAN\canBase\Source\Main.c
1206
                                           {                                                                                F:\MCP\projects\CAN\canBase\Source\Main.c
89 johboh 1207
001018   eff5     GOTO      0x15ea             _asm GOTO low_isr _endasm                                                    F:\MCP\projects\CAN\canBase\Source\Main.c
86 johboh 1208
00101a   f00a                                                                                                               
85 johboh 1209
00101c   0012     RETURN    0x0            }                                                                                F:\MCP\projects\CAN\canBase\Source\Main.c
1210
                                           #pragma code                                                                     F:\MCP\projects\CAN\canBase\Source\Main.c