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.
108 johboh 3
Listing File Generated: Wed Nov 15 17:30:42 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
108 johboh 74
001942   0e79     MOVLW     0x79               TMR0L = TICK_COUNTER_LOW;                                                    F:\MCP\projects\CAN\canBase\Source\Tick.c
75
001944   6ed6     MOVWF     0xd6,0x0                                                                                        
76
001946   0efe     MOVLW     0xfe               TMR0H = TICK_COUNTER_HIGH;                                                   F:\MCP\projects\CAN\canBase\Source\Tick.c
77
001948   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
108 johboh 80
00194a   0e07     MOVLW     0x7                T0CON = 0b00000000 | TIMER_PRESCALE;                                         F:\MCP\projects\CAN\canBase\Source\Tick.c
81
00194c   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
108 johboh 84
00194e   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
108 johboh 86
001950   84f2     BSF       0xf2,0x2,0x0       INTCONbits.TMR0IF = 1;                                                       F:\MCP\projects\CAN\canBase\Source\Tick.c
87
001952   8af2     BSF       0xf2,0x5,0x0       INTCONbits.TMR0IE = 1;                                                       F:\MCP\projects\CAN\canBase\Source\Tick.c
88
001954   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
108 johboh 101
001956   c079     MOVFF     0x79,0x12          return TickCount;                                                            F:\MCP\projects\CAN\canBase\Source\Tick.c
102
001958   f012                                                                                                               
103
00195a   c07a     MOVFF     0x7a,0x13                                                                                       
104
00195c   f013                                                                                                               
105
00195e   c07b     MOVFF     0x7b,0x14                                                                                       
106
001960   f014                                                                                                               
107
001962   c07c     MOVFF     0x7c,0x15                                                                                       
108
001964   f015                                                                                                               
109
001966   d000     BRA       0x1968                                                                                          
110
001968   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
108 johboh 124
00196a   a4f2     BTFSS     0xf2,0x2,0x0       if(INTCONbits.TMR0IF)                                                        F:\MCP\projects\CAN\canBase\Source\Tick.c
125
00196c   d00b     BRA       0x1984                                                                                          
85 johboh 126
                                               {                                                                            F:\MCP\projects\CAN\canBase\Source\Tick.c
108 johboh 127
00196e   0efe     MOVLW     0xfe                   TMR0H = TICK_COUNTER_HIGH;                                               F:\MCP\projects\CAN\canBase\Source\Tick.c
128
001970   6ed7     MOVWF     0xd7,0x0                                                                                        
129
001972   0e79     MOVLW     0x79                   TMR0L = TICK_COUNTER_LOW;                                                F:\MCP\projects\CAN\canBase\Source\Tick.c
130
001974   6ed6     MOVWF     0xd6,0x0                                                                                        
85 johboh 131
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Tick.c
108 johboh 132
001976   0100     MOVLB     0x0                    TickCount++;                                                             F:\MCP\projects\CAN\canBase\Source\Tick.c
133
001978   2b79     INCF      0x79,0x1,0x1                                                                                    
134
00197a   0e00     MOVLW     0x0                                                                                             
135
00197c   237a     ADDWFC    0x7a,0x1,0x1                                                                                    
136
00197e   237b     ADDWFC    0x7b,0x1,0x1                                                                                    
137
001980   237c     ADDWFC    0x7c,0x1,0x1                                                                                    
85 johboh 138
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Tick.c
108 johboh 139
001982   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
108 johboh 141
001984   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
100 johboh 148
                                            * Last changed:	$LastChangedDate: 2006-11-14 21:11:28 +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
100 johboh 150
                                            * Revision:		$Revision: 95 $                                                    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
108 johboh 173
00142c   0e80     MOVLW     0x80           	CANCON = 0x80; //request config mode                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
174
00142e   6e6f     MOVWF     0x6f,0x0                                                                                        
175
001430   0ee0     MOVLW     0xe0           	while ((CANSTAT & 0xE0) != 0x80 ); //wait for config mode request               F:\MCP\projects\CAN\canBase\Source\CAN.c
176
001432   146e     ANDWF     0x6e,0x0,0x0                                                                                    
177
001434   0880     SUBLW     0x80                                                                                            
178
001436   e001     BZ        0x143a                                                                                          
179
001438   d7fb     BRA       0x1430                                                                                          
85 johboh 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
108 johboh 183
00143a   6a70     CLRF      0x70,0x0       	BRGCON1=0;                                                                      F:\MCP\projects\CAN\canBase\Source\CAN.c
85 johboh 184
                                           	                                                                                F:\MCP\projects\CAN\canBase\Source\CAN.c
185
                                           	// Sync_Seq = 2 x TQ = 1                                                        F:\MCP\projects\CAN\canBase\Source\CAN.c
108 johboh 186
00143c   9e70     BCF       0x70,0x7,0x0   	BRGCON1bits.SJW1=0;                                                             F:\MCP\projects\CAN\canBase\Source\CAN.c
187
00143e   8c70     BSF       0x70,0x6,0x0   	BRGCON1bits.SJW0=1;                                                             F:\MCP\projects\CAN\canBase\Source\CAN.c
85 johboh 188
                                           	                                                                                F:\MCP\projects\CAN\canBase\Source\CAN.c
189
                                           	// Setting BRP.                                                                 F:\MCP\projects\CAN\canBase\Source\CAN.c
108 johboh 190
001440   0e04     MOVLW     0x4            	BRGCON1=BRGCON1|CAN_BRP;                                                        F:\MCP\projects\CAN\canBase\Source\CAN.c
191
001442   1070     IORWF     0x70,0x0,0x0                                                                                    
192
001444   6e70     MOVWF     0x70,0x0                                                                                        
85 johboh 193
                                           	                                                                                F:\MCP\projects\CAN\canBase\Source\CAN.c
194
                                           	// Maximum PHEG1                                                                F:\MCP\projects\CAN\canBase\Source\CAN.c
108 johboh 195
001446   8e71     BSF       0x71,0x7,0x0   	BRGCON2bits.SEG2PHTS = 1;                                                       F:\MCP\projects\CAN\canBase\Source\CAN.c
85 johboh 196
                                           	                                                                                F:\MCP\projects\CAN\canBase\Source\CAN.c
197
                                           	// Phase_Seg1 = 2 x TQ = 1                                                      F:\MCP\projects\CAN\canBase\Source\CAN.c
108 johboh 198
001448   9a71     BCF       0x71,0x5,0x0   	BRGCON2bits.SEG1PH2 = 0;                                                        F:\MCP\projects\CAN\canBase\Source\CAN.c
199
00144a   9871     BCF       0x71,0x4,0x0   	BRGCON2bits.SEG1PH1 = 0;                                                        F:\MCP\projects\CAN\canBase\Source\CAN.c
200
00144c   8671     BSF       0x71,0x3,0x0   	BRGCON2bits.SEG1PH0 = 1;                                                        F:\MCP\projects\CAN\canBase\Source\CAN.c
85 johboh 201
                                           	                                                                                F:\MCP\projects\CAN\canBase\Source\CAN.c
202
                                           	// Prop_Seq = 2 x TQ = 1                                                        F:\MCP\projects\CAN\canBase\Source\CAN.c
108 johboh 203
00144e   9471     BCF       0x71,0x2,0x0   	BRGCON2bits.PRSEG2 = 0;                                                         F:\MCP\projects\CAN\canBase\Source\CAN.c
204
001450   9271     BCF       0x71,0x1,0x0   	BRGCON2bits.PRSEG1 = 0;                                                         F:\MCP\projects\CAN\canBase\Source\CAN.c
205
001452   8071     BSF       0x71,0x0,0x0   	BRGCON2bits.PRSEG0 = 1;                                                         F:\MCP\projects\CAN\canBase\Source\CAN.c
85 johboh 206
                                           	                                                                                F:\MCP\projects\CAN\canBase\Source\CAN.c
207
                                           	//  Enableing bus wake-up                                                       F:\MCP\projects\CAN\canBase\Source\CAN.c
108 johboh 208
001454   9e72     BCF       0x72,0x7,0x0   	BRGCON3bits.WAKDIS = 0;                                                         F:\MCP\projects\CAN\canBase\Source\CAN.c
85 johboh 209
                                           	                                                                                F:\MCP\projects\CAN\canBase\Source\CAN.c
210
                                           	// Dont use filter when wakeup                                                  F:\MCP\projects\CAN\canBase\Source\CAN.c
108 johboh 211
001456   9c72     BCF       0x72,0x6,0x0   	BRGCON3bits.WAKFIL = 0;                                                         F:\MCP\projects\CAN\canBase\Source\CAN.c
85 johboh 212
                                           	                                                                                F:\MCP\projects\CAN\canBase\Source\CAN.c
213
                                           	// Phase_Seg2 = 2 x TQ = 1                                                      F:\MCP\projects\CAN\canBase\Source\CAN.c
108 johboh 214
001458   9472     BCF       0x72,0x2,0x0   	BRGCON3bits.SEG2PH2 = 0;                                                        F:\MCP\projects\CAN\canBase\Source\CAN.c
215
00145a   9272     BCF       0x72,0x1,0x0   	BRGCON3bits.SEG2PH1 = 0;                                                        F:\MCP\projects\CAN\canBase\Source\CAN.c
216
00145c   8072     BSF       0x72,0x0,0x0   	BRGCON3bits.SEG2PH0 = 1;                                                        F:\MCP\projects\CAN\canBase\Source\CAN.c
85 johboh 217
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
108 johboh 218
00145e   6a77     CLRF      0x77,0x0       	ECANCON=0;                                                                      F:\MCP\projects\CAN\canBase\Source\CAN.c
219
001460   8e77     BSF       0x77,0x7,0x0   	ECANCONbits.MDSEL1 = 1; // 0  For mode 1                                        F:\MCP\projects\CAN\canBase\Source\CAN.c
220
001462   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
108 johboh 224
001464   8c60     BSF       0x60,0x6,0x0   	RXB0CONbits.RXM1=1;                                                             F:\MCP\projects\CAN\canBase\Source\CAN.c
225
001466   9a60     BCF       0x60,0x5,0x0   	RXB0CONbits.RXM0=0;                                                             F:\MCP\projects\CAN\canBase\Source\CAN.c
85 johboh 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
108 johboh 231
001468   010d     MOVLB     0xd            	TXBIE = 0;                                                                      F:\MCP\projects\CAN\canBase\Source\CAN.c
232
00146a   6bfc     CLRF      0xfc,0x1                                                                                        
85 johboh 233
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
234
                                           	//rx any interrupt                                                              F:\MCP\projects\CAN\canBase\Source\CAN.c
108 johboh 235
00146c   6aa4     CLRF      0xa4,0x0       	PIR3 = 0;                                                                       F:\MCP\projects\CAN\canBase\Source\CAN.c
236
00146e   0e03     MOVLW     0x3            	PIE3 = 0b00000011;                                                              F:\MCP\projects\CAN\canBase\Source\CAN.c
237
001470   6ea3     MOVWF     0xa3,0x0                                                                                        
85 johboh 238
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
239
                                           	// High interrupt                                                               F:\MCP\projects\CAN\canBase\Source\CAN.c
108 johboh 240
001472   6ea5     MOVWF     0xa5,0x0       	IPR3 =0b00000011;                                                               F:\MCP\projects\CAN\canBase\Source\CAN.c
85 johboh 241
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
242
                                           	// Programmable buffers interrupt                                               F:\MCP\projects\CAN\canBase\Source\CAN.c
108 johboh 243
001474   69fa     SETF      0xfa,0x1       	BIE0  = 0xFF;	                                                                  F:\MCP\projects\CAN\canBase\Source\CAN.c
85 johboh 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
108 johboh 251
001476   6a6f     CLRF      0x6f,0x0       		CANCON = 0x00;//request normal mode                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
252
001478   0ee0     MOVLW     0xe0           		while ((CANSTAT & 0xE0) != 0x00 );//wait for normal mode                       F:\MCP\projects\CAN\canBase\Source\CAN.c
253
00147a   146e     ANDWF     0x6e,0x0,0x0                                                                                    
254
00147c   e001     BZ        0x1480                                                                                          
255
00147e   d7fc     BRA       0x1478                                                                                          
85 johboh 256
                                           	#endif                                                                          F:\MCP\projects\CAN\canBase\Source\CAN.c
257
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
108 johboh 258
001480   0012     RETURN    0x0            }                                                                                F:\MCP\projects\CAN\canBase\Source\CAN.c
85 johboh 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
108 johboh 272
001482   50a4     MOVF      0xa4,0x0,0x0   	if (PIR3bits.RXBnIF || PIR3bits.RXB1IF || PIR3bits.RXB0IF)                      F:\MCP\projects\CAN\canBase\Source\CAN.c
273
001484   0b02     ANDLW     0x2                                                                                             
274
001486   e106     BNZ       0x1494                                                                                          
275
001488   50a4     MOVF      0xa4,0x0,0x0                                                                                    
276
00148a   0b02     ANDLW     0x2                                                                                             
277
00148c   e103     BNZ       0x1494                                                                                          
278
00148e   50a4     MOVF      0xa4,0x0,0x0                                                                                    
279
001490   0b01     ANDLW     0x1                                                                                             
280
001492   e016     BZ        0x14c0                                                                                          
85 johboh 281
                                           	{                                                                               F:\MCP\projects\CAN\canBase\Source\CAN.c
108 johboh 282
001494   0e0f     MOVLW     0xf            		ECANCON=(ECANCON&0b00000)|(0b10000|(CANCON&0x0F));                             F:\MCP\projects\CAN\canBase\Source\CAN.c
283
001496   146f     ANDWF     0x6f,0x0,0x0                                                                                    
284
001498   0910     IORLW     0x10                                                                                            
285
00149a   6e00     MOVWF     0x0,0x0                                                                                         
286
00149c   0e00     MOVLW     0x0                                                                                             
287
00149e   1477     ANDWF     0x77,0x0,0x0                                                                                    
288
0014a0   1000     IORWF     0x0,0x0,0x0                                                                                     
289
0014a2   6e77     MOVWF     0x77,0x0                                                                                        
290
0014a4   be60     BTFSC     0x60,0x7,0x0   		if (RXB0CONbits.RXFUL) canGetPacket();                                         F:\MCP\projects\CAN\canBase\Source\CAN.c
291
0014a6   d80d     RCALL     0x14c2                                                                                          
85 johboh 292
                                           	                                                                                F:\MCP\projects\CAN\canBase\Source\CAN.c
108 johboh 293
0014a8   a2a4     BTFSS     0xa4,0x1,0x0   		if (PIR3bits.RXBnIF) {PIR3bits.RXBnIF = 0; return;}                            F:\MCP\projects\CAN\canBase\Source\CAN.c
294
0014aa   d002     BRA       0x14b0                                                                                          
295
0014ac   92a4     BCF       0xa4,0x1,0x0                                                                                    
296
0014ae   d008     BRA       0x14c0                                                                                          
297
0014b0   a2a4     BTFSS     0xa4,0x1,0x0   		if (PIR3bits.RXB1IF) {PIR3bits.RXB1IF = 0; return;}                            F:\MCP\projects\CAN\canBase\Source\CAN.c
298
0014b2   d002     BRA       0x14b8                                                                                          
299
0014b4   92a4     BCF       0xa4,0x1,0x0                                                                                    
300
0014b6   d004     BRA       0x14c0                                                                                          
301
0014b8   a0a4     BTFSS     0xa4,0x0,0x0   		if (PIR3bits.RXB0IF) {PIR3bits.RXB0IF = 0; return;}                            F:\MCP\projects\CAN\canBase\Source\CAN.c
302
0014ba   d002     BRA       0x14c0                                                                                          
303
0014bc   90a4     BCF       0xa4,0x0,0x0                                                                                    
304
0014be   d000     BRA       0x14c0                                                                                          
85 johboh 305
                                           	}                                                                               F:\MCP\projects\CAN\canBase\Source\CAN.c
