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.
89 johboh 3
Listing File Generated: Tue Nov 14 11:41:55 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
89 johboh 864
                                            * Last changed:	$LastChangedDate: 2006-11-14 11:20: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
89 johboh 866
                                            * Revision:		$Revision: 87 $                                                    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
873
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Main.c
874
                                           #ifdef USE_CAN                                                                   F:\MCP\projects\CAN\canBase\Source\Main.c
875
                                           	#include <CAN.h>                                                                F:\MCP\projects\CAN\canBase\Source\Main.c
876
                                           #endif                                                                           F:\MCP\projects\CAN\canBase\Source\Main.c
877
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Main.c
878
                                           static void mainInit(void);                                                      F:\MCP\projects\CAN\canBase\Source\Main.c
879
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Main.c
880
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Main.c
87 johboh 881
001472   cfd9     MOVFF     0xfd9,0xfe6    void main()                                                                      F:\MCP\projects\CAN\canBase\Source\Main.c
882
001474   ffe6                                                                                                               
883
001476   cfe1     MOVFF     0xfe1,0xfd9                                                                                     
884
001478   ffd9                                                                                                               
885
00147a   0e0f     MOVLW     0xf                                                                                             
886
00147c   26e1     ADDWF     0xe1,0x1,0x0                                                                                    
85 johboh 887
                                           {                                                                                F:\MCP\projects\CAN\canBase\Source\Main.c
888
                                           	static TICK t = 0;                                                              F:\MCP\projects\CAN\canBase\Source\Main.c
87 johboh 889
                                           	CAN_MESSAGE cm2;                                                                F:\MCP\projects\CAN\canBase\Source\Main.c
85 johboh 890
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Main.c
891
                                           	// Inits                                                                        F:\MCP\projects\CAN\canBase\Source\Main.c
892
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Main.c
89 johboh 893
00147e   d8be     RCALL     0x15fc         	mainInit();                                                                     F:\MCP\projects\CAN\canBase\Source\Main.c
85 johboh 894
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Main.c
895
                                           	#ifdef USE_CAN                                                                  F:\MCP\projects\CAN\canBase\Source\Main.c
87 johboh 896
001480   ec22     CALL      0x1044,0x0     		canInit();                                                                     F:\MCP\projects\CAN\canBase\Source\Main.c
897
001482   f008                                                                                                               
85 johboh 898
                                           	#endif                                                                          F:\MCP\projects\CAN\canBase\Source\Main.c
899
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Main.c
89 johboh 900
001484   ec6c     CALL      0x16d8,0x0     	tickInit();                                                                     F:\MCP\projects\CAN\canBase\Source\Main.c
87 johboh 901
001486   f00b                                                                                                               
85 johboh 902
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Main.c
87 johboh 903
                                           	// Dummy bootmessage                                                            F:\MCP\projects\CAN\canBase\Source\Main.c
904
001488   0e91     MOVLW     0x91           	cm2.data[0]=0x91;                                                               F:\MCP\projects\CAN\canBase\Source\Main.c
905
00148a   6ef3     MOVWF     0xf3,0x0                                                                                        
906
00148c   0e07     MOVLW     0x7                                                                                             
907
00148e   cff3     MOVFF     0xff3,0xfdb                                                                                     
908
001490   ffdb                                                                                                               
909
001492   0e01     MOVLW     0x1            	cm2.data_length=1;                                                              F:\MCP\projects\CAN\canBase\Source\Main.c
910
001494   6ef3     MOVWF     0xf3,0x0                                                                                        
911
001496   0e06     MOVLW     0x6                                                                                             
912
001498   cff3     MOVFF     0xff3,0xfdb                                                                                     
913
00149a   ffdb                                                                                                               
914
00149c   0e02     MOVLW     0x2            	canSendMessage(cm2,PRIO_HIGH);                                                  F:\MCP\projects\CAN\canBase\Source\Main.c
915
00149e   6ee6     MOVWF     0xe6,0x0                                                                                        
916
0014a0   cfd9     MOVFF     0xfd9,0xfe9                                                                                     
917
0014a2   ffe9                                                                                                               
918
0014a4   cfda     MOVFF     0xfda,0xfea                                                                                     
919
0014a6   ffea                                                                                                               
920
0014a8   cfee     MOVFF     0xfee,0xfe6                                                                                     
921
0014aa   ffe6                                                                                                               
922
0014ac   cfee     MOVFF     0xfee,0xfe6                                                                                     
923
0014ae   ffe6                                                                                                               
924
0014b0   cfee     MOVFF     0xfee,0xfe6                                                                                     
925
0014b2   ffe6                                                                                                               
926
0014b4   cfee     MOVFF     0xfee,0xfe6                                                                                     
927
0014b6   ffe6                                                                                                               
928
0014b8   cfee     MOVFF     0xfee,0xfe6                                                                                     
929
0014ba   ffe6                                                                                                               
930
0014bc   cfee     MOVFF     0xfee,0xfe6                                                                                     
931
0014be   ffe6                                                                                                               
932
0014c0   cfee     MOVFF     0xfee,0xfe6                                                                                     
933
0014c2   ffe6                                                                                                               
934
0014c4   cfee     MOVFF     0xfee,0xfe6                                                                                     
935
0014c6   ffe6                                                                                                               
936
0014c8   cfee     MOVFF     0xfee,0xfe6                                                                                     
937
0014ca   ffe6                                                                                                               
938
0014cc   cfee     MOVFF     0xfee,0xfe6                                                                                     
939
0014ce   ffe6                                                                                                               
940
0014d0   cfee     MOVFF     0xfee,0xfe6                                                                                     
941
0014d2   ffe6                                                                                                               
942
0014d4   cfee     MOVFF     0xfee,0xfe6                                                                                     
943
0014d6   ffe6                                                                                                               
944
0014d8   cfee     MOVFF     0xfee,0xfe6                                                                                     
945
0014da   ffe6                                                                                                               
946
0014dc   cfee     MOVFF     0xfee,0xfe6                                                                                     
947
0014de   ffe6                                                                                                               
948
0014e0   cfee     MOVFF     0xfee,0xfe6                                                                                     
949
0014e2   ffe6                                                                                                               
950
0014e4   ec69     CALL      0x12d2,0x0                                                                                      
951
0014e6   f009                                                                                                               
952
0014e8   6e00     MOVWF     0x0,0x0                                                                                         
953
0014ea   0e10     MOVLW     0x10                                                                                            
954
0014ec   5ee1     SUBWF     0xe1,0x1,0x0                                                                                    
955
0014ee   5000     MOVF      0x0,0x0,0x0                                                                                     
956
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Main.c
957
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Main.c
958
001538   d7db     BRA       0x14f0         	while(1)                                                                        F:\MCP\projects\CAN\canBase\Source\Main.c
85 johboh 959
                                           	{                                                                               F:\MCP\projects\CAN\canBase\Source\Main.c
86 johboh 960
                                           		static TICK t = 0;                                                             F:\MCP\projects\CAN\canBase\Source\Main.c
89 johboh 961
0014f0   ec76     CALL      0x16ec,0x0     		if ((tickGet()-t)>TICK_SECOND)                                                 F:\MCP\projects\CAN\canBase\Source\Main.c
87 johboh 962
0014f2   f00b                                                                                                               
963
0014f4   0100     MOVLB     0x0                                                                                             
964
0014f6   516e     MOVF      0x6e,0x0,0x1                                                                                    
965
0014f8   5c12     SUBWF     0x12,0x0,0x0                                                                                    
966
0014fa   6e00     MOVWF     0x0,0x0                                                                                         
967
0014fc   516f     MOVF      0x6f,0x0,0x1                                                                                    
968
0014fe   5813     SUBWFB    0x13,0x0,0x0                                                                                    
969
001500   6e01     MOVWF     0x1,0x0                                                                                         
970
001502   5170     MOVF      0x70,0x0,0x1                                                                                    
971
001504   5814     SUBWFB    0x14,0x0,0x0                                                                                    
972
001506   6e02     MOVWF     0x2,0x0                                                                                         
973
001508   5171     MOVF      0x71,0x0,0x1                                                                                    
974
00150a   5815     SUBWFB    0x15,0x0,0x0                                                                                    
975
00150c   6e03     MOVWF     0x3,0x0                                                                                         
976
00150e   80d8     BSF       0xd8,0x0,0x0                                                                                    
977
001510   0e64     MOVLW     0x64                                                                                            
978
001512   5400     SUBFWB    0x0,0x0,0x0                                                                                     
979
001514   0e00     MOVLW     0x0                                                                                             
980
001516   5401     SUBFWB    0x1,0x0,0x0                                                                                     
981
001518   0e00     MOVLW     0x0                                                                                             
982
00151a   5402     SUBFWB    0x2,0x0,0x0                                                                                     
983
00151c   0e00     MOVLW     0x0                                                                                             
984
00151e   5403     SUBFWB    0x3,0x0,0x0                                                                                     
985
001520   e20b     BC        0x1538                                                                                          
85 johboh 986
                                           		{                                                                              F:\MCP\projects\CAN\canBase\Source\Main.c
87 johboh 987
001522   7282     BTG       0x82,0x1,0x0   			LED0_IO=~LED0_IO;                                                             F:\MCP\projects\CAN\canBase\Source\Main.c
89 johboh 988
001524   ec76     CALL      0x16ec,0x0     			t = tickGet();                                                                F:\MCP\projects\CAN\canBase\Source\Main.c
87 johboh 989
001526   f00b                                                                                                               
990
001528   c012     MOVFF     0x12,0x6e                                                                                       
991
00152a   f06e                                                                                                               
992
00152c   c013     MOVFF     0x13,0x6f                                                                                       
993
00152e   f06f                                                                                                               
994
001530   c014     MOVFF     0x14,0x70                                                                                       
995
001532   f070                                                                                                               
996
001534   c015     MOVFF     0x15,0x71                                                                                       
997
001536   f071                                                                                                               
85 johboh 998
                                           		}                                                                              F:\MCP\projects\CAN\canBase\Source\Main.c
999
                                           	}                                                                               F:\MCP\projects\CAN\canBase\Source\Main.c
87 johboh 1000
00153a   0e0f     MOVLW     0xf            }                                                                                F:\MCP\projects\CAN\canBase\Source\Main.c
1001
00153c   5ce1     SUBWF     0xe1,0x0,0x0                                                                                    
1002
00153e   e202     BC        0x1544                                                                                          
1003
001540   6ae1     CLRF      0xe1,0x0                                                                                        
1004
001542   52e5     MOVF      0xe5,0x1,0x0                                                                                    
1005
001544   6ee1     MOVWF     0xe1,0x0                                                                                        
1006
001546   52e5     MOVF      0xe5,0x1,0x0                                                                                    
1007
001548   cfe7     MOVFF     0xfe7,0xfd9                                                                                     
1008
00154a   ffd9                                                                                                               
1009
00154c   0012     RETURN    0x0                                                                                             
85 johboh 1010
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Main.c
1011
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Main.c
1012
                                           #pragma interrupt high_isr                                                       F:\MCP\projects\CAN\canBase\Source\Main.c
