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