108 johboh 306
0014c0   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
108 johboh 318
0014c2   cfd9     MOVFF     0xfd9,0xfe6    void canGetPacket()                                                              F:\MCP\projects\CAN\canBase\Source\CAN.c
319
0014c4   ffe6                                                                                                               
320
0014c6   cfe1     MOVFF     0xfe1,0xfd9                                                                                     
321
0014c8   ffd9                                                                                                               
322
0014ca   0e0f     MOVLW     0xf                                                                                             
323
0014cc   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
108 johboh 338
0014ce   0ef0     MOVLW     0xf0                  	cm.funct=((RXB0SIDH & 0xF0)>>4);                                         F:\MCP\projects\CAN\canBase\Source\CAN.c
339
0014d0   1461     ANDWF     0x61,0x0,0x0                                                                                    
340
0014d2   38e8     SWAPF     0xe8,0x0,0x0                                                                                    
341
0014d4   0b0f     ANDLW     0xf                                                                                             
342
0014d6   6edf     MOVWF     0xdf,0x0                                                                                        
343
0014d8   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
0014da   1461     ANDWF     0x61,0x0,0x0                                                                                    
345
0014dc   6e06     MOVWF     0x6,0x0                                                                                         
346
0014de   6a07     CLRF      0x7,0x0                                                                                         
347
0014e0   0e06     MOVLW     0x6                                                                                             
348
0014e2   90d8     BCF       0xd8,0x0,0x0                                                                                    
349
0014e4   3606     RLCF      0x6,0x1,0x0                                                                                     
350
0014e6   3607     RLCF      0x7,0x1,0x0                                                                                     
351
0014e8   04e8     DECF      0xe8,0x0,0x0                                                                                    
352
0014ea   e1fb     BNZ       0x14e2                                                                                          
353
0014ec   0ee0     MOVLW     0xe0                                                                                            
354
0014ee   1462     ANDWF     0x62,0x0,0x0                                                                                    
355
0014f0   6e08     MOVWF     0x8,0x0                                                                                         
356
0014f2   6a09     CLRF      0x9,0x0                                                                                         
357
0014f4   90d8     BCF       0xd8,0x0,0x0                                                                                    
358
0014f6   3209     RRCF      0x9,0x1,0x0                                                                                     
359
0014f8   3208     RRCF      0x8,0x1,0x0                                                                                     
360
0014fa   90d8     BCF       0xd8,0x0,0x0                                                                                    
361
0014fc   3209     RRCF      0x9,0x1,0x0                                                                                     
362
0014fe   3208     RRCF      0x8,0x1,0x0                                                                                     
363
001500   5006     MOVF      0x6,0x0,0x0                                                                                     
364
001502   2408     ADDWF     0x8,0x0,0x0                                                                                     
365
001504   6e04     MOVWF     0x4,0x0                                                                                         
366
001506   5007     MOVF      0x7,0x0,0x0                                                                                     
367
001508   2009     ADDWFC    0x9,0x0,0x0                                                                                     
368
00150a   6e05     MOVWF     0x5,0x0                                                                                         
369
00150c   0e03     MOVLW     0x3                                                                                             
370
00150e   1462     ANDWF     0x62,0x0,0x0                                                                                    
371
001510   6e0a     MOVWF     0xa,0x0                                                                                         
372
001512   6a0b     CLRF      0xb,0x0                                                                                         
373
001514   90d8     BCF       0xd8,0x0,0x0                                                                                    
374
001516   360a     RLCF      0xa,0x1,0x0                                                                                     
375
001518   360b     RLCF      0xb,0x1,0x0                                                                                     
376
00151a   5004     MOVF      0x4,0x0,0x0                                                                                     
377
00151c   240a     ADDWF     0xa,0x0,0x0                                                                                     
378
00151e   6e02     MOVWF     0x2,0x0                                                                                         
379
001520   5005     MOVF      0x5,0x0,0x0                                                                                     
380
001522   200b     ADDWFC    0xb,0x0,0x0                                                                                     
381
001524   6e03     MOVWF     0x3,0x0                                                                                         
382
001526   0e80     MOVLW     0x80                                                                                            
383
001528   1463     ANDWF     0x63,0x0,0x0                                                                                    
384
00152a   6e0c     MOVWF     0xc,0x0                                                                                         
385
00152c   6a0d     CLRF      0xd,0x0                                                                                         
386
00152e   0e07     MOVLW     0x7                                                                                             
387
001530   90d8     BCF       0xd8,0x0,0x0                                                                                    
388
001532   320d     RRCF      0xd,0x1,0x0                                                                                     
389
001534   320c     RRCF      0xc,0x1,0x0                                                                                     
390
001536   04e8     DECF      0xe8,0x0,0x0                                                                                    
391
001538   e1fb     BNZ       0x1530                                                                                          
392
00153a   5002     MOVF      0x2,0x0,0x0                                                                                     
393
00153c   240c     ADDWF     0xc,0x0,0x0                                                                                     
394
00153e   6e00     MOVWF     0x0,0x0                                                                                         
395
001540   5003     MOVF      0x3,0x0,0x0                                                                                     
396
001542   200d     ADDWFC    0xd,0x0,0x0                                                                                     
397
001544   6e01     MOVWF     0x1,0x0                                                                                         
398
001546   0e01     MOVLW     0x1                                                                                             
399
001548   c000     MOVFF     0x0,0xfdb                                                                                       
400
00154a   ffdb                                                                                                               
401
00154c   0e02     MOVLW     0x2                                                                                             
402
00154e   c001     MOVFF     0x1,0xfdb                                                                                       
403
001550   ffdb                                                                                                               
404
001552   0e7e     MOVLW     0x7e                   cm.nid=((RXB0EIDH & 0x7E)>>1);                                           F:\MCP\projects\CAN\canBase\Source\CAN.c
405
001554   1463     ANDWF     0x63,0x0,0x0                                                                                    
406
001556   40e8     RRNCF     0xe8,0x0,0x0                                                                                    
407
001558   0b7f     ANDLW     0x7f                                                                                            
408
00155a   6ee7     MOVWF     0xe7,0x0                                                                                        
409
00155c   0e03     MOVLW     0x3                                                                                             
410
00155e   cfe7     MOVFF     0xfe7,0xfdb                                                                                     
411
001560   ffdb                                                                                                               
412
001562   0e01     MOVLW     0x1                    cm.sid=(((WORD)(RXB0EIDH & 0x01))<<8)+RXB0EIDL;                          F:\MCP\projects\CAN\canBase\Source\CAN.c
413
001564   1463     ANDWF     0x63,0x0,0x0                                                                                    
414
001566   6e02     MOVWF     0x2,0x0                                                                                         
415
001568   c002     MOVFF     0x2,0x3                                                                                         
416
00156a   f003                                                                                                               
417
00156c   6a02     CLRF      0x2,0x0                                                                                         
418
00156e   5064     MOVF      0x64,0x0,0x0                                                                                    
419
001570   0100     MOVLB     0x0                                                                                             
420
001572   2402     ADDWF     0x2,0x0,0x0                                                                                     
421
001574   6e00     MOVWF     0x0,0x0                                                                                         
422
001576   0e00     MOVLW     0x0                                                                                             
423
001578   2003     ADDWFC    0x3,0x0,0x0                                                                                     
424
00157a   6e01     MOVWF     0x1,0x0                                                                                         
425
00157c   0e04     MOVLW     0x4                                                                                             
426
00157e   c000     MOVFF     0x0,0xfdb                                                                                       
427
001580   ffdb                                                                                                               
428
001582   0e05     MOVLW     0x5                                                                                             
429
001584   c001     MOVFF     0x1,0xfdb                                                                                       
430
001586   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
108 johboh 434
001588   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
00158a   0b01     ANDLW     0x1                                                                                             
436
00158c   6e02     MOVWF     0x2,0x0                                                                                         
437
00158e   5065     MOVF      0x65,0x0,0x0                                                                                    
438
001590   0b02     ANDLW     0x2                                                                                             
439
001592   e001     BZ        0x1596                                                                                          
440
001594   0e01     MOVLW     0x1                                                                                             
441
001596   24e8     ADDWF     0xe8,0x0,0x0                                                                                    
442
001598   6e01     MOVWF     0x1,0x0                                                                                         
443
00159a   5065     MOVF      0x65,0x0,0x0                                                                                    
444
00159c   0b04     ANDLW     0x4                                                                                             
445
00159e   e001     BZ        0x15a2                                                                                          
446
0015a0   0e01     MOVLW     0x1                                                                                             
447
0015a2   0d04     MULLW     0x4                                                                                             
448
0015a4   cff3     MOVFF     0xff3,0x0                                                                                       
449
0015a6   f000                                                                                                               
450
0015a8   5065     MOVF      0x65,0x0,0x0                                                                                    
451
0015aa   0b08     ANDLW     0x8                                                                                             
452
0015ac   e001     BZ        0x15b0                                                                                          
453
0015ae   0e01     MOVLW     0x1                                                                                             
454
0015b0   0d08     MULLW     0x8                                                                                             
455
0015b2   50f3     MOVF      0xf3,0x0,0x0                                                                                    
456
0015b4   2400     ADDWF     0x0,0x0,0x0                                                                                     
457
0015b6   2401     ADDWF     0x1,0x0,0x0                                                                                     
458
0015b8   2402     ADDWF     0x2,0x0,0x0                                                                                     
459
0015ba   6ee7     MOVWF     0xe7,0x0                                                                                        
460
0015bc   0e06     MOVLW     0x6                                                                                             
461
0015be   cfe7     MOVFF     0xfe7,0xfdb                                                                                     
462
0015c0   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
108 johboh 465
0015c2   0e07     MOVLW     0x7            		cm.data[0]=RXB0D0;	cm.data[1]=RXB0D1;                                          F:\MCP\projects\CAN\canBase\Source\CAN.c
466
0015c4   cf66     MOVFF     0xf66,0xfdb                                                                                     
467
0015c6   ffdb                                                                                                               
468
0015c8   0e08     MOVLW     0x8                                                                                             
469
0015ca   cf67     MOVFF     0xf67,0xfdb                                                                                     
470
0015cc   ffdb                                                                                                               
471
0015ce   0e09     MOVLW     0x9            		cm.data[2]=RXB0D2; 	cm.data[3]=RXB0D3;                                         F:\MCP\projects\CAN\canBase\Source\CAN.c
472
0015d0   cf68     MOVFF     0xf68,0xfdb                                                                                     
473
0015d2   ffdb                                                                                                               
474
0015d4   0e0a     MOVLW     0xa                                                                                             
475
0015d6   cf69     MOVFF     0xf69,0xfdb                                                                                     
476
0015d8   ffdb                                                                                                               
477
0015da   0e0b     MOVLW     0xb            		cm.data[4]=RXB0D4; 	cm.data[5]=RXB0D5;                                         F:\MCP\projects\CAN\canBase\Source\CAN.c
478
0015dc   cf6a     MOVFF     0xf6a,0xfdb                                                                                     
479
0015de   ffdb                                                                                                               
480
0015e0   0e0c     MOVLW     0xc                                                                                             
481
0015e2   cf6b     MOVFF     0xf6b,0xfdb                                                                                     
482
0015e4   ffdb                                                                                                               
483
0015e6   0e0d     MOVLW     0xd            		cm.data[6]=RXB0D6; 	cm.data[7]=RXB0D7;                                         F:\MCP\projects\CAN\canBase\Source\CAN.c
484
0015e8   cf6c     MOVFF     0xf6c,0xfdb                                                                                     
485
0015ea   ffdb                                                                                                               
486
0015ec   0e0e     MOVLW     0xe                                                                                             
487
0015ee   cf6d     MOVFF     0xf6d,0xfdb                                                                                     
488
0015f0   ffdb                                                                                                               
85 johboh 489
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
490
                                           		// Clear ful status                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