87 johboh 1013
00154e   cfda     MOVFF     0xfda,0xfe4    void high_isr(void)                                                              F:\MCP\projects\CAN\canBase\Source\Main.c
1014
001550   ffe4                                                                                                               
1015
001552   cfe2     MOVFF     0xfe2,0xfda                                                                                     
1016
001554   ffda                                                                                                               
1017
001556   cfe9     MOVFF     0xfe9,0xfe4                                                                                     
1018
001558   ffe4                                                                                                               
1019
00155a   cfea     MOVFF     0xfea,0xfe4                                                                                     
1020
00155c   ffe4                                                                                                               
1021
00155e   cff6     MOVFF     0xff6,0xfe4                                                                                     
1022
001560   ffe4                                                                                                               
1023
001562   cff7     MOVFF     0xff7,0xfe4                                                                                     
1024
001564   ffe4                                                                                                               
1025
001566   cff5     MOVFF     0xff5,0xfe4                                                                                     
1026
001568   ffe4                                                                                                               
1027
00156a   cff3     MOVFF     0xff3,0xfe4                                                                                     
1028
00156c   ffe4                                                                                                               
1029
00156e   cff4     MOVFF     0xff4,0xfe4                                                                                     
1030
001570   ffe4                                                                                                               
1031
001572   cffa     MOVFF     0xffa,0xfe4                                                                                     
1032
001574   ffe4                                                                                                               
1033
001576   ee00     LFSR      0x0,0xe                                                                                         
1034
001578   f00e                                                                                                               
1035
00157a   0e0b     MOVLW     0xb                                                                                             
1036
00157c   04e8     DECF      0xe8,0x0,0x0                                                                                    
1037
00157e   e303     BNC       0x1586                                                                                          
1038
001580   cfee     MOVFF     0xfee,0xfe4                                                                                     
1039
001582   ffe4                                                                                                               
1040
001584   d7fb     BRA       0x157c                                                                                          
1041
001586   ee00     LFSR      0x0,0x0                                                                                         
1042
001588   f000                                                                                                               
1043
00158a   0e0e     MOVLW     0xe                                                                                             
1044
00158c   04e8     DECF      0xe8,0x0,0x0                                                                                    
1045
00158e   e303     BNC       0x1596                                                                                          
1046
001590   cfee     MOVFF     0xfee,0xfe4                                                                                     
1047
001592   ffe4                                                                                                               
1048
001594   d7fb     BRA       0x158c                                                                                          
1049
001596   52e6     MOVF      0xe6,0x1,0x0                                                                                    
85 johboh 1050
                                           {                                                                                F:\MCP\projects\CAN\canBase\Source\Main.c
89 johboh 1051
001598   0004     CLRWDT                   	ClrWdt();                                                                       F:\MCP\projects\CAN\canBase\Source\Main.c
85 johboh 1052
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Main.c
1053
                                           	#ifdef USE_CAN                                                                  F:\MCP\projects\CAN\canBase\Source\Main.c
89 johboh 1054
00159a   ec4d     CALL      0x109a,0x0     		canISR();                                                                      F:\MCP\projects\CAN\canBase\Source\Main.c
1055
00159c   f008                                                                                                               
85 johboh 1056
                                           	#endif                                                                          F:\MCP\projects\CAN\canBase\Source\Main.c
1057
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Main.c
89 johboh 1058
00159e   ec80     CALL      0x1700,0x0     	tickUpdate();                                                                   F:\MCP\projects\CAN\canBase\Source\Main.c
1059
0015a0   f00b                                                                                                               
85 johboh 1060
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Main.c
89 johboh 1061
0015a2   52e5     MOVF      0xe5,0x1,0x0   }                                                                                F:\MCP\projects\CAN\canBase\Source\Main.c
1062
0015a4   ee00     LFSR      0x0,0xd                                                                                         
1063
0015a6   f00d                                                                                                               
1064
0015a8   0e0e     MOVLW     0xe                                                                                             
1065
0015aa   04e8     DECF      0xe8,0x0,0x0                                                                                    
1066
0015ac   e303     BNC       0x15b4                                                                                          
1067
0015ae   cfe5     MOVFF     0xfe5,0xfed                                                                                     
1068
0015b0   ffed                                                                                                               
1069
0015b2   d7fb     BRA       0x15aa                                                                                          
1070
0015b4   ee00     LFSR      0x0,0x18                                                                                        
1071
0015b6   f018                                                                                                               
1072
0015b8   0e0b     MOVLW     0xb                                                                                             
1073
0015ba   04e8     DECF      0xe8,0x0,0x0                                                                                    
1074
0015bc   e303     BNC       0x15c4                                                                                          
1075
0015be   cfe5     MOVFF     0xfe5,0xfed                                                                                     
1076
0015c0   ffed                                                                                                               
1077
0015c2   d7fb     BRA       0x15ba                                                                                          
1078
0015c4   cfe5     MOVFF     0xfe5,0xffa                                                                                     
1079
0015c6   fffa                                                                                                               
1080
0015c8   cfe5     MOVFF     0xfe5,0xff4                                                                                     
1081
0015ca   fff4                                                                                                               
1082
0015cc   cfe5     MOVFF     0xfe5,0xff3                                                                                     
1083
0015ce   fff3                                                                                                               
1084
0015d0   cfe5     MOVFF     0xfe5,0xff5                                                                                     
1085
0015d2   fff5                                                                                                               
1086
0015d4   cfe5     MOVFF     0xfe5,0xff7                                                                                     
1087
0015d6   fff7                                                                                                               
1088
0015d8   cfe5     MOVFF     0xfe5,0xff6                                                                                     
1089
0015da   fff6                                                                                                               
1090
0015dc   cfe5     MOVFF     0xfe5,0xfea                                                                                     
1091
0015de   ffea                                                                                                               
1092
0015e0   cfe5     MOVFF     0xfe5,0xfe9                                                                                     
1093
0015e2   ffe9                                                                                                               
1094
0015e4   cfe5     MOVFF     0xfe5,0xfda                                                                                     
1095
0015e6   ffda                                                                                                               
1096
0015e8   0011     RETFIE    0x1                                                                                             
85 johboh 1097
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Main.c
89 johboh 1098
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Main.c
85 johboh 1099
                                           #pragma interrupt low_isr                                                        F:\MCP\projects\CAN\canBase\Source\Main.c