108 johboh 491
0015f2   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
108 johboh 494
0015f4   cfd9     MOVFF     0xfd9,0xfe9    		canParse(cm);                                                                  F:\MCP\projects\CAN\canBase\Source\CAN.c
495
0015f6   ffe9                                                                                                               
496
0015f8   cfda     MOVFF     0xfda,0xfea                                                                                     
497
0015fa   ffea                                                                                                               
498
0015fc   cfee     MOVFF     0xfee,0xfe6                                                                                     
499
0015fe   ffe6                                                                                                               
500
001600   cfee     MOVFF     0xfee,0xfe6                                                                                     
501
001602   ffe6                                                                                                               
502
001604   cfee     MOVFF     0xfee,0xfe6                                                                                     
503
001606   ffe6                                                                                                               
504
001608   cfee     MOVFF     0xfee,0xfe6                                                                                     
505
00160a   ffe6                                                                                                               
506
00160c   cfee     MOVFF     0xfee,0xfe6                                                                                     
507
00160e   ffe6                                                                                                               
508
001610   cfee     MOVFF     0xfee,0xfe6                                                                                     
509
001612   ffe6                                                                                                               
510
001614   cfee     MOVFF     0xfee,0xfe6                                                                                     
511
001616   ffe6                                                                                                               
512
001618   cfee     MOVFF     0xfee,0xfe6                                                                                     
513
00161a   ffe6                                                                                                               
514
00161c   cfee     MOVFF     0xfee,0xfe6                                                                                     
515
00161e   ffe6                                                                                                               
516
001620   cfee     MOVFF     0xfee,0xfe6                                                                                     
517
001622   ffe6                                                                                                               
518
001624   cfee     MOVFF     0xfee,0xfe6                                                                                     
519
001626   ffe6                                                                                                               
520
001628   cfee     MOVFF     0xfee,0xfe6                                                                                     
521
00162a   ffe6                                                                                                               
522
00162c   cfee     MOVFF     0xfee,0xfe6                                                                                     
523
00162e   ffe6                                                                                                               
524
001630   cfee     MOVFF     0xfee,0xfe6                                                                                     
525
001632   ffe6                                                                                                               
526
001634   cfee     MOVFF     0xfee,0xfe6                                                                                     
527
001636   ffe6                                                                                                               
528
001638   ec4f     CALL      0x129e,0x0                                                                                      
529
00163a   f009                                                                                                               
530
00163c   6e00     MOVWF     0x0,0x0                                                                                         
531
00163e   0e0f     MOVLW     0xf                                                                                             
532
001640   5ee1     SUBWF     0xe1,0x1,0x0                                                                                    
533
001642   5000     MOVF      0x0,0x0,0x0                                                                                     
534
001644   0e0f     MOVLW     0xf            }                                                                                F:\MCP\projects\CAN\canBase\Source\CAN.c
535
001646   5ce1     SUBWF     0xe1,0x0,0x0                                                                                    
536
001648   e202     BC        0x164e                                                                                          
537
00164a   6ae1     CLRF      0xe1,0x0                                                                                        
538
00164c   52e5     MOVF      0xe5,0x1,0x0                                                                                    
539
00164e   6ee1     MOVWF     0xe1,0x0                                                                                        
540
001650   52e5     MOVF      0xe5,0x1,0x0                                                                                    
541
001652   cfe7     MOVFF     0xfe7,0xfd9                                                                                     
542
001654   ffd9                                                                                                               
543
001656   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
108 johboh 555
001658   cfd9     MOVFF     0xfd9,0xfe6    BOOL canSendMessage(CAN_MESSAGE cm,CAN_PRIORITY prio)                            F:\MCP\projects\CAN\canBase\Source\CAN.c
556
00165a   ffe6                                                                                                               
557
00165c   cfe1     MOVFF     0xfe1,0xfd9                                                                                     
558
00165e   ffd9                                                                                                               
85 johboh 559
                                           {                                                                                F:\MCP\projects\CAN\canBase\Source\CAN.c
560
                                           	                                                                                F:\MCP\projects\CAN\canBase\Source\CAN.c
108 johboh 561
001660   010f     MOVLB     0xf            	if ( TXB0CONbits.TXREQ == 0 )  { ECANCON=(ECANCON&0b00000)|0b00011; }           F:\MCP\projects\CAN\canBase\Source\CAN.c
562
001662   b740     BTFSC     0x40,0x3,0x1                                                                                    
563
001664   d004     BRA       0x166e                                                                                          
564
001666   0e00     MOVLW     0x0                                                                                             
565
001668   1477     ANDWF     0x77,0x0,0x0                                                                                    
566
00166a   0903     IORLW     0x3                                                                                             
567
00166c   6e77     MOVWF     0x77,0x0                                                                                        
568
00166e   010f     MOVLB     0xf            	if ( TXB1CONbits.TXREQ == 0 )  { ECANCON=(ECANCON&0b00000)|0b00100; }           F:\MCP\projects\CAN\canBase\Source\CAN.c
569
001670   b730     BTFSC     0x30,0x3,0x1                                                                                    
570
001672   d004     BRA       0x167c                                                                                          
571
001674   0e00     MOVLW     0x0                                                                                             
572
001676   1477     ANDWF     0x77,0x0,0x0                                                                                    
573
001678   0904     IORLW     0x4                                                                                             
574
00167a   6e77     MOVWF     0x77,0x0                                                                                        
575
00167c   010f     MOVLB     0xf            	if ( TXB2CONbits.TXREQ == 0 )  { ECANCON=(ECANCON&0b00000)|0b00101; }           F:\MCP\projects\CAN\canBase\Source\CAN.c
576
00167e   b720     BTFSC     0x20,0x3,0x1                                                                                    
577
001680   d005     BRA       0x168c                                                                                          
578
001682   0e00     MOVLW     0x0                                                                                             
579
001684   1477     ANDWF     0x77,0x0,0x0                                                                                    
580
001686   0905     IORLW     0x5                                                                                             
581
001688   6e77     MOVWF     0x77,0x0                                                                                        
85 johboh 582
                                           	// None of the transmit buffers were empty.                                     F:\MCP\projects\CAN\canBase\Source\CAN.c
108 johboh 583
00168a   d002     BRA       0x1690         	else { return FALSE;}                                                           F:\MCP\projects\CAN\canBase\Source\CAN.c
584
00168c   0e00     MOVLW     0x0                                                                                             
585
00168e   d0b0     BRA       0x17f0                                                                                          
85 johboh 586
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
108 johboh 587
001690   0eef     MOVLW     0xef           	if (prio<0 || prio>3) prio = 0;                                                 F:\MCP\projects\CAN\canBase\Source\CAN.c
588
001692   cfdb     MOVFF     0xfdb,0x0                                                                                       
589
001694   f000                                                                                                               
590
001696   3400     RLCF      0x0,0x0,0x0                                                                                     
591
001698   e20e     BC        0x16b6                                                                                          
592
00169a   0eef     MOVLW     0xef                                                                                            
593
00169c   cfdb     MOVFF     0xfdb,0x1                                                                                       
594
00169e   f001                                                                                                               
595
0016a0   0e03     MOVLW     0x3                                                                                             
596
0016a2   6ee7     MOVWF     0xe7,0x0                                                                                        
597
0016a4   1801     XORWF     0x1,0x0,0x0                                                                                     
598
0016a6   aee8     BTFSS     0xe8,0x7,0x0                                                                                    
599
0016a8   d002     BRA       0x16ae                                                                                          
600
0016aa   3401     RLCF      0x1,0x0,0x0                                                                                     
601
0016ac   d003     BRA       0x16b4                                                                                          
602
0016ae   50e7     MOVF      0xe7,0x0,0x0                                                                                    
603
0016b0   80d8     BSF       0xd8,0x0,0x0                                                                                    
604
0016b2   5401     SUBFWB    0x1,0x0,0x0                                                                                     
605
0016b4   e202     BC        0x16ba                                                                                          
606
0016b6   0eef     MOVLW     0xef                                                                                            
607
0016b8   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
108 johboh 620
0016ba   0ef1     MOVLW     0xf1           		RXB0SIDH = (BYTE)((cm.funct & 0x0F)<<4)+(BYTE)((cm.funcc & 0x03C0)>>6);        F:\MCP\projects\CAN\canBase\Source\CAN.c
621
0016bc   cfdb     MOVFF     0xfdb,0x0                                                                                       
622
0016be   f000                                                                                                               
623
0016c0   0ef2     MOVLW     0xf2                                                                                            
624
0016c2   cfdb     MOVFF     0xfdb,0x1                                                                                       
625
0016c4   f001                                                                                                               
626
0016c6   0ec0     MOVLW     0xc0                                                                                            
627
0016c8   1600     ANDWF     0x0,0x1,0x0                                                                                     
628
0016ca   0e03     MOVLW     0x3                                                                                             
629
0016cc   1601     ANDWF     0x1,0x1,0x0                                                                                     
630
0016ce   0e06     MOVLW     0x6                                                                                             
631
0016d0   90d8     BCF       0xd8,0x0,0x0                                                                                    
632
0016d2   3201     RRCF      0x1,0x1,0x0                                                                                     
633
0016d4   3200     RRCF      0x0,0x1,0x0                                                                                     
634
0016d6   04e8     DECF      0xe8,0x0,0x0                                                                                    
635
0016d8   e1fb     BNZ       0x16d0                                                                                          
636
0016da   0ef0     MOVLW     0xf0                                                                                            
637
0016dc   50db     MOVF      0xdb,0x0,0x0                                                                                    
638
0016de   0b0f     ANDLW     0xf                                                                                             
639
0016e0   0d10     MULLW     0x10                                                                                            
640
0016e2   50f3     MOVF      0xf3,0x0,0x0                                                                                    
641
0016e4   2400     ADDWF     0x0,0x0,0x0                                                                                     
642
0016e6   6e61     MOVWF     0x61,0x0                                                                                        
643
0016e8   0e06     MOVLW     0x6            		RXB0SIDL = (BYTE)((cm.funcc & 0x003F)<<2)+(BYTE)((cm.funcc & 0x0006)>>1);      F:\MCP\projects\CAN\canBase\Source\CAN.c
644
0016ea   6ee7     MOVWF     0xe7,0x0                                                                                        
645
0016ec   0ef1     MOVLW     0xf1                                                                                            
646
0016ee   cfdb     MOVFF     0xfdb,0x2                                                                                       
647
0016f0   f002                                                                                                               
648
0016f2   0ef2     MOVLW     0xf2                                                                                            
649
0016f4   cfdb     MOVFF     0xfdb,0x3                                                                                       
650
0016f6   f003                                                                                                               
651
0016f8   50e7     MOVF      0xe7,0x0,0x0                                                                                    
652
0016fa   1602     ANDWF     0x2,0x1,0x0                                                                                     
653
0016fc   6a03     CLRF      0x3,0x0                                                                                         
654
0016fe   90d8     BCF       0xd8,0x0,0x0                                                                                    
655
001700   3203     RRCF      0x3,0x1,0x0                                                                                     
656
001702   3202     RRCF      0x2,0x1,0x0                                                                                     
657
001704   0e3f     MOVLW     0x3f                                                                                            
658
001706   6ee7     MOVWF     0xe7,0x0                                                                                        
659
001708   0ef1     MOVLW     0xf1                                                                                            
660
00170a   cfdb     MOVFF     0xfdb,0x0                                                                                       
661
00170c   f000                                                                                                               
662
00170e   0ef2     MOVLW     0xf2                                                                                            
663
001710   cfdb     MOVFF     0xfdb,0x1                                                                                       
664
001712   f001                                                                                                               
665
001714   50e7     MOVF      0xe7,0x0,0x0                                                                                    
666
001716   1600     ANDWF     0x0,0x1,0x0                                                                                     
667
001718   6a01     CLRF      0x1,0x0                                                                                         
668
00171a   90d8     BCF       0xd8,0x0,0x0                                                                                    
669
00171c   3600     RLCF      0x0,0x1,0x0                                                                                     
670
00171e   3601     RLCF      0x1,0x1,0x0                                                                                     
671
001720   90d8     BCF       0xd8,0x0,0x0                                                                                    
672
001722   3600     RLCF      0x0,0x1,0x0                                                                                     
673
001724   3601     RLCF      0x1,0x1,0x0                                                                                     
674
001726   5000     MOVF      0x0,0x0,0x0                                                                                     
675
001728   2402     ADDWF     0x2,0x0,0x0                                                                                     
676
00172a   6e62     MOVWF     0x62,0x0                                                                                        
677
00172c   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
00172e   cfdb     MOVFF     0xfdb,0x2                                                                                       
679
001730   f002                                                                                                               
680
001732   0ef5     MOVLW     0xf5                                                                                            
681
001734   cfdb     MOVFF     0xfdb,0x3                                                                                       
682
001736   f003                                                                                                               
683
001738   0e00     MOVLW     0x0                                                                                             
684
00173a   1602     ANDWF     0x2,0x1,0x0                                                                                     
685
00173c   0e01     MOVLW     0x1                                                                                             
686
00173e   1603     ANDWF     0x3,0x1,0x0                                                                                     
687
001740   c003     MOVFF     0x3,0x2                                                                                         
688
001742   f002                                                                                                               
689
001744   6a03     CLRF      0x3,0x0                                                                                         
690
001746   0e01     MOVLW     0x1                                                                                             
691
001748   6ee7     MOVWF     0xe7,0x0                                                                                        
692
00174a   0ef1     MOVLW     0xf1                                                                                            
693
00174c   cfdb     MOVFF     0xfdb,0x0                                                                                       
694
00174e   f000                                                                                                               
695
001750   0ef2     MOVLW     0xf2                                                                                            
696
001752   cfdb     MOVFF     0xfdb,0x1                                                                                       
697
001754   f001                                                                                                               
698
001756   50e7     MOVF      0xe7,0x0,0x0                                                                                    
699
001758   1600     ANDWF     0x0,0x1,0x0                                                                                     
700
00175a   6a01     CLRF      0x1,0x0                                                                                         
701
00175c   0e07     MOVLW     0x7                                                                                             
702
00175e   90d8     BCF       0xd8,0x0,0x0                                                                                    
703
001760   3600     RLCF      0x0,0x1,0x0                                                                                     
704
001762   3601     RLCF      0x1,0x1,0x0                                                                                     
705
001764   04e8     DECF      0xe8,0x0,0x0                                                                                    
706
001766   e1fb     BNZ       0x175e                                                                                          
707
001768   0ef3     MOVLW     0xf3                                                                                            
708
00176a   50db     MOVF      0xdb,0x0,0x0                                                                                    
709
00176c   0b3f     ANDLW     0x3f                                                                                            
710
00176e   24e8     ADDWF     0xe8,0x0,0x0                                                                                    
711
001770   2400     ADDWF     0x0,0x0,0x0                                                                                     
712
001772   2402     ADDWF     0x2,0x0,0x0                                                                                     
713
001774   6e63     MOVWF     0x63,0x0                                                                                        
714
001776   0eff     MOVLW     0xff           		RXB0EIDL = (BYTE)((cm.sid & 0x00FF));                                          F:\MCP\projects\CAN\canBase\Source\CAN.c
715
001778   6ee7     MOVWF     0xe7,0x0                                                                                        
716
00177a   0ef4     MOVLW     0xf4                                                                                            
717
00177c   cfdb     MOVFF     0xfdb,0x0                                                                                       
718
00177e   f000                                                                                                               
719
001780   0ef5     MOVLW     0xf5                                                                                            
720
001782   cfdb     MOVFF     0xfdb,0x1                                                                                       
721
001784   f001                                                                                                               
722
001786   50e7     MOVF      0xe7,0x0,0x0                                                                                    
723
001788   1600     ANDWF     0x0,0x1,0x0                                                                                     
724
00178a   6a01     CLRF      0x1,0x0                                                                                         
725
00178c   5000     MOVF      0x0,0x0,0x0                                                                                     
726
00178e   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
108 johboh 729
001790   6a65     CLRF      0x65,0x0       		RXB0DLC = 0;                                                                   F:\MCP\projects\CAN\canBase\Source\CAN.c
730
001792   0ef6     MOVLW     0xf6           		if (cm.data_length>8) RXB0DLC=8; else RXB0DLC=cm.data_length;                  F:\MCP\projects\CAN\canBase\Source\CAN.c
731
001794   50db     MOVF      0xdb,0x0,0x0                                                                                    
732
001796   0808     SUBLW     0x8                                                                                             
733
001798   e203     BC        0x17a0                                                                                          
734
00179a   0e08     MOVLW     0x8                                                                                             
735
00179c   6e65     MOVWF     0x65,0x0                                                                                        
736
00179e   d003     BRA       0x17a6                                                                                          
737
0017a0   0ef6     MOVLW     0xf6                                                                                            
738
0017a2   50db     MOVF      0xdb,0x0,0x0                                                                                    
739
0017a4   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
108 johboh 744
0017a6   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
108 johboh 749
0017a8   0ef7     MOVLW     0xf7           		RXB0D0=cm.data[0];	RXB0D1=cm.data[1];                                          F:\MCP\projects\CAN\canBase\Source\CAN.c
750
0017aa   50db     MOVF      0xdb,0x0,0x0                                                                                    
751
0017ac   6e66     MOVWF     0x66,0x0                                                                                        
752
0017ae   0ef8     MOVLW     0xf8                                                                                            
753
0017b0   50db     MOVF      0xdb,0x0,0x0                                                                                    
754
0017b2   6e67     MOVWF     0x67,0x0                                                                                        
755
0017b4   0ef9     MOVLW     0xf9           		RXB0D2=cm.data[2]; 	RXB0D3=cm.data[3];                                         F:\MCP\projects\CAN\canBase\Source\CAN.c
756
0017b6   50db     MOVF      0xdb,0x0,0x0                                                                                    
757
0017b8   6e68     MOVWF     0x68,0x0                                                                                        
758
0017ba   0efa     MOVLW     0xfa                                                                                            
759
0017bc   50db     MOVF      0xdb,0x0,0x0                                                                                    
760
0017be   6e69     MOVWF     0x69,0x0                                                                                        
761
0017c0   0efb     MOVLW     0xfb           		RXB0D4=cm.data[4]; 	RXB0D5=cm.data[5];                                         F:\MCP\projects\CAN\canBase\Source\CAN.c
762
0017c2   50db     MOVF      0xdb,0x0,0x0                                                                                    
763
0017c4   6e6a     MOVWF     0x6a,0x0                                                                                        
764
0017c6   0efc     MOVLW     0xfc                                                                                            
765
0017c8   50db     MOVF      0xdb,0x0,0x0                                                                                    
766
0017ca   6e6b     MOVWF     0x6b,0x0                                                                                        
767
0017cc   0efd     MOVLW     0xfd           		RXB0D6=cm.data[6]; 	RXB0D7=cm.data[7];                                         F:\MCP\projects\CAN\canBase\Source\CAN.c
768
0017ce   50db     MOVF      0xdb,0x0,0x0                                                                                    
769
0017d0   6e6c     MOVWF     0x6c,0x0                                                                                        
770
0017d2   0efe     MOVLW     0xfe                                                                                            
771
0017d4   50db     MOVF      0xdb,0x0,0x0                                                                                    
772
0017d6   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
108 johboh 775
0017d8   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
108 johboh 778
0017da   0eef     MOVLW     0xef           		RXB0CON = (RXB0CON & 0b11111100) | prio;                                       F:\MCP\projects\CAN\canBase\Source\CAN.c
779
0017dc   cfdb     MOVFF     0xfdb,0xfe6                                                                                     
780
0017de   ffe6                                                                                                               
781
0017e0   0efc     MOVLW     0xfc                                                                                            
782
0017e2   1460     ANDWF     0x60,0x0,0x0                                                                                    
783
0017e4   52e5     MOVF      0xe5,0x1,0x0                                                                                    
784
0017e6   10e7     IORWF     0xe7,0x0,0x0                                                                                    
785
0017e8   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
108 johboh 789
0017ea   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
108 johboh 792
0017ec   0e01     MOVLW     0x1            		return TRUE;                                                                   F:\MCP\projects\CAN\canBase\Source\CAN.c
793
0017ee   d000     BRA       0x17f0                                                                                          
85 johboh 794
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
108 johboh 795
0017f0   52e5     MOVF      0xe5,0x1,0x0   }                                                                                F:\MCP\projects\CAN\canBase\Source\CAN.c
796
0017f2   cfe7     MOVFF     0xfe7,0xfd9                                                                                     
797
0017f4   ffd9                                                                                                               
798
0017f6   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
108 johboh 809
                                            * Last changed:	$LastChangedDate: 2006-11-15 10:04:20 +0100 (on, 15 nov 2006) $ F:\MCP\projects\CAN\canBase\Source\Main.c
87 johboh 810
                                            * By:				$LastChangedBy: johboh $                                               F:\MCP\projects\CAN\canBase\Source\Main.c
108 johboh 811
                                            * Revision:		$Revision: 103 $                                                   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
100 johboh 828
                                           static int MY_ID = DEFAULT_ID;                                                   F:\MCP\projects\CAN\canBase\Source\Main.c
829
                                           static BYTE MY_NID = DEFAULT_NID;                                                F:\MCP\projects\CAN\canBase\Source\Main.c
830
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Main.c
108 johboh 831
001044   cfd9     MOVFF     0xfd9,0xfe6    void main()                                                                      F:\MCP\projects\CAN\canBase\Source\Main.c
832
001046   ffe6                                                                                                               
833
001048   cfe1     MOVFF     0xfe1,0xfd9                                                                                     
834
00104a   ffd9                                                                                                               
835
00104c   0e0f     MOVLW     0xf                                                                                             
836
00104e   26e1     ADDWF     0xe1,0x1,0x0                                                                                    
85 johboh 837
                                           {                                                                                F:\MCP\projects\CAN\canBase\Source\Main.c
838
                                           	static TICK t = 0;                                                              F:\MCP\projects\CAN\canBase\Source\Main.c
108 johboh 839
                                           	CAN_MESSAGE outCm;                                                              F:\MCP\projects\CAN\canBase\Source\Main.c
85 johboh 840
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Main.c
841
                                           	// Inits                                                                        F:\MCP\projects\CAN\canBase\Source\Main.c
842
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Main.c
108 johboh 843
001050   d921     RCALL     0x1294         	mainInit();                                                                     F:\MCP\projects\CAN\canBase\Source\Main.c
85 johboh 844
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Main.c
845
                                           	#ifdef USE_CAN                                                                  F:\MCP\projects\CAN\canBase\Source\Main.c
108 johboh 846
001052   ec16     CALL      0x142c,0x0     		canInit();                                                                     F:\MCP\projects\CAN\canBase\Source\Main.c
847
001054   f00a                                                                                                               
85 johboh 848
                                           	#endif                                                                          F:\MCP\projects\CAN\canBase\Source\Main.c
849
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Main.c
108 johboh 850
001056   eca1     CALL      0x1942,0x0     	tickInit();                                                                     F:\MCP\projects\CAN\canBase\Source\Main.c
851
001058   f00c                                                                                                               
85 johboh 852
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Main.c
100 johboh 853
                                           	// Read ID and NID if exist.                                                    F:\MCP\projects\CAN\canBase\Source\Main.c
108 johboh 854
00105a   0e00     MOVLW     0x0            	if (EERead(NODE_ID_EE)==NODE_HAS_ID)                                            F:\MCP\projects\CAN\canBase\Source\Main.c
855
00105c   6ee6     MOVWF     0xe6,0x0                                                                                        
856
00105e   6ae6     CLRF      0xe6,0x0                                                                                        
857
001060   ecfc     CALL      0x17f8,0x0                                                                                      
858
001062   f00b                                                                                                               
859
001064   52e5     MOVF      0xe5,0x1,0x0                                                                                    
860
001066   52e5     MOVF      0xe5,0x1,0x0                                                                                    
861
001068   082a     SUBLW     0x2a                                                                                            
862
00106a   e12b     BNZ       0x10c2                                                                                          
100 johboh 863
                                           	{                                                                               F:\MCP\projects\CAN\canBase\Source\Main.c
108 johboh 864
00106c   0e01     MOVLW     0x1            		MY_ID=(((WORD)EERead(NODE_ID_EE + 1))<<8)+EERead(NODE_ID_EE + 2);              F:\MCP\projects\CAN\canBase\Source\Main.c
865
00106e   6ee6     MOVWF     0xe6,0x0                                                                                        
866
001070   6ae6     CLRF      0xe6,0x0                                                                                        
867
001072   ecfc     CALL      0x17f8,0x0                                                                                      
868
001074   f00b                                                                                                               
869
001076   52e5     MOVF      0xe5,0x1,0x0                                                                                    
870
001078   52e5     MOVF      0xe5,0x1,0x0                                                                                    
871
00107a   6e00     MOVWF     0x0,0x0                                                                                         
872
00107c   c000     MOVFF     0x0,0x1                                                                                         
873
00107e   f001                                                                                                               
874
001080   6a00     CLRF      0x0,0x0                                                                                         
875
001082   c000     MOVFF     0x0,0xfe6                                                                                       
876
001084   ffe6                                                                                                               
877
001086   c001     MOVFF     0x1,0xfe6                                                                                       
878
001088   ffe6                                                                                                               
879
00108a   0e02     MOVLW     0x2                                                                                             
880
00108c   6ee6     MOVWF     0xe6,0x0                                                                                        
881
00108e   6ae6     CLRF      0xe6,0x0                                                                                        
882
001090   ecfc     CALL      0x17f8,0x0                                                                                      
883
001092   f00b                                                                                                               
884
001094   52e5     MOVF      0xe5,0x1,0x0                                                                                    
885
001096   52e5     MOVF      0xe5,0x1,0x0                                                                                    
886
001098   52e5     MOVF      0xe5,0x1,0x0                                                                                    
887
00109a   cfe7     MOVFF     0xfe7,0x1                                                                                       
888
00109c   f001                                                                                                               
889
00109e   52e5     MOVF      0xe5,0x1,0x0                                                                                    
890
0010a0   cfe7     MOVFF     0xfe7,0x0                                                                                       
891
0010a2   f000                                                                                                               
892
0010a4   0100     MOVLB     0x0                                                                                             
893
0010a6   2400     ADDWF     0x0,0x0,0x0                                                                                     
894
0010a8   6f60     MOVWF     0x60,0x1                                                                                        
895
0010aa   0e00     MOVLW     0x0                                                                                             
896
0010ac   2001     ADDWFC    0x1,0x0,0x0                                                                                     
897
0010ae   6f61     MOVWF     0x61,0x1                                                                                        
898
0010b0   0e03     MOVLW     0x3            		MY_NID=EERead(NODE_ID_EE + 3);                                                 F:\MCP\projects\CAN\canBase\Source\Main.c
899
0010b2   6ee6     MOVWF     0xe6,0x0                                                                                        
900
0010b4   6ae6     CLRF      0xe6,0x0                                                                                        
901
0010b6   ecfc     CALL      0x17f8,0x0                                                                                      
902
0010b8   f00b                                                                                                               
903
0010ba   52e5     MOVF      0xe5,0x1,0x0                                                                                    
904
0010bc   52e5     MOVF      0xe5,0x1,0x0                                                                                    
905
0010be   0100     MOVLB     0x0                                                                                             
906
0010c0   6f62     MOVWF     0x62,0x1                                                                                        
100 johboh 907
                                           	}                                                                               F:\MCP\projects\CAN\canBase\Source\Main.c
87 johboh 908
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Main.c
108 johboh 909
0011d0   d778     BRA       0x10c2         	while(1)                                                                        F:\MCP\projects\CAN\canBase\Source\Main.c
85 johboh 910
                                           	{                                                                               F:\MCP\projects\CAN\canBase\Source\Main.c
86 johboh 911
                                           		static TICK t = 0;                                                             F:\MCP\projects\CAN\canBase\Source\Main.c
108 johboh 912
                                           		static TICK heartbeat = 0;                                                     F:\MCP\projects\CAN\canBase\Source\Main.c
913
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Main.c
914
                                           		                                                                               F:\MCP\projects\CAN\canBase\Source\Main.c
915
0010c2   ecab     CALL      0x1956,0x0     		if ((tickGet()-heartbeat)>TICK_SECOND*5)                                       F:\MCP\projects\CAN\canBase\Source\Main.c
916
0010c4   f00c                                                                                                               
917
0010c6   0100     MOVLB     0x0                                                                                             
918
0010c8   516b     MOVF      0x6b,0x0,0x1                                                                                    
919
0010ca   5c12     SUBWF     0x12,0x0,0x0                                                                                    
920
0010cc   6e00     MOVWF     0x0,0x0                                                                                         
921
0010ce   516c     MOVF      0x6c,0x0,0x1                                                                                    
922
0010d0   5813     SUBWFB    0x13,0x0,0x0                                                                                    
923
0010d2   6e01     MOVWF     0x1,0x0                                                                                         
924
0010d4   516d     MOVF      0x6d,0x0,0x1                                                                                    
925
0010d6   5814     SUBWFB    0x14,0x0,0x0                                                                                    
926
0010d8   6e02     MOVWF     0x2,0x0                                                                                         
927
0010da   516e     MOVF      0x6e,0x0,0x1                                                                                    
928
0010dc   5815     SUBWFB    0x15,0x0,0x0                                                                                    
929
0010de   6e03     MOVWF     0x3,0x0                                                                                         
930
0010e0   80d8     BSF       0xd8,0x0,0x0                                                                                    
931
0010e2   0ef4     MOVLW     0xf4                                                                                            
932
0010e4   5400     SUBFWB    0x0,0x0,0x0                                                                                     
933
0010e6   0e01     MOVLW     0x1                                                                                             
934
0010e8   5401     SUBFWB    0x1,0x0,0x0                                                                                     
935
0010ea   0e00     MOVLW     0x0                                                                                             
936
0010ec   5402     SUBFWB    0x2,0x0,0x0                                                                                     
937
0010ee   0e00     MOVLW     0x0                                                                                             
938
0010f0   5403     SUBFWB    0x3,0x0,0x0                                                                                     
939
0010f2   e24a     BC        0x1188                                                                                          
85 johboh 940
                                           		{                                                                              F:\MCP\projects\CAN\canBase\Source\Main.c
108 johboh 941
0010f4   6adf     CLRF      0xdf,0x0       			outCm.funct 					= FUNCT_BOOTLOADER;                                          F:\MCP\projects\CAN\canBase\Source\Main.c
942
0010f6   0e08     MOVLW     0x8            			outCm.funcc 					= FUNCC_BOOT_HEARTBEAT;                                      F:\MCP\projects\CAN\canBase\Source\Main.c
943
0010f8   6ef3     MOVWF     0xf3,0x0                                                                                        
944
0010fa   0e01     MOVLW     0x1                                                                                             
945
0010fc   cff3     MOVFF     0xff3,0xfdb                                                                                     
946
0010fe   ffdb                                                                                                               
947
001100   0e02     MOVLW     0x2                                                                                             
948
001102   6adb     CLRF      0xdb,0x0                                                                                        
949
001104   0e03     MOVLW     0x3            			outCm.nid   					= MY_NID;                                                    F:\MCP\projects\CAN\canBase\Source\Main.c
950
001106   c062     MOVFF     0x62,0xfdb                                                                                      
951
001108   ffdb                                                                                                               
952
00110a   0e04     MOVLW     0x4            			outCm.sid   					= MY_ID;                                                     F:\MCP\projects\CAN\canBase\Source\Main.c
953
00110c   c060     MOVFF     0x60,0xfdb                                                                                      
954
00110e   ffdb                                                                                                               
955
001110   0e05     MOVLW     0x5                                                                                             
956
001112   c061     MOVFF     0x61,0xfdb                                                                                      
957
001114   ffdb                                                                                                               
958
001116   0e06     MOVLW     0x6            			outCm.data_length 				= 0;                                                    F:\MCP\projects\CAN\canBase\Source\Main.c
959
001118   6adb     CLRF      0xdb,0x0                                                                                        
960
00111a   0e02     MOVLW     0x2            			while(!canSendMessage(outCm,PRIO_HIGH));                                      F:\MCP\projects\CAN\canBase\Source\Main.c
961
00111c   6ee6     MOVWF     0xe6,0x0                                                                                        
962
00111e   cfd9     MOVFF     0xfd9,0xfe9                                                                                     
963
001120   ffe9                                                                                                               
964
001122   cfda     MOVFF     0xfda,0xfea                                                                                     
965
001124   ffea                                                                                                               
966
001126   cfee     MOVFF     0xfee,0xfe6                                                                                     
967
001128   ffe6                                                                                                               
968
00112a   cfee     MOVFF     0xfee,0xfe6                                                                                     
969
00112c   ffe6                                                                                                               
970
00112e   cfee     MOVFF     0xfee,0xfe6                                                                                     
971
001130   ffe6                                                                                                               
972
001132   cfee     MOVFF     0xfee,0xfe6                                                                                     
973
001134   ffe6                                                                                                               
974
001136   cfee     MOVFF     0xfee,0xfe6                                                                                     
975
001138   ffe6                                                                                                               
976
00113a   cfee     MOVFF     0xfee,0xfe6                                                                                     
977
00113c   ffe6                                                                                                               
978
00113e   cfee     MOVFF     0xfee,0xfe6                                                                                     
979
001140   ffe6                                                                                                               
980
001142   cfee     MOVFF     0xfee,0xfe6                                                                                     
981
001144   ffe6                                                                                                               
982
001146   cfee     MOVFF     0xfee,0xfe6                                                                                     
983
001148   ffe6                                                                                                               
984
00114a   cfee     MOVFF     0xfee,0xfe6                                                                                     
985
00114c   ffe6                                                                                                               
986
00114e   cfee     MOVFF     0xfee,0xfe6                                                                                     
987
001150   ffe6                                                                                                               
988
001152   cfee     MOVFF     0xfee,0xfe6                                                                                     
989
001154   ffe6                                                                                                               
990
001156   cfee     MOVFF     0xfee,0xfe6                                                                                     
991
001158   ffe6                                                                                                               
992
00115a   cfee     MOVFF     0xfee,0xfe6                                                                                     
993
00115c   ffe6                                                                                                               
994
00115e   cfee     MOVFF     0xfee,0xfe6                                                                                     
995
001160   ffe6                                                                                                               
996
001162   ec2c     CALL      0x1658,0x0                                                                                      
997
001164   f00b                                                                                                               
998
001166   6e00     MOVWF     0x0,0x0                                                                                         
999
001168   0e10     MOVLW     0x10                                                                                            
1000
00116a   5ee1     SUBWF     0xe1,0x1,0x0                                                                                    
1001
00116c   5000     MOVF      0x0,0x0,0x0                                                                                     
1002
00116e   0900     IORLW     0x0                                                                                             
1003
001170   e101     BNZ       0x1174                                                                                          
1004
001172   d7d3     BRA       0x111a                                                                                          
1005
                                           			                                                                              F:\MCP\projects\CAN\canBase\Source\Main.c
1006
001174   ecab     CALL      0x1956,0x0     			heartbeat = tickGet();                                                        F:\MCP\projects\CAN\canBase\Source\Main.c
1007
001176   f00c                                                                                                               
1008
001178   c012     MOVFF     0x12,0x6b                                                                                       
1009
00117a   f06b                                                                                                               
1010
00117c   c013     MOVFF     0x13,0x6c                                                                                       
1011
00117e   f06c                                                                                                               
1012
001180   c014     MOVFF     0x14,0x6d                                                                                       
1013
001182   f06d                                                                                                               
1014
001184   c015     MOVFF     0x15,0x6e                                                                                       
1015
001186   f06e                                                                                                               
85 johboh 1016
                                           		}                                                                              F:\MCP\projects\CAN\canBase\Source\Main.c
108 johboh 1017
001188   ecab     CALL      0x1956,0x0     		if ((tickGet()-t)>TICK_SECOND)                                                 F:\MCP\projects\CAN\canBase\Source\Main.c
1018
00118a   f00c                                                                                                               
1019
00118c   0100     MOVLB     0x0                                                                                             
1020
00118e   5167     MOVF      0x67,0x0,0x1                                                                                    
1021
001190   5c12     SUBWF     0x12,0x0,0x0                                                                                    
1022
001192   6e00     MOVWF     0x0,0x0                                                                                         
1023
001194   5168     MOVF      0x68,0x0,0x1                                                                                    
1024
001196   5813     SUBWFB    0x13,0x0,0x0                                                                                    
1025
001198   6e01     MOVWF     0x1,0x0                                                                                         
1026
00119a   5169     MOVF      0x69,0x0,0x1                                                                                    
1027
00119c   5814     SUBWFB    0x14,0x0,0x0                                                                                    
1028
00119e   6e02     MOVWF     0x2,0x0                                                                                         
1029
0011a0   516a     MOVF      0x6a,0x0,0x1                                                                                    
1030
0011a2   5815     SUBWFB    0x15,0x0,0x0                                                                                    
1031
0011a4   6e03     MOVWF     0x3,0x0                                                                                         
1032
0011a6   80d8     BSF       0xd8,0x0,0x0                                                                                    
1033
0011a8   0e64     MOVLW     0x64                                                                                            
1034
0011aa   5400     SUBFWB    0x0,0x0,0x0                                                                                     
1035
0011ac   0e00     MOVLW     0x0                                                                                             
1036
0011ae   5401     SUBFWB    0x1,0x0,0x0                                                                                     
1037
0011b0   0e00     MOVLW     0x0                                                                                             
1038
0011b2   5402     SUBFWB    0x2,0x0,0x0                                                                                     
1039
0011b4   0e00     MOVLW     0x0                                                                                             
1040
0011b6   5403     SUBFWB    0x3,0x0,0x0                                                                                     
1041
0011b8   e20b     BC        0x11d0                                                                                          
1042
                                           		{                                                                              F:\MCP\projects\CAN\canBase\Source\Main.c
1043
0011ba   7282     BTG       0x82,0x1,0x0   			LED0_IO=~LED0_IO;                                                             F:\MCP\projects\CAN\canBase\Source\Main.c
1044
0011bc   ecab     CALL      0x1956,0x0     			t = tickGet();                                                                F:\MCP\projects\CAN\canBase\Source\Main.c
1045
0011be   f00c                                                                                                               
1046
0011c0   c012     MOVFF     0x12,0x67                                                                                       
1047
0011c2   f067                                                                                                               
1048
0011c4   c013     MOVFF     0x13,0x68                                                                                       
1049
0011c6   f068                                                                                                               
1050
0011c8   c014     MOVFF     0x14,0x69                                                                                       
1051
0011ca   f069                                                                                                               
1052
0011cc   c015     MOVFF     0x15,0x6a                                                                                       
1053
0011ce   f06a                                                                                                               
1054
                                           		}                                                                              F:\MCP\projects\CAN\canBase\Source\Main.c
85 johboh 1055
                                           	}                                                                               F:\MCP\projects\CAN\canBase\Source\Main.c
108 johboh 1056
0011d2   0e0f     MOVLW     0xf            }                                                                                F:\MCP\projects\CAN\canBase\Source\Main.c
1057
0011d4   5ce1     SUBWF     0xe1,0x0,0x0                                                                                    
1058
0011d6   e202     BC        0x11dc                                                                                          
1059
0011d8   6ae1     CLRF      0xe1,0x0                                                                                        
1060
0011da   52e5     MOVF      0xe5,0x1,0x0                                                                                    
1061
0011dc   6ee1     MOVWF     0xe1,0x0                                                                                        
1062
0011de   52e5     MOVF      0xe5,0x1,0x0                                                                                    
1063
0011e0   cfe7     MOVFF     0xfe7,0xfd9                                                                                     
1064
0011e2   ffd9                                                                                                               
1065
0011e4   0012     RETURN    0x0                                                                                             
85 johboh 1066
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Main.c
1067
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Main.c
1068
                                           #pragma interrupt high_isr                                                       F:\MCP\projects\CAN\canBase\Source\Main.c