89 johboh 1100
0015ea   cfda     MOVFF     0xfda,0xfe4    void low_isr(void)                                                               F:\MCP\projects\CAN\canBase\Source\Main.c
1101
0015ec   ffe4                                                                                                               
1102
0015ee   cfe2     MOVFF     0xfe2,0xfda                                                                                     
1103
0015f0   ffda                                                                                                               
1104
0015f2   52e6     MOVF      0xe6,0x1,0x0                                                                                    
85 johboh 1105
                                           {                                                                                F:\MCP\projects\CAN\canBase\Source\Main.c
1106
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Main.c
89 johboh 1107
0015f4   52e5     MOVF      0xe5,0x1,0x0   }                                                                                F:\MCP\projects\CAN\canBase\Source\Main.c
1108
0015f6   cfe5     MOVFF     0xfe5,0xfda                                                                                     
1109
0015f8   ffda                                                                                                               
1110
0015fa   0011     RETFIE    0x1                                                                                             
85 johboh 1111
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Main.c
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
                                           *	Function: mainInit                                                             F:\MCP\projects\CAN\canBase\Source\Main.c
1116
                                           *                                                                                F:\MCP\projects\CAN\canBase\Source\Main.c
1117
                                           *	Input:	none                                                                    F:\MCP\projects\CAN\canBase\Source\Main.c
1118
                                           *	Output: none                                                                   F:\MCP\projects\CAN\canBase\Source\Main.c
1119
                                           *	Pre-conditions: none                                                           F:\MCP\projects\CAN\canBase\Source\Main.c
1120
                                           *	Affects: Se code                                                               F:\MCP\projects\CAN\canBase\Source\Main.c
1121
                                           *	Depends: none.                                                                 F:\MCP\projects\CAN\canBase\Source\Main.c
1122
                                           */                                                                               F:\MCP\projects\CAN\canBase\Source\Main.c
1123
                                           void mainInit()                                                                  F:\MCP\projects\CAN\canBase\Source\Main.c
1124
                                           {                                                                                F:\MCP\projects\CAN\canBase\Source\Main.c
89 johboh 1125
0015fc   9294     BCF       0x94,0x1,0x0   	LED0_TRIS=0;	                                                                   F:\MCP\projects\CAN\canBase\Source\Main.c
85 johboh 1126
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Main.c
1127
                                           	// Enable Interrupts                                                            F:\MCP\projects\CAN\canBase\Source\Main.c
89 johboh 1128
0015fe   8ef2     BSF       0xf2,0x7,0x0       INTCONbits.GIEH = 1;                                                         F:\MCP\projects\CAN\canBase\Source\Main.c
1129
001600   8cf2     BSF       0xf2,0x6,0x0       INTCONbits.GIEL = 1;                                                         F:\MCP\projects\CAN\canBase\Source\Main.c
85 johboh 1130
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Main.c
1131
                                           	// Enable interrupt prirority                                                   F:\MCP\projects\CAN\canBase\Source\Main.c
89 johboh 1132
001602   8ed0     BSF       0xd0,0x7,0x0   	RCONbits.IPEN=1;                                                                F:\MCP\projects\CAN\canBase\Source\Main.c
85 johboh 1133
                                           	                                                                                F:\MCP\projects\CAN\canBase\Source\Main.c
1134
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Main.c
89 johboh 1135
001604   0012     RETURN    0x0            }                                                                                F:\MCP\projects\CAN\canBase\Source\Main.c
85 johboh 1136
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Main.c
1137
                                           /*                                                                               F:\MCP\projects\CAN\canBase\Source\Main.c
1138
                                           *	Function: canParse                                                             F:\MCP\projects\CAN\canBase\Source\Main.c
1139
                                           *                                                                                F:\MCP\projects\CAN\canBase\Source\Main.c
1140
                                           *	Input:	Received can message                                                    F:\MCP\projects\CAN\canBase\Source\Main.c
1141
                                           *	Output: none                                                                   F:\MCP\projects\CAN\canBase\Source\Main.c
1142
                                           *	Pre-conditions: canInit and received packet.                                   F:\MCP\projects\CAN\canBase\Source\Main.c
1143
                                           *	Affects: Sensors/actuators/etc. See code.                                      F:\MCP\projects\CAN\canBase\Source\Main.c
1144
                                           *	Depends: none.                                                                 F:\MCP\projects\CAN\canBase\Source\Main.c
1145
                                           */                                                                               F:\MCP\projects\CAN\canBase\Source\Main.c