108 johboh 1069
0011e6   cfda     MOVFF     0xfda,0xfe4    void high_isr(void)                                                              F:\MCP\projects\CAN\canBase\Source\Main.c
1070
0011e8   ffe4                                                                                                               
1071
0011ea   cfe2     MOVFF     0xfe2,0xfda                                                                                     
1072
0011ec   ffda                                                                                                               
1073
0011ee   cfe9     MOVFF     0xfe9,0xfe4                                                                                     
1074
0011f0   ffe4                                                                                                               
1075
0011f2   cfea     MOVFF     0xfea,0xfe4                                                                                     
1076
0011f4   ffe4                                                                                                               
1077
0011f6   cff6     MOVFF     0xff6,0xfe4                                                                                     
1078
0011f8   ffe4                                                                                                               
1079
0011fa   cff7     MOVFF     0xff7,0xfe4                                                                                     
1080
0011fc   ffe4                                                                                                               
1081
0011fe   cff5     MOVFF     0xff5,0xfe4                                                                                     
1082
001200   ffe4                                                                                                               
1083
001202   cff3     MOVFF     0xff3,0xfe4                                                                                     
1084
001204   ffe4                                                                                                               
1085
001206   cff4     MOVFF     0xff4,0xfe4                                                                                     
1086
001208   ffe4                                                                                                               
1087
00120a   cffa     MOVFF     0xffa,0xfe4                                                                                     
1088
00120c   ffe4                                                                                                               
1089
00120e   ee00     LFSR      0x0,0xe                                                                                         
1090
001210   f00e                                                                                                               
1091
001212   0e0b     MOVLW     0xb                                                                                             
1092
001214   04e8     DECF      0xe8,0x0,0x0                                                                                    
1093
001216   e303     BNC       0x121e                                                                                          
1094
001218   cfee     MOVFF     0xfee,0xfe4                                                                                     
1095
00121a   ffe4                                                                                                               
1096
00121c   d7fb     BRA       0x1214                                                                                          
1097
00121e   ee00     LFSR      0x0,0x0                                                                                         
1098
001220   f000                                                                                                               
1099
001222   0e0e     MOVLW     0xe                                                                                             
1100
001224   04e8     DECF      0xe8,0x0,0x0                                                                                    
1101
001226   e303     BNC       0x122e                                                                                          
1102
001228   cfee     MOVFF     0xfee,0xfe4                                                                                     
1103
00122a   ffe4                                                                                                               
1104
00122c   d7fb     BRA       0x1224                                                                                          
1105
00122e   52e6     MOVF      0xe6,0x1,0x0                                                                                    
85 johboh 1106
                                           {                                                                                F:\MCP\projects\CAN\canBase\Source\Main.c
108 johboh 1107
001230   0004     CLRWDT                   	ClrWdt();                                                                       F:\MCP\projects\CAN\canBase\Source\Main.c
85 johboh 1108
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Main.c
1109
                                           	#ifdef USE_CAN                                                                  F:\MCP\projects\CAN\canBase\Source\Main.c
108 johboh 1110
001232   ec41     CALL      0x1482,0x0     		canISR();                                                                      F:\MCP\projects\CAN\canBase\Source\Main.c
1111
001234   f00a                                                                                                               
85 johboh 1112
                                           	#endif                                                                          F:\MCP\projects\CAN\canBase\Source\Main.c
1113
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Main.c
108 johboh 1114
001236   ecb5     CALL      0x196a,0x0     	tickUpdate();                                                                   F:\MCP\projects\CAN\canBase\Source\Main.c
1115
001238   f00c                                                                                                               
85 johboh 1116
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Main.c
108 johboh 1117
00123a   52e5     MOVF      0xe5,0x1,0x0   }                                                                                F:\MCP\projects\CAN\canBase\Source\Main.c
1118
00123c   ee00     LFSR      0x0,0xd                                                                                         
1119
00123e   f00d                                                                                                               
1120
001240   0e0e     MOVLW     0xe                                                                                             
1121
001242   04e8     DECF      0xe8,0x0,0x0                                                                                    
1122
001244   e303     BNC       0x124c                                                                                          
1123
001246   cfe5     MOVFF     0xfe5,0xfed                                                                                     
1124
001248   ffed                                                                                                               
1125
00124a   d7fb     BRA       0x1242                                                                                          
1126
00124c   ee00     LFSR      0x0,0x18                                                                                        
1127
00124e   f018                                                                                                               
1128
001250   0e0b     MOVLW     0xb                                                                                             
1129
001252   04e8     DECF      0xe8,0x0,0x0                                                                                    
1130
001254   e303     BNC       0x125c                                                                                          
1131
001256   cfe5     MOVFF     0xfe5,0xfed                                                                                     
1132
001258   ffed                                                                                                               
1133
00125a   d7fb     BRA       0x1252                                                                                          
1134
00125c   cfe5     MOVFF     0xfe5,0xffa                                                                                     
1135
00125e   fffa                                                                                                               
1136
001260   cfe5     MOVFF     0xfe5,0xff4                                                                                     
1137
001262   fff4                                                                                                               
1138
001264   cfe5     MOVFF     0xfe5,0xff3                                                                                     
1139
001266   fff3                                                                                                               
1140
001268   cfe5     MOVFF     0xfe5,0xff5                                                                                     
1141
00126a   fff5                                                                                                               
1142
00126c   cfe5     MOVFF     0xfe5,0xff7                                                                                     
1143
00126e   fff7                                                                                                               
1144
001270   cfe5     MOVFF     0xfe5,0xff6                                                                                     
1145
001272   fff6                                                                                                               
1146
001274   cfe5     MOVFF     0xfe5,0xfea                                                                                     
1147
001276   ffea                                                                                                               
1148
001278   cfe5     MOVFF     0xfe5,0xfe9                                                                                     
1149
00127a   ffe9                                                                                                               
1150
00127c   cfe5     MOVFF     0xfe5,0xfda                                                                                     
1151
00127e   ffda                                                                                                               
1152
001280   0011     RETFIE    0x1                                                                                             
85 johboh 1153
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Main.c
89 johboh 1154
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Main.c
85 johboh 1155
                                           #pragma interrupt low_isr                                                        F:\MCP\projects\CAN\canBase\Source\Main.c