1146
                                           #ifdef USE_CAN                                                                   F:\MCP\projects\CAN\canBase\Source\Main.c
89 johboh 1147
001606   cfd9     MOVFF     0xfd9,0xfe6    void canParse(CAN_MESSAGE cm)                                                    F:\MCP\projects\CAN\canBase\Source\Main.c
1148
001608   ffe6                                                                                                               
1149
00160a   cfe1     MOVFF     0xfe1,0xfd9                                                                                     
1150
00160c   ffd9                                                                                                               
85 johboh 1151
                                           {                                                                                F:\MCP\projects\CAN\canBase\Source\Main.c
89 johboh 1152
00160e   0004     CLRWDT                   	ClrWdt();                                                                       F:\MCP\projects\CAN\canBase\Source\Main.c
1153
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Main.c
1154
001610   0ef0     MOVLW     0xf0           	switch(cm.funct)                                                                F:\MCP\projects\CAN\canBase\Source\Main.c
1155
001612   50db     MOVF      0xdb,0x0,0x0                                                                                    
1156
001614   e001     BZ        0x1618                                                                                          
1157
001616   d00d     BRA       0x1632                                                                                          
86 johboh 1158
                                           	{                                                                               F:\MCP\projects\CAN\canBase\Source\Main.c
1159
                                           		case FUNCT_BOOTLOADER:                                                         F:\MCP\projects\CAN\canBase\Source\Main.c
89 johboh 1160
001618   50d9     MOVF      0xd9,0x0,0x0   			if (cm.funcc==FUNCC_BOOT_INIT) { Reset(); }                                   F:\MCP\projects\CAN\canBase\Source\Main.c
1161
00161a   0ff1     ADDLW     0xf1                                                                                            
1162
00161c   6ee9     MOVWF     0xe9,0x0                                                                                        
1163
00161e   0eff     MOVLW     0xff                                                                                            
1164
001620   20da     ADDWFC    0xda,0x0,0x0                                                                                    
1165
001622   6eea     MOVWF     0xea,0x0                                                                                        
1166
001624   0e01     MOVLW     0x1                                                                                             
1167
001626   18ee     XORWF     0xee,0x0,0x0                                                                                    
87 johboh 1168
001628   e101     BNZ       0x162c                                                                                          
89 johboh 1169
00162a   50ed     MOVF      0xed,0x0,0x0                                                                                    
1170
00162c   e101     BNZ       0x1630                                                                                          
1171
00162e   00ff     RESET                                                                                                     
1172
001630   d000     BRA       0x1632         		break;                                                                         F:\MCP\projects\CAN\canBase\Source\Main.c
86 johboh 1173
                                           	}                                                                               F:\MCP\projects\CAN\canBase\Source\Main.c
89 johboh 1174
001632   52e5     MOVF      0xe5,0x1,0x0   }                                                                                F:\MCP\projects\CAN\canBase\Source\Main.c
1175
001634   cfe7     MOVFF     0xfe7,0xfd9                                                                                     
1176
001636   ffd9                                                                                                               
1177
001638   0012     RETURN    0x0                                                                                             
86 johboh 1178
                                           #endif                                                                           F:\MCP\projects\CAN\canBase\Source\Main.c
85 johboh 1179
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Main.c
1180
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Main.c
86 johboh 1181
                                           // Below are mandantory when using bootloader                                    F:\MCP\projects\CAN\canBase\Source\Main.c
1182
                                           // define DEBUG_MODE to use without bootloader.                                  F:\MCP\projects\CAN\canBase\Source\Main.c
85 johboh 1183
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Main.c
1184
                                           #ifndef DEBUG_MODE                                                               F:\MCP\projects\CAN\canBase\Source\Main.c
1185
                                           extern void _startup (void);                                                     F:\MCP\projects\CAN\canBase\Source\Main.c
1186
                                           #pragma code _RESET_INTERRUPT_VECTOR = 0x001000                                  F:\MCP\projects\CAN\canBase\Source\Main.c
1187
                                           void _reset (void)                                                               F:\MCP\projects\CAN\canBase\Source\Main.c
1188
                                           {                                                                                F:\MCP\projects\CAN\canBase\Source\Main.c
89 johboh 1189
001000   ef8e     GOTO      0x171c             _asm goto _startup _endasm                                                   F:\MCP\projects\CAN\canBase\Source\Main.c
86 johboh 1190
001002   f00b                                                                                                               
85 johboh 1191
001004   0012     RETURN    0x0            }                                                                                F:\MCP\projects\CAN\canBase\Source\Main.c
1192
                                           #pragma code                                                                     F:\MCP\projects\CAN\canBase\Source\Main.c