108 johboh 1156
001282   cfda     MOVFF     0xfda,0xfe4    void low_isr(void)                                                               F:\MCP\projects\CAN\canBase\Source\Main.c
1157
001284   ffe4                                                                                                               
1158
001286   cfe2     MOVFF     0xfe2,0xfda                                                                                     
1159
001288   ffda                                                                                                               
1160
00128a   52e6     MOVF      0xe6,0x1,0x0                                                                                    
85 johboh 1161
                                           {                                                                                F:\MCP\projects\CAN\canBase\Source\Main.c
1162
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Main.c
108 johboh 1163
00128c   52e5     MOVF      0xe5,0x1,0x0   }                                                                                F:\MCP\projects\CAN\canBase\Source\Main.c
1164
00128e   cfe5     MOVFF     0xfe5,0xfda                                                                                     
1165
001290   ffda                                                                                                               
1166
001292   0011     RETFIE    0x1                                                                                             
85 johboh 1167
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Main.c
1168
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Main.c
1169
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Main.c
1170
                                           /*                                                                               F:\MCP\projects\CAN\canBase\Source\Main.c
1171
                                           *	Function: mainInit                                                             F:\MCP\projects\CAN\canBase\Source\Main.c
1172
                                           *                                                                                F:\MCP\projects\CAN\canBase\Source\Main.c
1173
                                           *	Input:	none                                                                    F:\MCP\projects\CAN\canBase\Source\Main.c
1174
                                           *	Output: none                                                                   F:\MCP\projects\CAN\canBase\Source\Main.c
1175
                                           *	Pre-conditions: none                                                           F:\MCP\projects\CAN\canBase\Source\Main.c
1176
                                           *	Affects: Se code                                                               F:\MCP\projects\CAN\canBase\Source\Main.c
1177
                                           *	Depends: none.                                                                 F:\MCP\projects\CAN\canBase\Source\Main.c
1178
                                           */                                                                               F:\MCP\projects\CAN\canBase\Source\Main.c
1179
                                           void mainInit()                                                                  F:\MCP\projects\CAN\canBase\Source\Main.c
1180
                                           {                                                                                F:\MCP\projects\CAN\canBase\Source\Main.c
108 johboh 1181
001294   9294     BCF       0x94,0x1,0x0   	LED0_TRIS=0;	                                                                   F:\MCP\projects\CAN\canBase\Source\Main.c
85 johboh 1182
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Main.c
1183
                                           	// Enable Interrupts                                                            F:\MCP\projects\CAN\canBase\Source\Main.c
108 johboh 1184
001296   8ef2     BSF       0xf2,0x7,0x0       INTCONbits.GIEH = 1;                                                         F:\MCP\projects\CAN\canBase\Source\Main.c
1185
001298   8cf2     BSF       0xf2,0x6,0x0       INTCONbits.GIEL = 1;                                                         F:\MCP\projects\CAN\canBase\Source\Main.c
85 johboh 1186
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Main.c
1187
                                           	// Enable interrupt prirority                                                   F:\MCP\projects\CAN\canBase\Source\Main.c
108 johboh 1188
00129a   8ed0     BSF       0xd0,0x7,0x0   	RCONbits.IPEN=1;                                                                F:\MCP\projects\CAN\canBase\Source\Main.c
85 johboh 1189
                                           	                                                                                F:\MCP\projects\CAN\canBase\Source\Main.c
1190
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Main.c
108 johboh 1191
00129c   0012     RETURN    0x0            }                                                                                F:\MCP\projects\CAN\canBase\Source\Main.c
85 johboh 1192
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Main.c
1193
                                           /*                                                                               F:\MCP\projects\CAN\canBase\Source\Main.c
1194
                                           *	Function: canParse                                                             F:\MCP\projects\CAN\canBase\Source\Main.c
1195
                                           *                                                                                F:\MCP\projects\CAN\canBase\Source\Main.c
1196
                                           *	Input:	Received can message                                                    F:\MCP\projects\CAN\canBase\Source\Main.c
1197
                                           *	Output: none                                                                   F:\MCP\projects\CAN\canBase\Source\Main.c
1198
                                           *	Pre-conditions: canInit and received packet.                                   F:\MCP\projects\CAN\canBase\Source\Main.c
1199
                                           *	Affects: Sensors/actuators/etc. See code.                                      F:\MCP\projects\CAN\canBase\Source\Main.c
1200
                                           *	Depends: none.                                                                 F:\MCP\projects\CAN\canBase\Source\Main.c
1201
                                           */                                                                               F:\MCP\projects\CAN\canBase\Source\Main.c
1202
                                           #ifdef USE_CAN                                                                   F:\MCP\projects\CAN\canBase\Source\Main.c