1193
                                           #endif                                                                           F:\MCP\projects\CAN\canBase\Source\Main.c
1194
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Main.c
1195
                                           #pragma code _HIGH_INTERRUPT_VECTOR = 0x001008                                   F:\MCP\projects\CAN\canBase\Source\Main.c
1196
                                           void _high_ISR (void)                                                            F:\MCP\projects\CAN\canBase\Source\Main.c
1197
                                           {                                                                                F:\MCP\projects\CAN\canBase\Source\Main.c
87 johboh 1198
001008   efa7     GOTO      0x154e         	_asm GOTO high_isr _endasm                                                      F:\MCP\projects\CAN\canBase\Source\Main.c
86 johboh 1199
00100a   f00a                                                                                                               
85 johboh 1200
00100c   0012     RETURN    0x0            }                                                                                F:\MCP\projects\CAN\canBase\Source\Main.c
1201
                                           #pragma code                                                                     F:\MCP\projects\CAN\canBase\Source\Main.c
1202
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Main.c
1203
                                           #pragma code _LOW_INTERRUPT_VECTOR = 0x001018                                    F:\MCP\projects\CAN\canBase\Source\Main.c
1204
                                           void _low_ISR (void)                                                             F:\MCP\projects\CAN\canBase\Source\Main.c
1205
                                           {                                                                                F:\MCP\projects\CAN\canBase\Source\Main.c
89 johboh 1206
001018   eff5     GOTO      0x15ea             _asm GOTO low_isr _endasm                                                    F:\MCP\projects\CAN\canBase\Source\Main.c
86 johboh 1207
00101a   f00a                                                                                                               
85 johboh 1208
00101c   0012     RETURN    0x0            }                                                                                F:\MCP\projects\CAN\canBase\Source\Main.c
1209
                                           #pragma code                                                                     F:\MCP\projects\CAN\canBase\Source\Main.c