108 johboh 1203
00129e   cfd9     MOVFF     0xfd9,0xfe6    void canParse(CAN_MESSAGE cm)                                                    F:\MCP\projects\CAN\canBase\Source\Main.c
1204
0012a0   ffe6                                                                                                               
1205
0012a2   cfe1     MOVFF     0xfe1,0xfd9                                                                                     
1206
0012a4   ffd9                                                                                                               
1207
0012a6   0e0f     MOVLW     0xf                                                                                             
1208
0012a8   26e1     ADDWF     0xe1,0x1,0x0                                                                                    
85 johboh 1209
                                           {                                                                                F:\MCP\projects\CAN\canBase\Source\Main.c
108 johboh 1210
                                           	CAN_MESSAGE outCm;                                                              F:\MCP\projects\CAN\canBase\Source\Main.c
89 johboh 1211
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Main.c
108 johboh 1212
0012aa   0004     CLRWDT                   	ClrWdt();                                                                       F:\MCP\projects\CAN\canBase\Source\Main.c
1213
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Main.c
1214
0012ac   0ef0     MOVLW     0xf0           	switch(cm.funct)                                                                F:\MCP\projects\CAN\canBase\Source\Main.c
1215
0012ae   50db     MOVF      0xdb,0x0,0x0                                                                                    
1216
0012b0   e001     BZ        0x12b4                                                                                          
1217
0012b2   d0b2     BRA       0x1418                                                                                          
86 johboh 1218
                                           	{                                                                               F:\MCP\projects\CAN\canBase\Source\Main.c
1219
                                           		case FUNCT_BOOTLOADER:                                                         F:\MCP\projects\CAN\canBase\Source\Main.c
108 johboh 1220
0012b4   0ef3     MOVLW     0xf3           			if (cm.nid==MY_NID && ((((unsigned int)cm.data[BOOT_DATA_RID_HIGH_INDEX])<<8)+cm.data[BOOT_DATA_RID_LOW_INDEX])==MY_ID)  F:\MCP\projects\CAN\canBase\Source\Main.c
1221
0012b6   50db     MOVF      0xdb,0x0,0x0                                                                                    
1222
0012b8   0100     MOVLB     0x0                                                                                             
1223
0012ba   5d62     SUBWF     0x62,0x0,0x1                                                                                    
1224
0012bc   e001     BZ        0x12c0                                                                                          
1225
0012be   d0ab     BRA       0x1416                                                                                          
1226
0012c0   0efc     MOVLW     0xfc                                                                                            
1227
0012c2   cfdb     MOVFF     0xfdb,0x2                                                                                       
1228
0012c4   f002                                                                                                               
1229
0012c6   c002     MOVFF     0x2,0x3                                                                                         
1230
0012c8   f003                                                                                                               
1231
0012ca   6a02     CLRF      0x2,0x0                                                                                         
1232
0012cc   0efb     MOVLW     0xfb                                                                                            
1233
0012ce   50db     MOVF      0xdb,0x0,0x0                                                                                    
1234
0012d0   0100     MOVLB     0x0                                                                                             
1235
0012d2   2402     ADDWF     0x2,0x0,0x0                                                                                     
1236
0012d4   6e00     MOVWF     0x0,0x0                                                                                         
1237
0012d6   0e00     MOVLW     0x0                                                                                             
1238
0012d8   2003     ADDWFC    0x3,0x0,0x0                                                                                     
1239
0012da   6e01     MOVWF     0x1,0x0                                                                                         
1240
0012dc   0100     MOVLB     0x0                                                                                             
1241
0012de   5160     MOVF      0x60,0x0,0x1                                                                                    
1242
0012e0   1800     XORWF     0x0,0x0,0x0                                                                                     
1243
0012e2   e102     BNZ       0x12e8                                                                                          
1244
0012e4   5161     MOVF      0x61,0x0,0x1                                                                                    
1245
0012e6   1801     XORWF     0x1,0x0,0x0                                                                                     
1246
0012e8   e001     BZ        0x12ec                                                                                          
1247
0012ea   d095     BRA       0x1416                                                                                          
103 johboh 1248
                                           			{                                                                             F:\MCP\projects\CAN\canBase\Source\Main.c
108 johboh 1249
0012ec   0ef1     MOVLW     0xf1           				switch(cm.funcc)                                                             F:\MCP\projects\CAN\canBase\Source\Main.c
1250
0012ee   cfdb     MOVFF     0xfdb,0x14                                                                                      
1251
0012f0   f014                                                                                                               
1252
0012f2   0ef2     MOVLW     0xf2                                                                                            
1253
0012f4   cfdb     MOVFF     0xfdb,0x15                                                                                      
1254
0012f6   f015                                                                                                               
1255
0012f8   0e06     MOVLW     0x6                                                                                             
1256
0012fa   1814     XORWF     0x14,0x0,0x0                                                                                    
1257
0012fc   e101     BNZ       0x1300                                                                                          
1258
0012fe   5015     MOVF      0x15,0x0,0x0                                                                                    
1259
001300   e008     BZ        0x1312                                                                                          
1260
001302   0e01     MOVLW     0x1                                                                                             
1261
001304   1814     XORWF     0x14,0x0,0x0                                                                                    
1262
001306   e101     BNZ       0x130a                                                                                          
1263
001308   5015     MOVF      0x15,0x0,0x0                                                                                    
1264
00130a   e001     BZ        0x130e                                                                                          
1265
00130c   d084     BRA       0x1416                                                                                          
103 johboh 1266
                                           				{                                                                            F:\MCP\projects\CAN\canBase\Source\Main.c
108 johboh 1267
00130e   00ff     RESET                    					case FUNCC_BOOT_INIT: Reset(); break; //User whant to program me, reset me. F:\MCP\projects\CAN\canBase\Source\Main.c
1268
001310   d082     BRA       0x1416                                                                                          
103 johboh 1269
                                           					case FUNCC_BOOT_SET_ID:                                                     F:\MCP\projects\CAN\canBase\Source\Main.c
1270
                                           						// Change my ID and NID                                                    F:\MCP\projects\CAN\canBase\Source\Main.c
108 johboh 1271
001312   0ef8     MOVLW     0xf8           						MY_ID=(((WORD)cm.data[BOOT_DATA_NEW_ID_HIGH])<<8)+cm.data[BOOT_DATA_NEW_ID_LOW]; F:\MCP\projects\CAN\canBase\Source\Main.c
1272
001314   cfdb     MOVFF     0xfdb,0x0                                                                                       
1273
001316   f000                                                                                                               
1274
001318   c000     MOVFF     0x0,0x1                                                                                         
1275
00131a   f001                                                                                                               
1276
00131c   6a00     CLRF      0x0,0x0                                                                                         
1277
00131e   0ef7     MOVLW     0xf7                                                                                            
1278
001320   50db     MOVF      0xdb,0x0,0x0                                                                                    
1279
001322   0100     MOVLB     0x0                                                                                             
1280
001324   2400     ADDWF     0x0,0x0,0x0                                                                                     
1281
001326   6f60     MOVWF     0x60,0x1                                                                                        
1282
001328   0e00     MOVLW     0x0                                                                                             
1283
00132a   2001     ADDWFC    0x1,0x0,0x0                                                                                     
1284
00132c   6f61     MOVWF     0x61,0x1                                                                                        
1285
00132e   0ef9     MOVLW     0xf9           						MY_NID=cm.data[BOOT_DATA_NEW_NID];                                         F:\MCP\projects\CAN\canBase\Source\Main.c
1286
001330   cfdb     MOVFF     0xfdb,0x62                                                                                      
1287
001332   f062                                                                                                               
1288
001334   0ef8     MOVLW     0xf8           						EEWrite(NODE_ID_EE+1,cm.data[BOOT_DATA_NEW_ID_HIGH]);                      F:\MCP\projects\CAN\canBase\Source\Main.c
1289
001336   cfdb     MOVFF     0xfdb,0xfe6                                                                                     
1290
001338   ffe6                                                                                                               
1291
00133a   0e01     MOVLW     0x1                                                                                             
1292
00133c   6ee6     MOVWF     0xe6,0x0                                                                                        
1293
00133e   6ae6     CLRF      0xe6,0x0                                                                                        
1294
001340   ec21     CALL      0x1842,0x0                                                                                      
1295
001342   f00c                                                                                                               
1296
001344   52e5     MOVF      0xe5,0x1,0x0                                                                                    
1297
001346   52e5     MOVF      0xe5,0x1,0x0                                                                                    
1298
001348   52e5     MOVF      0xe5,0x1,0x0                                                                                    
1299
00134a   0ef7     MOVLW     0xf7           						EEWrite(NODE_ID_EE+2,cm.data[BOOT_DATA_NEW_ID_LOW]);                       F:\MCP\projects\CAN\canBase\Source\Main.c
1300
00134c   cfdb     MOVFF     0xfdb,0xfe6                                                                                     
1301
00134e   ffe6                                                                                                               
1302
001350   0e02     MOVLW     0x2                                                                                             
1303
001352   6ee6     MOVWF     0xe6,0x0                                                                                        
1304
001354   6ae6     CLRF      0xe6,0x0                                                                                        
1305
001356   ec21     CALL      0x1842,0x0                                                                                      
1306
001358   f00c                                                                                                               
1307
00135a   52e5     MOVF      0xe5,0x1,0x0                                                                                    
1308
00135c   52e5     MOVF      0xe5,0x1,0x0                                                                                    
1309
00135e   52e5     MOVF      0xe5,0x1,0x0                                                                                    
1310
001360   0ef9     MOVLW     0xf9           						EEWrite(NODE_ID_EE+3,cm.data[BOOT_DATA_NEW_NID]);                          F:\MCP\projects\CAN\canBase\Source\Main.c
1311
001362   cfdb     MOVFF     0xfdb,0xfe6                                                                                     
1312
001364   ffe6                                                                                                               
1313
001366   0e03     MOVLW     0x3                                                                                             
1314
001368   6ee6     MOVWF     0xe6,0x0                                                                                        
1315
00136a   6ae6     CLRF      0xe6,0x0                                                                                        
1316
00136c   ec21     CALL      0x1842,0x0                                                                                      
1317
00136e   f00c                                                                                                               
1318
001370   52e5     MOVF      0xe5,0x1,0x0                                                                                    
1319
001372   52e5     MOVF      0xe5,0x1,0x0                                                                                    
1320
001374   52e5     MOVF      0xe5,0x1,0x0                                                                                    
1321
001376   0e2a     MOVLW     0x2a           						EEWrite(NODE_ID_EE,NODE_HAS_ID);                                           F:\MCP\projects\CAN\canBase\Source\Main.c
1322
001378   6ee6     MOVWF     0xe6,0x0                                                                                        
1323
00137a   0e00     MOVLW     0x0                                                                                             
1324
00137c   6ee6     MOVWF     0xe6,0x0                                                                                        
1325
00137e   6ae6     CLRF      0xe6,0x0                                                                                        
1326
001380   ec21     CALL      0x1842,0x0                                                                                      
1327
001382   f00c                                                                                                               
1328
001384   52e5     MOVF      0xe5,0x1,0x0                                                                                    
1329
001386   52e5     MOVF      0xe5,0x1,0x0                                                                                    
1330
001388   52e5     MOVF      0xe5,0x1,0x0                                                                                    
1331
                                           						// Send ack with new id.                                                   F:\MCP\projects\CAN\canBase\Source\Main.c
1332
00138a   6adf     CLRF      0xdf,0x0       						outCm.funct 					= FUNCT_BOOTLOADER;                                       F:\MCP\projects\CAN\canBase\Source\Main.c
1333
00138c   0e04     MOVLW     0x4            						outCm.funcc 					= FUNCC_BOOT_ACK;                                         F:\MCP\projects\CAN\canBase\Source\Main.c
1334
00138e   6ef3     MOVWF     0xf3,0x0                                                                                        
1335
001390   0e01     MOVLW     0x1                                                                                             
1336
001392   cff3     MOVFF     0xff3,0xfdb                                                                                     
1337
001394   ffdb                                                                                                               
1338
001396   0e02     MOVLW     0x2                                                                                             
1339
001398   6adb     CLRF      0xdb,0x0                                                                                        
1340
00139a   0e03     MOVLW     0x3            						outCm.nid   					= MY_NID;                                                 F:\MCP\projects\CAN\canBase\Source\Main.c
1341
00139c   c062     MOVFF     0x62,0xfdb                                                                                      
1342
00139e   ffdb                                                                                                               
1343
0013a0   0e04     MOVLW     0x4            						outCm.sid   					= MY_ID;                                                  F:\MCP\projects\CAN\canBase\Source\Main.c
1344
0013a2   c060     MOVFF     0x60,0xfdb                                                                                      
1345
0013a4   ffdb                                                                                                               
1346
0013a6   0e05     MOVLW     0x5                                                                                             
1347
0013a8   c061     MOVFF     0x61,0xfdb                                                                                      
1348
0013aa   ffdb                                                                                                               
1349
0013ac   0e08     MOVLW     0x8            						outCm.data_length 				= 8;                                                 F:\MCP\projects\CAN\canBase\Source\Main.c
1350
0013ae   6ef3     MOVWF     0xf3,0x0                                                                                        
1351
0013b0   0e06     MOVLW     0x6                                                                                             
1352
0013b2   cff3     MOVFF     0xff3,0xfdb                                                                                     
1353
0013b4   ffdb                                                                                                               
1354
0013b6   0e0b     MOVLW     0xb            						outCm.data[BOOT_DATA_ERR_INDEX]	= ACK_ERR_NO_ERROR;                        F:\MCP\projects\CAN\canBase\Source\Main.c
1355
0013b8   6adb     CLRF      0xdb,0x0                                                                                        
1356
0013ba   0e02     MOVLW     0x2            						while(!canSendMessage(outCm,PRIO_HIGH));                                   F:\MCP\projects\CAN\canBase\Source\Main.c
1357
0013bc   6ee6     MOVWF     0xe6,0x0                                                                                        
1358
0013be   cfd9     MOVFF     0xfd9,0xfe9                                                                                     
1359
0013c0   ffe9                                                                                                               
1360
0013c2   cfda     MOVFF     0xfda,0xfea                                                                                     
1361
0013c4   ffea                                                                                                               
1362
0013c6   cfee     MOVFF     0xfee,0xfe6                                                                                     
1363
0013c8   ffe6                                                                                                               
1364
0013ca   cfee     MOVFF     0xfee,0xfe6                                                                                     
1365
0013cc   ffe6                                                                                                               
1366
0013ce   cfee     MOVFF     0xfee,0xfe6                                                                                     
1367
0013d0   ffe6                                                                                                               
1368
0013d2   cfee     MOVFF     0xfee,0xfe6                                                                                     
1369
0013d4   ffe6                                                                                                               
1370
0013d6   cfee     MOVFF     0xfee,0xfe6                                                                                     
1371
0013d8   ffe6                                                                                                               
1372
0013da   cfee     MOVFF     0xfee,0xfe6                                                                                     
1373
0013dc   ffe6                                                                                                               
1374
0013de   cfee     MOVFF     0xfee,0xfe6                                                                                     
1375
0013e0   ffe6                                                                                                               
1376
0013e2   cfee     MOVFF     0xfee,0xfe6                                                                                     
1377
0013e4   ffe6                                                                                                               
1378
0013e6   cfee     MOVFF     0xfee,0xfe6                                                                                     
1379
0013e8   ffe6                                                                                                               
1380
0013ea   cfee     MOVFF     0xfee,0xfe6                                                                                     
1381
0013ec   ffe6                                                                                                               
1382
0013ee   cfee     MOVFF     0xfee,0xfe6                                                                                     
1383
0013f0   ffe6                                                                                                               
1384
0013f2   cfee     MOVFF     0xfee,0xfe6                                                                                     
1385
0013f4   ffe6                                                                                                               
1386
0013f6   cfee     MOVFF     0xfee,0xfe6                                                                                     
1387
0013f8   ffe6                                                                                                               
1388
0013fa   cfee     MOVFF     0xfee,0xfe6                                                                                     
1389
0013fc   ffe6                                                                                                               
1390
0013fe   cfee     MOVFF     0xfee,0xfe6                                                                                     
1391
001400   ffe6                                                                                                               
1392
001402   ec2c     CALL      0x1658,0x0                                                                                      
1393
001404   f00b                                                                                                               
1394
001406   6e00     MOVWF     0x0,0x0                                                                                         
1395
001408   0e10     MOVLW     0x10                                                                                            
1396
00140a   5ee1     SUBWF     0xe1,0x1,0x0                                                                                    
1397
00140c   5000     MOVF      0x0,0x0,0x0                                                                                     
1398
00140e   0900     IORLW     0x0                                                                                             
1399
001410   e101     BNZ       0x1414                                                                                          
1400
001412   d7d3     BRA       0x13ba                                                                                          
1401
001414   d000     BRA       0x1416         					break;                                                                      F:\MCP\projects\CAN\canBase\Source\Main.c
103 johboh 1402
                                           				}                                                                            F:\MCP\projects\CAN\canBase\Source\Main.c
1403
                                           			}                                                                             F:\MCP\projects\CAN\canBase\Source\Main.c
1404
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Main.c
1405
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Main.c
108 johboh 1406
001416   d000     BRA       0x1418         		break;                                                                         F:\MCP\projects\CAN\canBase\Source\Main.c
86 johboh 1407
                                           	}                                                                               F:\MCP\projects\CAN\canBase\Source\Main.c
108 johboh 1408
001418   0e0f     MOVLW     0xf            }                                                                                F:\MCP\projects\CAN\canBase\Source\Main.c
1409
00141a   5ce1     SUBWF     0xe1,0x0,0x0                                                                                    
1410
00141c   e202     BC        0x1422                                                                                          
1411
00141e   6ae1     CLRF      0xe1,0x0                                                                                        
1412
001420   52e5     MOVF      0xe5,0x1,0x0                                                                                    
1413
001422   6ee1     MOVWF     0xe1,0x0                                                                                        
1414
001424   52e5     MOVF      0xe5,0x1,0x0                                                                                    
1415
001426   cfe7     MOVFF     0xfe7,0xfd9                                                                                     
1416
001428   ffd9                                                                                                               
1417
00142a   0012     RETURN    0x0                                                                                             
86 johboh 1418
                                           #endif                                                                           F:\MCP\projects\CAN\canBase\Source\Main.c
85 johboh 1419
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Main.c
1420
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Main.c
86 johboh 1421
                                           // Below are mandantory when using bootloader                                    F:\MCP\projects\CAN\canBase\Source\Main.c
1422
                                           // define DEBUG_MODE to use without bootloader.                                  F:\MCP\projects\CAN\canBase\Source\Main.c
85 johboh 1423
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Main.c
1424
                                           #ifndef DEBUG_MODE                                                               F:\MCP\projects\CAN\canBase\Source\Main.c
1425
                                           extern void _startup (void);                                                     F:\MCP\projects\CAN\canBase\Source\Main.c
1426
                                           #pragma code _RESET_INTERRUPT_VECTOR = 0x001000                                  F:\MCP\projects\CAN\canBase\Source\Main.c
1427
                                           void _reset (void)                                                               F:\MCP\projects\CAN\canBase\Source\Main.c
1428
                                           {                                                                                F:\MCP\projects\CAN\canBase\Source\Main.c
108 johboh 1429
001000   efc3     GOTO      0x1986             _asm goto _startup _endasm                                                   F:\MCP\projects\CAN\canBase\Source\Main.c
100 johboh 1430
001002   f00c                                                                                                               
85 johboh 1431
001004   0012     RETURN    0x0            }                                                                                F:\MCP\projects\CAN\canBase\Source\Main.c
1432
                                           #pragma code                                                                     F:\MCP\projects\CAN\canBase\Source\Main.c
1433
                                           #endif                                                                           F:\MCP\projects\CAN\canBase\Source\Main.c
1434
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Main.c
1435
                                           #pragma code _HIGH_INTERRUPT_VECTOR = 0x001008                                   F:\MCP\projects\CAN\canBase\Source\Main.c
1436
                                           void _high_ISR (void)                                                            F:\MCP\projects\CAN\canBase\Source\Main.c
1437
                                           {                                                                                F:\MCP\projects\CAN\canBase\Source\Main.c
108 johboh 1438
001008   eff3     GOTO      0x11e6         	_asm GOTO high_isr _endasm                                                      F:\MCP\projects\CAN\canBase\Source\Main.c
1439
00100a   f008                                                                                                               
85 johboh 1440
00100c   0012     RETURN    0x0            }                                                                                F:\MCP\projects\CAN\canBase\Source\Main.c
1441
                                           #pragma code                                                                     F:\MCP\projects\CAN\canBase\Source\Main.c
1442
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Main.c
1443
                                           #pragma code _LOW_INTERRUPT_VECTOR = 0x001018                                    F:\MCP\projects\CAN\canBase\Source\Main.c
1444
                                           void _low_ISR (void)                                                             F:\MCP\projects\CAN\canBase\Source\Main.c
1445
                                           {                                                                                F:\MCP\projects\CAN\canBase\Source\Main.c
108 johboh 1446
001018   ef41     GOTO      0x1282             _asm GOTO low_isr _endasm                                                    F:\MCP\projects\CAN\canBase\Source\Main.c
1447
00101a   f009                                                                                                               
85 johboh 1448
00101c   0012     RETURN    0x0            }                                                                                F:\MCP\projects\CAN\canBase\Source\Main.c
1449
                                           #pragma code                                                                     F:\MCP\projects\CAN\canBase\Source\Main.c
95 johboh 1450
                                           /*********************************************************************           F:\MCP\projects\CAN\Include\EEAccess.c
1451
                                            *                                                                               F:\MCP\projects\CAN\Include\EEAccess.c
1452
                                            *   Functions for reading and writing to EEPROM.                                F:\MCP\projects\CAN\Include\EEAccess.c
1453
                                            *                                                                               F:\MCP\projects\CAN\Include\EEAccess.c
1454
                                            *********************************************************************           F:\MCP\projects\CAN\Include\EEAccess.c
1455
                                            * FileName:        	$HeadURL: http://svn.arune.se/svn/HomeAutomation/trunk/EmbeddedSoftware/PIC/Include/EEAccess.c $ F:\MCP\projects\CAN\Include\EEAccess.c
1456
                                            * Last changed:	$LastChangedDate: 2006-11-14 20:15:02 +0100 (ti, 14 nov 2006) $ F:\MCP\projects\CAN\Include\EEAccess.c
1457
                                            * By:			$LastChangedBy: johboh $                                                F:\MCP\projects\CAN\Include\EEAccess.c
1458
                                            * Revision:		$Revision: 94 $                                                    F:\MCP\projects\CAN\Include\EEAccess.c
1459
                                            ********************************************************************/           F:\MCP\projects\CAN\Include\EEAccess.c
1460
                                           #include <p18cxxx.h>                                                             F:\MCP\projects\CAN\Include\EEAccess.c
1461
                                           #include <EEaccess.h>                                                            F:\MCP\projects\CAN\Include\EEAccess.c
1462
                                                                                                                            F:\MCP\projects\CAN\Include\EEAccess.c
108 johboh 1463
0017f8   cfd9     MOVFF     0xfd9,0xfe6    BYTE EERead(WORD addr)                                                           F:\MCP\projects\CAN\Include\EEAccess.c
1464
0017fa   ffe6                                                                                                               
1465
0017fc   cfe1     MOVFF     0xfe1,0xfd9                                                                                     
1466
0017fe   ffd9                                                                                                               
95 johboh 1467
                                           {                                                                                F:\MCP\projects\CAN\Include\EEAccess.c
108 johboh 1468
001800   0efd     MOVLW     0xfd           	EEADRH=(BYTE)(addr>>8);                                                         F:\MCP\projects\CAN\Include\EEAccess.c
1469
001802   cfdb     MOVFF     0xfdb,0x0                                                                                       
1470
001804   f000                                                                                                               
1471
001806   0efe     MOVLW     0xfe                                                                                            
1472
001808   cfdb     MOVFF     0xfdb,0x1                                                                                       
1473
00180a   f001                                                                                                               
1474
00180c   c001     MOVFF     0x1,0x0                                                                                         
1475
00180e   f000                                                                                                               
1476
001810   6a01     CLRF      0x1,0x0                                                                                         
1477
001812   5000     MOVF      0x0,0x0,0x0                                                                                     
1478
001814   6eaa     MOVWF     0xaa,0x0                                                                                        
1479
001816   0eff     MOVLW     0xff           	EEADR=(BYTE)(addr & 0xFF);                                                      F:\MCP\projects\CAN\Include\EEAccess.c
1480
001818   6ee7     MOVWF     0xe7,0x0                                                                                        
1481
00181a   0efd     MOVLW     0xfd                                                                                            
1482
00181c   cfdb     MOVFF     0xfdb,0x0                                                                                       
1483
00181e   f000                                                                                                               
1484
001820   0efe     MOVLW     0xfe                                                                                            
1485
001822   cfdb     MOVFF     0xfdb,0x1                                                                                       
1486
001824   f001                                                                                                               
1487
001826   50e7     MOVF      0xe7,0x0,0x0                                                                                    
1488
001828   1600     ANDWF     0x0,0x1,0x0                                                                                     
1489
00182a   6a01     CLRF      0x1,0x0                                                                                         
1490
00182c   5000     MOVF      0x0,0x0,0x0                                                                                     
1491
00182e   6ea9     MOVWF     0xa9,0x0                                                                                        
1492
001830   9ea6     BCF       0xa6,0x7,0x0   	EECON1bits.EEPGD=0;                                                             F:\MCP\projects\CAN\Include\EEAccess.c
1493
001832   9ca6     BCF       0xa6,0x6,0x0   	EECON1bits.CFGS=0;                                                              F:\MCP\projects\CAN\Include\EEAccess.c
1494
001834   80a6     BSF       0xa6,0x0,0x0   	EECON1bits.RD=1;                                                                F:\MCP\projects\CAN\Include\EEAccess.c
1495
001836   50a8     MOVF      0xa8,0x0,0x0   	return EEDATA;	                                                                 F:\MCP\projects\CAN\Include\EEAccess.c
1496
001838   d000     BRA       0x183a                                                                                          
1497
00183a   52e5     MOVF      0xe5,0x1,0x0   }                                                                                F:\MCP\projects\CAN\Include\EEAccess.c
1498
00183c   cfe7     MOVFF     0xfe7,0xfd9                                                                                     
1499
00183e   ffd9                                                                                                               
1500
001840   0012     RETURN    0x0                                                                                             
95 johboh 1501
                                                                                                                            F:\MCP\projects\CAN\Include\EEAccess.c
1502
                                                                                                                            F:\MCP\projects\CAN\Include\EEAccess.c
108 johboh 1503
001842   cfd9     MOVFF     0xfd9,0xfe6    void EEWrite(WORD addr,BYTE data)                                                F:\MCP\projects\CAN\Include\EEAccess.c
1504
001844   ffe6                                                                                                               
1505
001846   cfe1     MOVFF     0xfe1,0xfd9                                                                                     
1506
001848   ffd9                                                                                                               
95 johboh 1507
                                           {                                                                                F:\MCP\projects\CAN\Include\EEAccess.c
108 johboh 1508
00184a   98a1     BCF       0xa1,0x4,0x0   	PIR2bits.EEIF=0;                                                                F:\MCP\projects\CAN\Include\EEAccess.c
1509
00184c   0efd     MOVLW     0xfd           	EEADRH=(BYTE)(addr>>8);                                                         F:\MCP\projects\CAN\Include\EEAccess.c
1510
00184e   cfdb     MOVFF     0xfdb,0x0                                                                                       
1511
001850   f000                                                                                                               
1512
001852   0efe     MOVLW     0xfe                                                                                            
1513
001854   cfdb     MOVFF     0xfdb,0x1                                                                                       
1514
001856   f001                                                                                                               
1515
001858   c001     MOVFF     0x1,0x0                                                                                         
1516
00185a   f000                                                                                                               
1517
00185c   6a01     CLRF      0x1,0x0                                                                                         
1518
00185e   5000     MOVF      0x0,0x0,0x0                                                                                     
1519
001860   6eaa     MOVWF     0xaa,0x0                                                                                        
1520
001862   0eff     MOVLW     0xff           	EEADR=(BYTE)(addr & 0xFF);                                                      F:\MCP\projects\CAN\Include\EEAccess.c
1521
001864   6ee7     MOVWF     0xe7,0x0                                                                                        
1522
001866   0efd     MOVLW     0xfd                                                                                            
1523
001868   cfdb     MOVFF     0xfdb,0x0                                                                                       
1524
00186a   f000                                                                                                               
1525
00186c   0efe     MOVLW     0xfe                                                                                            
1526
00186e   cfdb     MOVFF     0xfdb,0x1                                                                                       
1527
001870   f001                                                                                                               
1528
001872   50e7     MOVF      0xe7,0x0,0x0                                                                                    
1529
001874   1600     ANDWF     0x0,0x1,0x0                                                                                     
1530
001876   6a01     CLRF      0x1,0x0                                                                                         
1531
001878   5000     MOVF      0x0,0x0,0x0                                                                                     
1532
00187a   6ea9     MOVWF     0xa9,0x0                                                                                        
1533
00187c   0efc     MOVLW     0xfc           	EEDATA=data;                                                                    F:\MCP\projects\CAN\Include\EEAccess.c
1534
00187e   50db     MOVF      0xdb,0x0,0x0                                                                                    
1535
001880   6ea8     MOVWF     0xa8,0x0                                                                                        
1536
001882   9ea6     BCF       0xa6,0x7,0x0   	EECON1bits.EEPGD=0;                                                             F:\MCP\projects\CAN\Include\EEAccess.c
1537
001884   9ca6     BCF       0xa6,0x6,0x0   	EECON1bits.CFGS=0;                                                              F:\MCP\projects\CAN\Include\EEAccess.c
1538
001886   84a6     BSF       0xa6,0x2,0x0   	EECON1bits.WREN=1;                                                              F:\MCP\projects\CAN\Include\EEAccess.c
1539
001888   9ef2     BCF       0xf2,0x7,0x0   	INTCONbits.GIE=0;                                                               F:\MCP\projects\CAN\Include\EEAccess.c
1540
00188a   0e55     MOVLW     0x55           	EECON2=0x55;                                                                    F:\MCP\projects\CAN\Include\EEAccess.c
1541
00188c   6ea7     MOVWF     0xa7,0x0                                                                                        
1542
00188e   0eaa     MOVLW     0xaa           	EECON2=0xAA;                                                                    F:\MCP\projects\CAN\Include\EEAccess.c
1543
001890   6ea7     MOVWF     0xa7,0x0                                                                                        
1544
001892   82a6     BSF       0xa6,0x1,0x0   	EECON1bits.WR=1;                                                                F:\MCP\projects\CAN\Include\EEAccess.c
1545
001894   8ef2     BSF       0xf2,0x7,0x0   	INTCONbits.GIE=1;                                                               F:\MCP\projects\CAN\Include\EEAccess.c
1546
001896   a8a1     BTFSS     0xa1,0x4,0x0   	while(!PIR2bits.EEIF);                                                          F:\MCP\projects\CAN\Include\EEAccess.c
1547
001898   d7fe     BRA       0x1896                                                                                          
1548
00189a   94a6     BCF       0xa6,0x2,0x0   	EECON1bits.WREN=0;                                                              F:\MCP\projects\CAN\Include\EEAccess.c
1549
00189c   52e5     MOVF      0xe5,0x1,0x0   }                                                                                F:\MCP\projects\CAN\Include\EEAccess.c
1550
00189e   cfe7     MOVFF     0xfe7,0xfd9                                                                                     
1551
0018a0   ffd9                                                                                                               
1552
0018a2   0012     RETURN    0x0