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.
103 johboh 3
Listing File Generated: Wed Nov 15 10:03:00 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
103 johboh 74
001846   0e79     MOVLW     0x79               TMR0L = TICK_COUNTER_LOW;                                                    F:\MCP\projects\CAN\canBase\Source\Tick.c
75
001848   6ed6     MOVWF     0xd6,0x0                                                                                        
76
00184a   0efe     MOVLW     0xfe               TMR0H = TICK_COUNTER_HIGH;                                                   F:\MCP\projects\CAN\canBase\Source\Tick.c
77
00184c   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
103 johboh 80
00184e   0e07     MOVLW     0x7                T0CON = 0b00000000 | TIMER_PRESCALE;                                         F:\MCP\projects\CAN\canBase\Source\Tick.c
81
001850   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
103 johboh 84
001852   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
103 johboh 86
001854   84f2     BSF       0xf2,0x2,0x0       INTCONbits.TMR0IF = 1;                                                       F:\MCP\projects\CAN\canBase\Source\Tick.c
87
001856   8af2     BSF       0xf2,0x5,0x0       INTCONbits.TMR0IE = 1;                                                       F:\MCP\projects\CAN\canBase\Source\Tick.c
88
001858   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
103 johboh 101
00185a   c075     MOVFF     0x75,0x12          return TickCount;                                                            F:\MCP\projects\CAN\canBase\Source\Tick.c
102
00185c   f012                                                                                                               
103
00185e   c076     MOVFF     0x76,0x13                                                                                       
104
001860   f013                                                                                                               
105
001862   c077     MOVFF     0x77,0x14                                                                                       
106
001864   f014                                                                                                               
107
001866   c078     MOVFF     0x78,0x15                                                                                       
108
001868   f015                                                                                                               
109
00186a   d000     BRA       0x186c                                                                                          
110
00186c   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
103 johboh 124
00186e   a4f2     BTFSS     0xf2,0x2,0x0       if(INTCONbits.TMR0IF)                                                        F:\MCP\projects\CAN\canBase\Source\Tick.c
125
001870   d00b     BRA       0x1888                                                                                          
85 johboh 126
                                               {                                                                            F:\MCP\projects\CAN\canBase\Source\Tick.c
103 johboh 127
001872   0efe     MOVLW     0xfe                   TMR0H = TICK_COUNTER_HIGH;                                               F:\MCP\projects\CAN\canBase\Source\Tick.c
128
001874   6ed7     MOVWF     0xd7,0x0                                                                                        
129
001876   0e79     MOVLW     0x79                   TMR0L = TICK_COUNTER_LOW;                                                F:\MCP\projects\CAN\canBase\Source\Tick.c
130
001878   6ed6     MOVWF     0xd6,0x0                                                                                        
85 johboh 131
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Tick.c
103 johboh 132
00187a   0100     MOVLB     0x0                    TickCount++;                                                             F:\MCP\projects\CAN\canBase\Source\Tick.c
133
00187c   2b75     INCF      0x75,0x1,0x1                                                                                    
134
00187e   0e00     MOVLW     0x0                                                                                             
135
001880   2376     ADDWFC    0x76,0x1,0x1                                                                                    
136
001882   2377     ADDWFC    0x77,0x1,0x1                                                                                    
137
001884   2378     ADDWFC    0x78,0x1,0x1                                                                                    
85 johboh 138
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Tick.c
103 johboh 139
001886   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
103 johboh 141
001888   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
173
001044   0e80     MOVLW     0x80           	CANCON = 0x80; //request config mode                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
174
001046   6e6f     MOVWF     0x6f,0x0                                                                                        
175
001048   0ee0     MOVLW     0xe0           	while ((CANSTAT & 0xE0) != 0x80 ); //wait for config mode request               F:\MCP\projects\CAN\canBase\Source\CAN.c
176
00104a   146e     ANDWF     0x6e,0x0,0x0                                                                                    
177
00104c   0880     SUBLW     0x80                                                                                            
178
00104e   e001     BZ        0x1052                                                                                          
179
001050   d7fb     BRA       0x1048                                                                                          
180
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
181
                                           	// BAUD AND TQS                                                                 F:\MCP\projects\CAN\canBase\Source\CAN.c
182
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
183
001052   6a70     CLRF      0x70,0x0       	BRGCON1=0;                                                                      F:\MCP\projects\CAN\canBase\Source\CAN.c
184
                                           	                                                                                F:\MCP\projects\CAN\canBase\Source\CAN.c
185
                                           	// Sync_Seq = 2 x TQ = 1                                                        F:\MCP\projects\CAN\canBase\Source\CAN.c
186
001054   9e70     BCF       0x70,0x7,0x0   	BRGCON1bits.SJW1=0;                                                             F:\MCP\projects\CAN\canBase\Source\CAN.c
187
001056   8c70     BSF       0x70,0x6,0x0   	BRGCON1bits.SJW0=1;                                                             F:\MCP\projects\CAN\canBase\Source\CAN.c
188
                                           	                                                                                F:\MCP\projects\CAN\canBase\Source\CAN.c
189
                                           	// Setting BRP.                                                                 F:\MCP\projects\CAN\canBase\Source\CAN.c
190
001058   0e04     MOVLW     0x4            	BRGCON1=BRGCON1|CAN_BRP;                                                        F:\MCP\projects\CAN\canBase\Source\CAN.c
191
00105a   1070     IORWF     0x70,0x0,0x0                                                                                    
192
00105c   6e70     MOVWF     0x70,0x0                                                                                        
193
                                           	                                                                                F:\MCP\projects\CAN\canBase\Source\CAN.c
194
                                           	// Maximum PHEG1                                                                F:\MCP\projects\CAN\canBase\Source\CAN.c
195
00105e   8e71     BSF       0x71,0x7,0x0   	BRGCON2bits.SEG2PHTS = 1;                                                       F:\MCP\projects\CAN\canBase\Source\CAN.c
196
                                           	                                                                                F:\MCP\projects\CAN\canBase\Source\CAN.c
197
                                           	// Phase_Seg1 = 2 x TQ = 1                                                      F:\MCP\projects\CAN\canBase\Source\CAN.c
198
001060   9a71     BCF       0x71,0x5,0x0   	BRGCON2bits.SEG1PH2 = 0;                                                        F:\MCP\projects\CAN\canBase\Source\CAN.c
199
001062   9871     BCF       0x71,0x4,0x0   	BRGCON2bits.SEG1PH1 = 0;                                                        F:\MCP\projects\CAN\canBase\Source\CAN.c
200
001064   8671     BSF       0x71,0x3,0x0   	BRGCON2bits.SEG1PH0 = 1;                                                        F:\MCP\projects\CAN\canBase\Source\CAN.c
201
                                           	                                                                                F:\MCP\projects\CAN\canBase\Source\CAN.c
202
                                           	// Prop_Seq = 2 x TQ = 1                                                        F:\MCP\projects\CAN\canBase\Source\CAN.c
203
001066   9471     BCF       0x71,0x2,0x0   	BRGCON2bits.PRSEG2 = 0;                                                         F:\MCP\projects\CAN\canBase\Source\CAN.c
204
001068   9271     BCF       0x71,0x1,0x0   	BRGCON2bits.PRSEG1 = 0;                                                         F:\MCP\projects\CAN\canBase\Source\CAN.c
205
00106a   8071     BSF       0x71,0x0,0x0   	BRGCON2bits.PRSEG0 = 1;                                                         F:\MCP\projects\CAN\canBase\Source\CAN.c
206
                                           	                                                                                F:\MCP\projects\CAN\canBase\Source\CAN.c
207
                                           	//  Enableing bus wake-up                                                       F:\MCP\projects\CAN\canBase\Source\CAN.c
208
00106c   9e72     BCF       0x72,0x7,0x0   	BRGCON3bits.WAKDIS = 0;                                                         F:\MCP\projects\CAN\canBase\Source\CAN.c
209
                                           	                                                                                F:\MCP\projects\CAN\canBase\Source\CAN.c
210
                                           	// Dont use filter when wakeup                                                  F:\MCP\projects\CAN\canBase\Source\CAN.c
211
00106e   9c72     BCF       0x72,0x6,0x0   	BRGCON3bits.WAKFIL = 0;                                                         F:\MCP\projects\CAN\canBase\Source\CAN.c
212
                                           	                                                                                F:\MCP\projects\CAN\canBase\Source\CAN.c
213
                                           	// Phase_Seg2 = 2 x TQ = 1                                                      F:\MCP\projects\CAN\canBase\Source\CAN.c
214
001070   9472     BCF       0x72,0x2,0x0   	BRGCON3bits.SEG2PH2 = 0;                                                        F:\MCP\projects\CAN\canBase\Source\CAN.c
215
001072   9272     BCF       0x72,0x1,0x0   	BRGCON3bits.SEG2PH1 = 0;                                                        F:\MCP\projects\CAN\canBase\Source\CAN.c
216
001074   8072     BSF       0x72,0x0,0x0   	BRGCON3bits.SEG2PH0 = 1;                                                        F:\MCP\projects\CAN\canBase\Source\CAN.c
217
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
218
001076   6a77     CLRF      0x77,0x0       	ECANCON=0;                                                                      F:\MCP\projects\CAN\canBase\Source\CAN.c
95 johboh 219
001078   8e77     BSF       0x77,0x7,0x0   	ECANCONbits.MDSEL1 = 1; // 0  For mode 1                                        F:\MCP\projects\CAN\canBase\Source\CAN.c
220
00107a   9c77     BCF       0x77,0x6,0x0   	ECANCONbits.MDSEL0 = 0; // 1  For mode 1                                        F:\MCP\projects\CAN\canBase\Source\CAN.c
85 johboh 221
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
222
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
223
                                           	// FILTERS AND MASKS                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
224
00107c   8c60     BSF       0x60,0x6,0x0   	RXB0CONbits.RXM1=1;                                                             F:\MCP\projects\CAN\canBase\Source\CAN.c
225
00107e   9a60     BCF       0x60,0x5,0x0   	RXB0CONbits.RXM0=0;                                                             F:\MCP\projects\CAN\canBase\Source\CAN.c
226
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
227
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
228
                                           	// INTERRUPTS                                                                   F:\MCP\projects\CAN\canBase\Source\CAN.c
229
                                           	                                                                                F:\MCP\projects\CAN\canBase\Source\CAN.c
230
                                           	// Diable transmit interrupt                                                    F:\MCP\projects\CAN\canBase\Source\CAN.c
231
001080   010d     MOVLB     0xd            	TXBIE = 0;                                                                      F:\MCP\projects\CAN\canBase\Source\CAN.c
232
001082   6bfc     CLRF      0xfc,0x1                                                                                        
233
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
234
                                           	//rx any interrupt                                                              F:\MCP\projects\CAN\canBase\Source\CAN.c
235
001084   6aa4     CLRF      0xa4,0x0       	PIR3 = 0;                                                                       F:\MCP\projects\CAN\canBase\Source\CAN.c
236
001086   0e03     MOVLW     0x3            	PIE3 = 0b00000011;                                                              F:\MCP\projects\CAN\canBase\Source\CAN.c
237
001088   6ea3     MOVWF     0xa3,0x0                                                                                        
238
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
239
                                           	// High interrupt                                                               F:\MCP\projects\CAN\canBase\Source\CAN.c
240
00108a   6ea5     MOVWF     0xa5,0x0       	IPR3 =0b00000011;                                                               F:\MCP\projects\CAN\canBase\Source\CAN.c
241
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
242
                                           	// Programmable buffers interrupt                                               F:\MCP\projects\CAN\canBase\Source\CAN.c
243
00108c   69fa     SETF      0xfa,0x1       	BIE0  = 0xFF;	                                                                  F:\MCP\projects\CAN\canBase\Source\CAN.c
244
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
245
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
246
                                           	//loopback mode or not                                                          F:\MCP\projects\CAN\canBase\Source\CAN.c
247
                                           	#ifdef CAN_LOOPBACK_MODE                                                        F:\MCP\projects\CAN\canBase\Source\CAN.c
248
                                           		CANCON = 0x40;//request loopback mode                                          F:\MCP\projects\CAN\canBase\Source\CAN.c
249
                                           		while ((CANSTAT & 0xE0) != 0x40 );//wait for loopback mode                     F:\MCP\projects\CAN\canBase\Source\CAN.c
250
                                           	#else                                                                           F:\MCP\projects\CAN\canBase\Source\CAN.c
251
00108e   6a6f     CLRF      0x6f,0x0       		CANCON = 0x00;//request normal mode                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
252
001090   0ee0     MOVLW     0xe0           		while ((CANSTAT & 0xE0) != 0x00 );//wait for normal mode                       F:\MCP\projects\CAN\canBase\Source\CAN.c
253
001092   146e     ANDWF     0x6e,0x0,0x0                                                                                    
254
001094   e001     BZ        0x1098                                                                                          
255
001096   d7fc     BRA       0x1090                                                                                          
256
                                           	#endif                                                                          F:\MCP\projects\CAN\canBase\Source\CAN.c
257
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
258
001098   0012     RETURN    0x0            }                                                                                F:\MCP\projects\CAN\canBase\Source\CAN.c
259
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
260
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
261
                                           /*                                                                               F:\MCP\projects\CAN\canBase\Source\CAN.c
262
                                           *	Function: canISR                                                               F:\MCP\projects\CAN\canBase\Source\CAN.c
263
                                           *                                                                                F:\MCP\projects\CAN\canBase\Source\CAN.c
264
                                           *	Input:	none                                                                    F:\MCP\projects\CAN\canBase\Source\CAN.c
265
                                           *	Output: none                                                                   F:\MCP\projects\CAN\canBase\Source\CAN.c
266
                                           *	Pre-conditions: a call to canInit()                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
267
                                           *	Affects: interrupt registers and receive data buffers                          F:\MCP\projects\CAN\canBase\Source\CAN.c
268
                                           *	Depends: ..                                                                    F:\MCP\projects\CAN\canBase\Source\CAN.c
269
                                           */                                                                               F:\MCP\projects\CAN\canBase\Source\CAN.c
270
                                           void canISR()                                                                    F:\MCP\projects\CAN\canBase\Source\CAN.c
271
                                           {                                                                                F:\MCP\projects\CAN\canBase\Source\CAN.c
272
00109a   50a4     MOVF      0xa4,0x0,0x0   	if (PIR3bits.RXBnIF || PIR3bits.RXB1IF || PIR3bits.RXB0IF)                      F:\MCP\projects\CAN\canBase\Source\CAN.c
273
00109c   0b02     ANDLW     0x2                                                                                             
274
00109e   e106     BNZ       0x10ac                                                                                          
275
0010a0   50a4     MOVF      0xa4,0x0,0x0                                                                                    
276
0010a2   0b02     ANDLW     0x2                                                                                             
277
0010a4   e103     BNZ       0x10ac                                                                                          
278
0010a6   50a4     MOVF      0xa4,0x0,0x0                                                                                    
279
0010a8   0b01     ANDLW     0x1                                                                                             
95 johboh 280
0010aa   e016     BZ        0x10d8                                                                                          
85 johboh 281
                                           	{                                                                               F:\MCP\projects\CAN\canBase\Source\CAN.c
95 johboh 282
0010ac   0e0f     MOVLW     0xf            		ECANCON=(ECANCON&0b00000)|(0b10000|(CANCON&0x0F));                             F:\MCP\projects\CAN\canBase\Source\CAN.c
283
0010ae   146f     ANDWF     0x6f,0x0,0x0                                                                                    
284
0010b0   0910     IORLW     0x10                                                                                            
285
0010b2   6e00     MOVWF     0x0,0x0                                                                                         
286
0010b4   0e00     MOVLW     0x0                                                                                             
287
0010b6   1477     ANDWF     0x77,0x0,0x0                                                                                    
288
0010b8   1000     IORWF     0x0,0x0,0x0                                                                                     
289
0010ba   6e77     MOVWF     0x77,0x0                                                                                        
290
0010bc   be60     BTFSC     0x60,0x7,0x0   		if (RXB0CONbits.RXFUL) canGetPacket();                                         F:\MCP\projects\CAN\canBase\Source\CAN.c
291
0010be   d80d     RCALL     0x10da                                                                                          
85 johboh 292
                                           	                                                                                F:\MCP\projects\CAN\canBase\Source\CAN.c
95 johboh 293
0010c0   a2a4     BTFSS     0xa4,0x1,0x0   		if (PIR3bits.RXBnIF) {PIR3bits.RXBnIF = 0; return;}                            F:\MCP\projects\CAN\canBase\Source\CAN.c
294
0010c2   d002     BRA       0x10c8                                                                                          
295
0010c4   92a4     BCF       0xa4,0x1,0x0                                                                                    
296
0010c6   d008     BRA       0x10d8                                                                                          
297
0010c8   a2a4     BTFSS     0xa4,0x1,0x0   		if (PIR3bits.RXB1IF) {PIR3bits.RXB1IF = 0; return;}                            F:\MCP\projects\CAN\canBase\Source\CAN.c
298
0010ca   d002     BRA       0x10d0                                                                                          
299
0010cc   92a4     BCF       0xa4,0x1,0x0                                                                                    
300
0010ce   d004     BRA       0x10d8                                                                                          
301
0010d0   a0a4     BTFSS     0xa4,0x0,0x0   		if (PIR3bits.RXB0IF) {PIR3bits.RXB0IF = 0; return;}                            F:\MCP\projects\CAN\canBase\Source\CAN.c
302
0010d2   d002     BRA       0x10d8                                                                                          
303
0010d4   90a4     BCF       0xa4,0x0,0x0                                                                                    
304
0010d6   d000     BRA       0x10d8                                                                                          
85 johboh 305
                                           	}                                                                               F:\MCP\projects\CAN\canBase\Source\CAN.c
95 johboh 306
0010d8   0012     RETURN    0x0            }                                                                                F:\MCP\projects\CAN\canBase\Source\CAN.c
85 johboh 307
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
308
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
309
                                           /*                                                                               F:\MCP\projects\CAN\canBase\Source\CAN.c
310
                                           *	Function: canGetPacket                                                         F:\MCP\projects\CAN\canBase\Source\CAN.c
311
                                           *                                                                                F:\MCP\projects\CAN\canBase\Source\CAN.c
312
                                           *	Input:	none                                                                    F:\MCP\projects\CAN\canBase\Source\CAN.c
313
                                           *	Output: none                                                                   F:\MCP\projects\CAN\canBase\Source\CAN.c
314
                                           *	Pre-conditions: a call to canISR and an packet is available and banked to RXB0 F:\MCP\projects\CAN\canBase\Source\CAN.c
315
                                           *	Affects: Calls canParse() function in main for parsing received packet.        F:\MCP\projects\CAN\canBase\Source\CAN.c
316
                                           *	Depends: none.                                                                 F:\MCP\projects\CAN\canBase\Source\CAN.c
317
                                           */                                                                               F:\MCP\projects\CAN\canBase\Source\CAN.c
95 johboh 318
0010da   cfd9     MOVFF     0xfd9,0xfe6    void canGetPacket()                                                              F:\MCP\projects\CAN\canBase\Source\CAN.c
319
0010dc   ffe6                                                                                                               
320
0010de   cfe1     MOVFF     0xfe1,0xfd9                                                                                     
321
0010e0   ffd9                                                                                                               
322
0010e2   0e0f     MOVLW     0xf                                                                                             
323
0010e4   26e1     ADDWF     0xe1,0x1,0x0                                                                                    
85 johboh 324
                                           {                                                                                F:\MCP\projects\CAN\canBase\Source\CAN.c
325
                                           		CAN_MESSAGE cm;                                                                F:\MCP\projects\CAN\canBase\Source\CAN.c
326
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
86 johboh 327
                                           		//RXB0SIDH 28 27 26 25 24 23 22 21                                             F:\MCP\projects\CAN\canBase\Source\CAN.c
328
                                                   //RXB0SIDL 20 19 18 xx xx xx 17 16                                       F:\MCP\projects\CAN\canBase\Source\CAN.c
329
                                                   //RXB0EIDH 15 14 13 12 11 10 09 08                                       F:\MCP\projects\CAN\canBase\Source\CAN.c
330
                                                   //RXB0EIDL 07 06 05 04 03 02 01 00                                       F:\MCP\projects\CAN\canBase\Source\CAN.c
85 johboh 331
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
86 johboh 332
                                           		//funct xx xx xx xx 28 27 26 25                                                F:\MCP\projects\CAN\canBase\Source\CAN.c
333
                                           		//funcc xx xx xx xx xx xx 24 23 22 21 20 19 18 17 16 15                        F:\MCP\projects\CAN\canBase\Source\CAN.c
334
                                           		//nid   xx xx 14 13 12 11 10 09                                                F:\MCP\projects\CAN\canBase\Source\CAN.c
335
                                           		//sid   xx xx xx xx xx xx xx 08 07 06 05 04 03 02 01 00                        F:\MCP\projects\CAN\canBase\Source\CAN.c
85 johboh 336
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
337
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
95 johboh 338
0010e6   0ef0     MOVLW     0xf0                  	cm.funct=((RXB0SIDH & 0xF0)>>4);                                         F:\MCP\projects\CAN\canBase\Source\CAN.c
339
0010e8   1461     ANDWF     0x61,0x0,0x0                                                                                    
340
0010ea   38e8     SWAPF     0xe8,0x0,0x0                                                                                    
341
0010ec   0b0f     ANDLW     0xf                                                                                             
342
0010ee   6edf     MOVWF     0xdf,0x0                                                                                        
343
0010f0   0e0f     MOVLW     0xf                    cm.funcc=(((WORD)(RXB0SIDH & 0x0F))<<6)+(((WORD)(RXB0SIDL & 0xE0))>>2)+(((WORD)(RXB0SIDL & 0x03))<<1)+(((WORD)(RXB0EIDH & 0x80))>>7); F:\MCP\projects\CAN\canBase\Source\CAN.c
344
0010f2   1461     ANDWF     0x61,0x0,0x0                                                                                    
345
0010f4   6e06     MOVWF     0x6,0x0                                                                                         
346
0010f6   6a07     CLRF      0x7,0x0                                                                                         
347
0010f8   0e06     MOVLW     0x6                                                                                             
348
0010fa   90d8     BCF       0xd8,0x0,0x0                                                                                    
349
0010fc   3606     RLCF      0x6,0x1,0x0                                                                                     
350
0010fe   3607     RLCF      0x7,0x1,0x0                                                                                     
351
001100   04e8     DECF      0xe8,0x0,0x0                                                                                    
352
001102   e1fb     BNZ       0x10fa                                                                                          
353
001104   0ee0     MOVLW     0xe0                                                                                            
354
001106   1462     ANDWF     0x62,0x0,0x0                                                                                    
355
001108   6e08     MOVWF     0x8,0x0                                                                                         
356
00110a   6a09     CLRF      0x9,0x0                                                                                         
357
00110c   90d8     BCF       0xd8,0x0,0x0                                                                                    
358
00110e   3209     RRCF      0x9,0x1,0x0                                                                                     
359
001110   3208     RRCF      0x8,0x1,0x0                                                                                     
360
001112   90d8     BCF       0xd8,0x0,0x0                                                                                    
361
001114   3209     RRCF      0x9,0x1,0x0                                                                                     
362
001116   3208     RRCF      0x8,0x1,0x0                                                                                     
363
001118   5006     MOVF      0x6,0x0,0x0                                                                                     
364
00111a   2408     ADDWF     0x8,0x0,0x0                                                                                     
365
00111c   6e04     MOVWF     0x4,0x0                                                                                         
366
00111e   5007     MOVF      0x7,0x0,0x0                                                                                     
367
001120   2009     ADDWFC    0x9,0x0,0x0                                                                                     
368
001122   6e05     MOVWF     0x5,0x0                                                                                         
369
001124   0e03     MOVLW     0x3                                                                                             
370
001126   1462     ANDWF     0x62,0x0,0x0                                                                                    
371
001128   6e0a     MOVWF     0xa,0x0                                                                                         
372
00112a   6a0b     CLRF      0xb,0x0                                                                                         
373
00112c   90d8     BCF       0xd8,0x0,0x0                                                                                    
374
00112e   360a     RLCF      0xa,0x1,0x0                                                                                     
375
001130   360b     RLCF      0xb,0x1,0x0                                                                                     
376
001132   5004     MOVF      0x4,0x0,0x0                                                                                     
377
001134   240a     ADDWF     0xa,0x0,0x0                                                                                     
378
001136   6e02     MOVWF     0x2,0x0                                                                                         
379
001138   5005     MOVF      0x5,0x0,0x0                                                                                     
380
00113a   200b     ADDWFC    0xb,0x0,0x0                                                                                     
381
00113c   6e03     MOVWF     0x3,0x0                                                                                         
382
00113e   0e80     MOVLW     0x80                                                                                            
383
001140   1463     ANDWF     0x63,0x0,0x0                                                                                    
384
001142   6e0c     MOVWF     0xc,0x0                                                                                         
385
001144   6a0d     CLRF      0xd,0x0                                                                                         
386
001146   0e07     MOVLW     0x7                                                                                             
387
001148   90d8     BCF       0xd8,0x0,0x0                                                                                    
388
00114a   320d     RRCF      0xd,0x1,0x0                                                                                     
389
00114c   320c     RRCF      0xc,0x1,0x0                                                                                     
390
00114e   04e8     DECF      0xe8,0x0,0x0                                                                                    
391
001150   e1fb     BNZ       0x1148                                                                                          
392
001152   5002     MOVF      0x2,0x0,0x0                                                                                     
393
001154   240c     ADDWF     0xc,0x0,0x0                                                                                     
394
001156   6e00     MOVWF     0x0,0x0                                                                                         
395
001158   5003     MOVF      0x3,0x0,0x0                                                                                     
396
00115a   200d     ADDWFC    0xd,0x0,0x0                                                                                     
397
00115c   6e01     MOVWF     0x1,0x0                                                                                         
398
00115e   0e01     MOVLW     0x1                                                                                             
399
001160   c000     MOVFF     0x0,0xfdb                                                                                       
400
001162   ffdb                                                                                                               
401
001164   0e02     MOVLW     0x2                                                                                             
402
001166   c001     MOVFF     0x1,0xfdb                                                                                       
403
001168   ffdb                                                                                                               
404
00116a   0e7e     MOVLW     0x7e                   cm.nid=((RXB0EIDH & 0x7E)>>1);                                           F:\MCP\projects\CAN\canBase\Source\CAN.c
405
00116c   1463     ANDWF     0x63,0x0,0x0                                                                                    
406
00116e   40e8     RRNCF     0xe8,0x0,0x0                                                                                    
407
001170   0b7f     ANDLW     0x7f                                                                                            
408
001172   6ee7     MOVWF     0xe7,0x0                                                                                        
409
001174   0e03     MOVLW     0x3                                                                                             
410
001176   cfe7     MOVFF     0xfe7,0xfdb                                                                                     
411
001178   ffdb                                                                                                               
412
00117a   0e01     MOVLW     0x1                    cm.sid=(((WORD)(RXB0EIDH & 0x01))<<8)+RXB0EIDL;                          F:\MCP\projects\CAN\canBase\Source\CAN.c
413
00117c   1463     ANDWF     0x63,0x0,0x0                                                                                    
414
00117e   6e02     MOVWF     0x2,0x0                                                                                         
415
001180   c002     MOVFF     0x2,0x3                                                                                         
416
001182   f003                                                                                                               
417
001184   6a02     CLRF      0x2,0x0                                                                                         
418
001186   5064     MOVF      0x64,0x0,0x0                                                                                    
419
001188   0100     MOVLB     0x0                                                                                             
420
00118a   2402     ADDWF     0x2,0x0,0x0                                                                                     
421
00118c   6e00     MOVWF     0x0,0x0                                                                                         
422
00118e   0e00     MOVLW     0x0                                                                                             
423
001190   2003     ADDWFC    0x3,0x0,0x0                                                                                     
424
001192   6e01     MOVWF     0x1,0x0                                                                                         
425
001194   0e04     MOVLW     0x4                                                                                             
426
001196   c000     MOVFF     0x0,0xfdb                                                                                       
427
001198   ffdb                                                                                                               
428
00119a   0e05     MOVLW     0x5                                                                                             
429
00119c   c001     MOVFF     0x1,0xfdb                                                                                       
430
00119e   ffdb                                                                                                               
85 johboh 431
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
432
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
86 johboh 433
                                           		// Data length                                                                 F:\MCP\projects\CAN\canBase\Source\CAN.c
95 johboh 434
0011a0   5065     MOVF      0x65,0x0,0x0   		cm.data_length=(RXB0DLCbits.DLC3<<3)+(RXB0DLCbits.DLC2<<2)+(RXB0DLCbits.DLC1<<1)+RXB0DLCbits.DLC0; F:\MCP\projects\CAN\canBase\Source\CAN.c
435
0011a2   0b01     ANDLW     0x1                                                                                             
436
0011a4   6e02     MOVWF     0x2,0x0                                                                                         
437
0011a6   5065     MOVF      0x65,0x0,0x0                                                                                    
438
0011a8   0b02     ANDLW     0x2                                                                                             
439
0011aa   e001     BZ        0x11ae                                                                                          
440
0011ac   0e01     MOVLW     0x1                                                                                             
441
0011ae   24e8     ADDWF     0xe8,0x0,0x0                                                                                    
442
0011b0   6e01     MOVWF     0x1,0x0                                                                                         
443
0011b2   5065     MOVF      0x65,0x0,0x0                                                                                    
444
0011b4   0b04     ANDLW     0x4                                                                                             
445
0011b6   e001     BZ        0x11ba                                                                                          
446
0011b8   0e01     MOVLW     0x1                                                                                             
447
0011ba   0d04     MULLW     0x4                                                                                             
448
0011bc   cff3     MOVFF     0xff3,0x0                                                                                       
449
0011be   f000                                                                                                               
450
0011c0   5065     MOVF      0x65,0x0,0x0                                                                                    
451
0011c2   0b08     ANDLW     0x8                                                                                             
452
0011c4   e001     BZ        0x11c8                                                                                          
453
0011c6   0e01     MOVLW     0x1                                                                                             
454
0011c8   0d08     MULLW     0x8                                                                                             
455
0011ca   50f3     MOVF      0xf3,0x0,0x0                                                                                    
456
0011cc   2400     ADDWF     0x0,0x0,0x0                                                                                     
457
0011ce   2401     ADDWF     0x1,0x0,0x0                                                                                     
458
0011d0   2402     ADDWF     0x2,0x0,0x0                                                                                     
459
0011d2   6ee7     MOVWF     0xe7,0x0                                                                                        
460
0011d4   0e06     MOVLW     0x6                                                                                             
461
0011d6   cfe7     MOVFF     0xfe7,0xfdb                                                                                     
462
0011d8   ffdb                                                                                                               
85 johboh 463
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
86 johboh 464
                                           		// Data one bye one, for speed                                                 F:\MCP\projects\CAN\canBase\Source\CAN.c
95 johboh 465
0011da   0e07     MOVLW     0x7            		cm.data[0]=RXB0D0;	cm.data[1]=RXB0D1;                                          F:\MCP\projects\CAN\canBase\Source\CAN.c
466
0011dc   cf66     MOVFF     0xf66,0xfdb                                                                                     
467
0011de   ffdb                                                                                                               
468
0011e0   0e08     MOVLW     0x8                                                                                             
469
0011e2   cf67     MOVFF     0xf67,0xfdb                                                                                     
470
0011e4   ffdb                                                                                                               
471
0011e6   0e09     MOVLW     0x9            		cm.data[2]=RXB0D2; 	cm.data[3]=RXB0D3;                                         F:\MCP\projects\CAN\canBase\Source\CAN.c
472
0011e8   cf68     MOVFF     0xf68,0xfdb                                                                                     
473
0011ea   ffdb                                                                                                               
474
0011ec   0e0a     MOVLW     0xa                                                                                             
475
0011ee   cf69     MOVFF     0xf69,0xfdb                                                                                     
476
0011f0   ffdb                                                                                                               
477
0011f2   0e0b     MOVLW     0xb            		cm.data[4]=RXB0D4; 	cm.data[5]=RXB0D5;                                         F:\MCP\projects\CAN\canBase\Source\CAN.c
478
0011f4   cf6a     MOVFF     0xf6a,0xfdb                                                                                     
479
0011f6   ffdb                                                                                                               
480
0011f8   0e0c     MOVLW     0xc                                                                                             
481
0011fa   cf6b     MOVFF     0xf6b,0xfdb                                                                                     
482
0011fc   ffdb                                                                                                               
483
0011fe   0e0d     MOVLW     0xd            		cm.data[6]=RXB0D6; 	cm.data[7]=RXB0D7;                                         F:\MCP\projects\CAN\canBase\Source\CAN.c
484
001200   cf6c     MOVFF     0xf6c,0xfdb                                                                                     
485
001202   ffdb                                                                                                               
486
001204   0e0e     MOVLW     0xe                                                                                             
487
001206   cf6d     MOVFF     0xf6d,0xfdb                                                                                     
488
001208   ffdb                                                                                                               
85 johboh 489
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
490
                                           		// Clear ful status                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
95 johboh 491
00120a   9e60     BCF       0x60,0x7,0x0   		RXB0CONbits.RXFUL=0;                                                           F:\MCP\projects\CAN\canBase\Source\CAN.c
85 johboh 492
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
493
                                           		//Call main parser                                                             F:\MCP\projects\CAN\canBase\Source\CAN.c
95 johboh 494
00120c   cfd9     MOVFF     0xfd9,0xfe9    		canParse(cm);                                                                  F:\MCP\projects\CAN\canBase\Source\CAN.c
495
00120e   ffe9                                                                                                               
496
001210   cfda     MOVFF     0xfda,0xfea                                                                                     
497
001212   ffea                                                                                                               
498
001214   cfee     MOVFF     0xfee,0xfe6                                                                                     
499
001216   ffe6                                                                                                               
500
001218   cfee     MOVFF     0xfee,0xfe6                                                                                     
501
00121a   ffe6                                                                                                               
502
00121c   cfee     MOVFF     0xfee,0xfe6                                                                                     
503
00121e   ffe6                                                                                                               
504
001220   cfee     MOVFF     0xfee,0xfe6                                                                                     
505
001222   ffe6                                                                                                               
506
001224   cfee     MOVFF     0xfee,0xfe6                                                                                     
507
001226   ffe6                                                                                                               
508
001228   cfee     MOVFF     0xfee,0xfe6                                                                                     
509
00122a   ffe6                                                                                                               
510
00122c   cfee     MOVFF     0xfee,0xfe6                                                                                     
511
00122e   ffe6                                                                                                               
512
001230   cfee     MOVFF     0xfee,0xfe6                                                                                     
513
001232   ffe6                                                                                                               
514
001234   cfee     MOVFF     0xfee,0xfe6                                                                                     
515
001236   ffe6                                                                                                               
516
001238   cfee     MOVFF     0xfee,0xfe6                                                                                     
517
00123a   ffe6                                                                                                               
518
00123c   cfee     MOVFF     0xfee,0xfe6                                                                                     
519
00123e   ffe6                                                                                                               
520
001240   cfee     MOVFF     0xfee,0xfe6                                                                                     
521
001242   ffe6                                                                                                               
522
001244   cfee     MOVFF     0xfee,0xfe6                                                                                     
523
001246   ffe6                                                                                                               
524
001248   cfee     MOVFF     0xfee,0xfe6                                                                                     
525
00124a   ffe6                                                                                                               
526
00124c   cfee     MOVFF     0xfee,0xfe6                                                                                     
527
00124e   ffe6                                                                                                               
100 johboh 528
001250   ec06     CALL      0x160c,0x0                                                                                      
529
001252   f00b                                                                                                               
95 johboh 530
001254   6e00     MOVWF     0x0,0x0                                                                                         
531
001256   0e0f     MOVLW     0xf                                                                                             
532
001258   5ee1     SUBWF     0xe1,0x1,0x0                                                                                    
533
00125a   5000     MOVF      0x0,0x0,0x0                                                                                     
534
00125c   0e0f     MOVLW     0xf            }                                                                                F:\MCP\projects\CAN\canBase\Source\CAN.c
535
00125e   5ce1     SUBWF     0xe1,0x0,0x0                                                                                    
536
001260   e202     BC        0x1266                                                                                          
537
001262   6ae1     CLRF      0xe1,0x0                                                                                        
538
001264   52e5     MOVF      0xe5,0x1,0x0                                                                                    
539
001266   6ee1     MOVWF     0xe1,0x0                                                                                        
540
001268   52e5     MOVF      0xe5,0x1,0x0                                                                                    
541
00126a   cfe7     MOVFF     0xfe7,0xfd9                                                                                     
542
00126c   ffd9                                                                                                               
543
00126e   0012     RETURN    0x0                                                                                             
85 johboh 544
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
545
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
546
                                           /*                                                                               F:\MCP\projects\CAN\canBase\Source\CAN.c
547
                                           *	Function: canSendMessage                                                       F:\MCP\projects\CAN\canBase\Source\CAN.c
548
                                           *                                                                                F:\MCP\projects\CAN\canBase\Source\CAN.c
549
                                           *	Input:	CAN_MESSAGE to send                                                     F:\MCP\projects\CAN\canBase\Source\CAN.c
550
                                           *	Output: True if packet scheduled sucess, false otherwise.                      F:\MCP\projects\CAN\canBase\Source\CAN.c
551
                                           *	Pre-conditions: canInit                                                        F:\MCP\projects\CAN\canBase\Source\CAN.c
552
                                           *	Affects: ..                                                                    F:\MCP\projects\CAN\canBase\Source\CAN.c
553
                                           *	Depends: ..                                                                    F:\MCP\projects\CAN\canBase\Source\CAN.c
554
                                           */                                                                               F:\MCP\projects\CAN\canBase\Source\CAN.c
95 johboh 555
001270   cfd9     MOVFF     0xfd9,0xfe6    BOOL canSendMessage(CAN_MESSAGE cm,CAN_PRIORITY prio)                            F:\MCP\projects\CAN\canBase\Source\CAN.c
556
001272   ffe6                                                                                                               
557
001274   cfe1     MOVFF     0xfe1,0xfd9                                                                                     
558
001276   ffd9                                                                                                               
85 johboh 559
                                           {                                                                                F:\MCP\projects\CAN\canBase\Source\CAN.c
560
                                           	                                                                                F:\MCP\projects\CAN\canBase\Source\CAN.c
95 johboh 561
001278   010f     MOVLB     0xf            	if ( TXB0CONbits.TXREQ == 0 )  { ECANCON=(ECANCON&0b00000)|0b00011; }           F:\MCP\projects\CAN\canBase\Source\CAN.c
562
00127a   b740     BTFSC     0x40,0x3,0x1                                                                                    
563
00127c   d004     BRA       0x1286                                                                                          
564
00127e   0e00     MOVLW     0x0                                                                                             
565
001280   1477     ANDWF     0x77,0x0,0x0                                                                                    
566
001282   0903     IORLW     0x3                                                                                             
567
001284   6e77     MOVWF     0x77,0x0                                                                                        
568
001286   010f     MOVLB     0xf            	if ( TXB1CONbits.TXREQ == 0 )  { ECANCON=(ECANCON&0b00000)|0b00100; }           F:\MCP\projects\CAN\canBase\Source\CAN.c
569
001288   b730     BTFSC     0x30,0x3,0x1                                                                                    
570
00128a   d004     BRA       0x1294                                                                                          
571
00128c   0e00     MOVLW     0x0                                                                                             
572
00128e   1477     ANDWF     0x77,0x0,0x0                                                                                    
573
001290   0904     IORLW     0x4                                                                                             
574
001292   6e77     MOVWF     0x77,0x0                                                                                        
575
001294   010f     MOVLB     0xf            	if ( TXB2CONbits.TXREQ == 0 )  { ECANCON=(ECANCON&0b00000)|0b00101; }           F:\MCP\projects\CAN\canBase\Source\CAN.c
576
001296   b720     BTFSC     0x20,0x3,0x1                                                                                    
577
001298   d005     BRA       0x12a4                                                                                          
578
00129a   0e00     MOVLW     0x0                                                                                             
579
00129c   1477     ANDWF     0x77,0x0,0x0                                                                                    
580
00129e   0905     IORLW     0x5                                                                                             
581
0012a0   6e77     MOVWF     0x77,0x0                                                                                        
85 johboh 582
                                           	// None of the transmit buffers were empty.                                     F:\MCP\projects\CAN\canBase\Source\CAN.c
95 johboh 583
0012a2   d002     BRA       0x12a8         	else { return FALSE;}                                                           F:\MCP\projects\CAN\canBase\Source\CAN.c
584
0012a4   0e00     MOVLW     0x0                                                                                             
585
0012a6   d0b0     BRA       0x1408                                                                                          
85 johboh 586
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
95 johboh 587
0012a8   0eef     MOVLW     0xef           	if (prio<0 || prio>3) prio = 0;                                                 F:\MCP\projects\CAN\canBase\Source\CAN.c
588
0012aa   cfdb     MOVFF     0xfdb,0x0                                                                                       
589
0012ac   f000                                                                                                               
590
0012ae   3400     RLCF      0x0,0x0,0x0                                                                                     
591
0012b0   e20e     BC        0x12ce                                                                                          
592
0012b2   0eef     MOVLW     0xef                                                                                            
593
0012b4   cfdb     MOVFF     0xfdb,0x1                                                                                       
594
0012b6   f001                                                                                                               
595
0012b8   0e03     MOVLW     0x3                                                                                             
596
0012ba   6ee7     MOVWF     0xe7,0x0                                                                                        
597
0012bc   1801     XORWF     0x1,0x0,0x0                                                                                     
598
0012be   aee8     BTFSS     0xe8,0x7,0x0                                                                                    
599
0012c0   d002     BRA       0x12c6                                                                                          
600
0012c2   3401     RLCF      0x1,0x0,0x0                                                                                     
601
0012c4   d003     BRA       0x12cc                                                                                          
602
0012c6   50e7     MOVF      0xe7,0x0,0x0                                                                                    
603
0012c8   80d8     BSF       0xd8,0x0,0x0                                                                                    
604
0012ca   5401     SUBFWB    0x1,0x0,0x0                                                                                     
605
0012cc   e202     BC        0x12d2                                                                                          
606
0012ce   0eef     MOVLW     0xef                                                                                            
607
0012d0   6adb     CLRF      0xdb,0x0                                                                                        
85 johboh 608
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
609
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
86 johboh 610
                                           		//RXB0SIDH 28 27 26 25 24 23 22 21                                             F:\MCP\projects\CAN\canBase\Source\CAN.c
611
                                                   //RXB0SIDL 20 19 18 xx xx xx 17 16                                       F:\MCP\projects\CAN\canBase\Source\CAN.c
612
                                                   //RXB0EIDH 15 14 13 12 11 10 09 08                                       F:\MCP\projects\CAN\canBase\Source\CAN.c
613
                                                   //RXB0EIDL 07 06 05 04 03 02 01 00                                       F:\MCP\projects\CAN\canBase\Source\CAN.c
85 johboh 614
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
86 johboh 615
                                           		//funct xx xx xx xx 28 27 26 25                                                F:\MCP\projects\CAN\canBase\Source\CAN.c
616
                                           		//funcc xx xx xx xx xx xx 24 23 22 21 20 19 18 17 16 15                        F:\MCP\projects\CAN\canBase\Source\CAN.c
617
                                           		//nid   xx xx 14 13 12 11 10 09                                                F:\MCP\projects\CAN\canBase\Source\CAN.c
618
                                           		//sid   xx xx xx xx xx xx xx 08 07 06 05 04 03 02 01 00                        F:\MCP\projects\CAN\canBase\Source\CAN.c
85 johboh 619
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
95 johboh 620
0012d2   0ef1     MOVLW     0xf1           		RXB0SIDH = (BYTE)((cm.funct & 0x0F)<<4)+(BYTE)((cm.funcc & 0x03C0)>>6);        F:\MCP\projects\CAN\canBase\Source\CAN.c
621
0012d4   cfdb     MOVFF     0xfdb,0x0                                                                                       
622
0012d6   f000                                                                                                               
623
0012d8   0ef2     MOVLW     0xf2                                                                                            
624
0012da   cfdb     MOVFF     0xfdb,0x1                                                                                       
625
0012dc   f001                                                                                                               
626
0012de   0ec0     MOVLW     0xc0                                                                                            
627
0012e0   1600     ANDWF     0x0,0x1,0x0                                                                                     
628
0012e2   0e03     MOVLW     0x3                                                                                             
629
0012e4   1601     ANDWF     0x1,0x1,0x0                                                                                     
630
0012e6   0e06     MOVLW     0x6                                                                                             
631
0012e8   90d8     BCF       0xd8,0x0,0x0                                                                                    
632
0012ea   3201     RRCF      0x1,0x1,0x0                                                                                     
633
0012ec   3200     RRCF      0x0,0x1,0x0                                                                                     
634
0012ee   04e8     DECF      0xe8,0x0,0x0                                                                                    
635
0012f0   e1fb     BNZ       0x12e8                                                                                          
636
0012f2   0ef0     MOVLW     0xf0                                                                                            
637
0012f4   50db     MOVF      0xdb,0x0,0x0                                                                                    
638
0012f6   0b0f     ANDLW     0xf                                                                                             
639
0012f8   0d10     MULLW     0x10                                                                                            
640
0012fa   50f3     MOVF      0xf3,0x0,0x0                                                                                    
641
0012fc   2400     ADDWF     0x0,0x0,0x0                                                                                     
642
0012fe   6e61     MOVWF     0x61,0x0                                                                                        
643
001300   0e06     MOVLW     0x6            		RXB0SIDL = (BYTE)((cm.funcc & 0x003F)<<2)+(BYTE)((cm.funcc & 0x0006)>>1);      F:\MCP\projects\CAN\canBase\Source\CAN.c
644
001302   6ee7     MOVWF     0xe7,0x0                                                                                        
645
001304   0ef1     MOVLW     0xf1                                                                                            
646
001306   cfdb     MOVFF     0xfdb,0x2                                                                                       
647
001308   f002                                                                                                               
648
00130a   0ef2     MOVLW     0xf2                                                                                            
649
00130c   cfdb     MOVFF     0xfdb,0x3                                                                                       
650
00130e   f003                                                                                                               
651
001310   50e7     MOVF      0xe7,0x0,0x0                                                                                    
652
001312   1602     ANDWF     0x2,0x1,0x0                                                                                     
653
001314   6a03     CLRF      0x3,0x0                                                                                         
654
001316   90d8     BCF       0xd8,0x0,0x0                                                                                    
655
001318   3203     RRCF      0x3,0x1,0x0                                                                                     
656
00131a   3202     RRCF      0x2,0x1,0x0                                                                                     
657
00131c   0e3f     MOVLW     0x3f                                                                                            
658
00131e   6ee7     MOVWF     0xe7,0x0                                                                                        
659
001320   0ef1     MOVLW     0xf1                                                                                            
660
001322   cfdb     MOVFF     0xfdb,0x0                                                                                       
661
001324   f000                                                                                                               
662
001326   0ef2     MOVLW     0xf2                                                                                            
663
001328   cfdb     MOVFF     0xfdb,0x1                                                                                       
664
00132a   f001                                                                                                               
665
00132c   50e7     MOVF      0xe7,0x0,0x0                                                                                    
666
00132e   1600     ANDWF     0x0,0x1,0x0                                                                                     
667
001330   6a01     CLRF      0x1,0x0                                                                                         
668
001332   90d8     BCF       0xd8,0x0,0x0                                                                                    
669
001334   3600     RLCF      0x0,0x1,0x0                                                                                     
670
001336   3601     RLCF      0x1,0x1,0x0                                                                                     
671
001338   90d8     BCF       0xd8,0x0,0x0                                                                                    
672
00133a   3600     RLCF      0x0,0x1,0x0                                                                                     
673
00133c   3601     RLCF      0x1,0x1,0x0                                                                                     
674
00133e   5000     MOVF      0x0,0x0,0x0                                                                                     
675
001340   2402     ADDWF     0x2,0x0,0x0                                                                                     
676
001342   6e62     MOVWF     0x62,0x0                                                                                        
677
001344   0ef4     MOVLW     0xf4           		RXB0EIDH = (BYTE)((cm.funcc & 0x0001)<<7)+(BYTE)((cm.nid & 0x3F)<<1)+(BYTE)((cm.sid & 0x0100)>>8); F:\MCP\projects\CAN\canBase\Source\CAN.c
678
001346   cfdb     MOVFF     0xfdb,0x2                                                                                       
679
001348   f002                                                                                                               
680
00134a   0ef5     MOVLW     0xf5                                                                                            
681
00134c   cfdb     MOVFF     0xfdb,0x3                                                                                       
682
00134e   f003                                                                                                               
683
001350   0e00     MOVLW     0x0                                                                                             
684
001352   1602     ANDWF     0x2,0x1,0x0                                                                                     
685
001354   0e01     MOVLW     0x1                                                                                             
686
001356   1603     ANDWF     0x3,0x1,0x0                                                                                     
687
001358   c003     MOVFF     0x3,0x2                                                                                         
688
00135a   f002                                                                                                               
689
00135c   6a03     CLRF      0x3,0x0                                                                                         
690
00135e   0e01     MOVLW     0x1                                                                                             
691
001360   6ee7     MOVWF     0xe7,0x0                                                                                        
692
001362   0ef1     MOVLW     0xf1                                                                                            
693
001364   cfdb     MOVFF     0xfdb,0x0                                                                                       
694
001366   f000                                                                                                               
695
001368   0ef2     MOVLW     0xf2                                                                                            
696
00136a   cfdb     MOVFF     0xfdb,0x1                                                                                       
697
00136c   f001                                                                                                               
698
00136e   50e7     MOVF      0xe7,0x0,0x0                                                                                    
699
001370   1600     ANDWF     0x0,0x1,0x0                                                                                     
700
001372   6a01     CLRF      0x1,0x0                                                                                         
701
001374   0e07     MOVLW     0x7                                                                                             
702
001376   90d8     BCF       0xd8,0x0,0x0                                                                                    
703
001378   3600     RLCF      0x0,0x1,0x0                                                                                     
704
00137a   3601     RLCF      0x1,0x1,0x0                                                                                     
705
00137c   04e8     DECF      0xe8,0x0,0x0                                                                                    
706
00137e   e1fb     BNZ       0x1376                                                                                          
707
001380   0ef3     MOVLW     0xf3                                                                                            
708
001382   50db     MOVF      0xdb,0x0,0x0                                                                                    
709
001384   0b3f     ANDLW     0x3f                                                                                            
710
001386   24e8     ADDWF     0xe8,0x0,0x0                                                                                    
711
001388   2400     ADDWF     0x0,0x0,0x0                                                                                     
712
00138a   2402     ADDWF     0x2,0x0,0x0                                                                                     
713
00138c   6e63     MOVWF     0x63,0x0                                                                                        
714
00138e   0eff     MOVLW     0xff           		RXB0EIDL = (BYTE)((cm.sid & 0x00FF));                                          F:\MCP\projects\CAN\canBase\Source\CAN.c
715
001390   6ee7     MOVWF     0xe7,0x0                                                                                        
716
001392   0ef4     MOVLW     0xf4                                                                                            
717
001394   cfdb     MOVFF     0xfdb,0x0                                                                                       
718
001396   f000                                                                                                               
719
001398   0ef5     MOVLW     0xf5                                                                                            
720
00139a   cfdb     MOVFF     0xfdb,0x1                                                                                       
721
00139c   f001                                                                                                               
722
00139e   50e7     MOVF      0xe7,0x0,0x0                                                                                    
723
0013a0   1600     ANDWF     0x0,0x1,0x0                                                                                     
724
0013a2   6a01     CLRF      0x1,0x0                                                                                         
725
0013a4   5000     MOVF      0x0,0x0,0x0                                                                                     
726
0013a6   6e64     MOVWF     0x64,0x0                                                                                        
85 johboh 727
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
86 johboh 728
                                           		// Data length                                                                 F:\MCP\projects\CAN\canBase\Source\CAN.c
95 johboh 729
0013a8   6a65     CLRF      0x65,0x0       		RXB0DLC = 0;                                                                   F:\MCP\projects\CAN\canBase\Source\CAN.c
730
0013aa   0ef6     MOVLW     0xf6           		if (cm.data_length>8) RXB0DLC=8; else RXB0DLC=cm.data_length;                  F:\MCP\projects\CAN\canBase\Source\CAN.c
731
0013ac   50db     MOVF      0xdb,0x0,0x0                                                                                    
732
0013ae   0808     SUBLW     0x8                                                                                             
733
0013b0   e203     BC        0x13b8                                                                                          
734
0013b2   0e08     MOVLW     0x8                                                                                             
735
0013b4   6e65     MOVWF     0x65,0x0                                                                                        
736
0013b6   d003     BRA       0x13be                                                                                          
737
0013b8   0ef6     MOVLW     0xf6                                                                                            
738
0013ba   50db     MOVF      0xdb,0x0,0x0                                                                                    
739
0013bc   6e65     MOVWF     0x65,0x0                                                                                        
85 johboh 740
                                           		                                                                               F:\MCP\projects\CAN\canBase\Source\CAN.c
741
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
86 johboh 742
                                           		// NOT Remote request                                                          F:\MCP\projects\CAN\canBase\Source\CAN.c
743
                                           		_asm                                                                           F:\MCP\projects\CAN\canBase\Source\CAN.c
95 johboh 744
0013be   9c65     BCF       0x65,0x6,0x0   			bcf RXB0DLC, 6, 0                                                             F:\MCP\projects\CAN\canBase\Source\CAN.c
86 johboh 745
                                           		_endasm                                                                        F:\MCP\projects\CAN\canBase\Source\CAN.c
85 johboh 746
                                           		                                                                               F:\MCP\projects\CAN\canBase\Source\CAN.c
747
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
748
                                           		// Data one bye one, for speed                                                 F:\MCP\projects\CAN\canBase\Source\CAN.c
95 johboh 749
0013c0   0ef7     MOVLW     0xf7           		RXB0D0=cm.data[0];	RXB0D1=cm.data[1];                                          F:\MCP\projects\CAN\canBase\Source\CAN.c
750
0013c2   50db     MOVF      0xdb,0x0,0x0                                                                                    
751
0013c4   6e66     MOVWF     0x66,0x0                                                                                        
752
0013c6   0ef8     MOVLW     0xf8                                                                                            
753
0013c8   50db     MOVF      0xdb,0x0,0x0                                                                                    
754
0013ca   6e67     MOVWF     0x67,0x0                                                                                        
755
0013cc   0ef9     MOVLW     0xf9           		RXB0D2=cm.data[2]; 	RXB0D3=cm.data[3];                                         F:\MCP\projects\CAN\canBase\Source\CAN.c
756
0013ce   50db     MOVF      0xdb,0x0,0x0                                                                                    
757
0013d0   6e68     MOVWF     0x68,0x0                                                                                        
758
0013d2   0efa     MOVLW     0xfa                                                                                            
759
0013d4   50db     MOVF      0xdb,0x0,0x0                                                                                    
760
0013d6   6e69     MOVWF     0x69,0x0                                                                                        
761
0013d8   0efb     MOVLW     0xfb           		RXB0D4=cm.data[4]; 	RXB0D5=cm.data[5];                                         F:\MCP\projects\CAN\canBase\Source\CAN.c
762
0013da   50db     MOVF      0xdb,0x0,0x0                                                                                    
763
0013dc   6e6a     MOVWF     0x6a,0x0                                                                                        
764
0013de   0efc     MOVLW     0xfc                                                                                            
765
0013e0   50db     MOVF      0xdb,0x0,0x0                                                                                    
766
0013e2   6e6b     MOVWF     0x6b,0x0                                                                                        
767
0013e4   0efd     MOVLW     0xfd           		RXB0D6=cm.data[6]; 	RXB0D7=cm.data[7];                                         F:\MCP\projects\CAN\canBase\Source\CAN.c
768
0013e6   50db     MOVF      0xdb,0x0,0x0                                                                                    
769
0013e8   6e6c     MOVWF     0x6c,0x0                                                                                        
770
0013ea   0efe     MOVLW     0xfe                                                                                            
771
0013ec   50db     MOVF      0xdb,0x0,0x0                                                                                    
772
0013ee   6e6d     MOVWF     0x6d,0x0                                                                                        
85 johboh 773
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
86 johboh 774
                                           		// set extended                                                                F:\MCP\projects\CAN\canBase\Source\CAN.c
95 johboh 775
0013f0   8662     BSF       0x62,0x3,0x0   		RXB0SIDLbits.EXID=1;                                                           F:\MCP\projects\CAN\canBase\Source\CAN.c
85 johboh 776
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
777
                                           		// Priority                                                                    F:\MCP\projects\CAN\canBase\Source\CAN.c
95 johboh 778
0013f2   0eef     MOVLW     0xef           		RXB0CON = (RXB0CON & 0b11111100) | prio;                                       F:\MCP\projects\CAN\canBase\Source\CAN.c
779
0013f4   cfdb     MOVFF     0xfdb,0xfe6                                                                                     
780
0013f6   ffe6                                                                                                               
781
0013f8   0efc     MOVLW     0xfc                                                                                            
782
0013fa   1460     ANDWF     0x60,0x0,0x0                                                                                    
783
0013fc   52e5     MOVF      0xe5,0x1,0x0                                                                                    
784
0013fe   10e7     IORWF     0xe7,0x0,0x0                                                                                    
785
001400   6e60     MOVWF     0x60,0x0                                                                                        
85 johboh 786
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
787
                                           		// mark as redy to transmit                                                    F:\MCP\projects\CAN\canBase\Source\CAN.c
788
                                           		_asm                                                                           F:\MCP\projects\CAN\canBase\Source\CAN.c
95 johboh 789
001402   8660     BSF       0x60,0x3,0x0   			bsf RXB0CON, 3, 0                                                             F:\MCP\projects\CAN\canBase\Source\CAN.c
85 johboh 790
                                           		_endasm                                                                        F:\MCP\projects\CAN\canBase\Source\CAN.c
791
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
95 johboh 792
001404   0e01     MOVLW     0x1            		return TRUE;                                                                   F:\MCP\projects\CAN\canBase\Source\CAN.c
793
001406   d000     BRA       0x1408                                                                                          
85 johboh 794
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
95 johboh 795
001408   52e5     MOVF      0xe5,0x1,0x0   }                                                                                F:\MCP\projects\CAN\canBase\Source\CAN.c
796
00140a   cfe7     MOVFF     0xfe7,0xfd9                                                                                     
797
00140c   ffd9                                                                                                               
798
00140e   0012     RETURN    0x0                                                                                             
85 johboh 799
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
800
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
801
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\CAN.c
802
                                           #endif //USE_CAN                                                                 F:\MCP\projects\CAN\canBase\Source\CAN.c
803
                                           /*********************************************************************           F:\MCP\projects\CAN\canBase\Source\Main.c
804
                                            *                                                                               F:\MCP\projects\CAN\canBase\Source\Main.c
805
                                            *                  Main application                                             F:\MCP\projects\CAN\canBase\Source\Main.c
806
                                            *                                                                               F:\MCP\projects\CAN\canBase\Source\Main.c
807
                                            *********************************************************************           F:\MCP\projects\CAN\canBase\Source\Main.c
87 johboh 808
                                            * FileName:        $HeadURL: http://svn.arune.se/svn/HomeAutomation/trunk/EmbeddedSoftware/PIC/canBase/Source/Main.c $ F:\MCP\projects\CAN\canBase\Source\Main.c
103 johboh 809
                                            * Last changed:	$LastChangedDate: 2006-11-15 09:40:52 +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
103 johboh 811
                                            * Revision:		$Revision: 100 $                                                   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
95 johboh 831
001410   cfd9     MOVFF     0xfd9,0xfe6    void main()                                                                      F:\MCP\projects\CAN\canBase\Source\Main.c
832
001412   ffe6                                                                                                               
833
001414   cfe1     MOVFF     0xfe1,0xfd9                                                                                     
834
001416   ffd9                                                                                                               
835
001418   0e0f     MOVLW     0xf                                                                                             
836
00141a   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
87 johboh 839
                                           	CAN_MESSAGE cm2;                                                                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
100 johboh 843
00141c   d8f2     RCALL     0x1602         	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
95 johboh 846
00141e   ec22     CALL      0x1044,0x0     		canInit();                                                                     F:\MCP\projects\CAN\canBase\Source\Main.c
847
001420   f008                                                                                                               
85 johboh 848
                                           	#endif                                                                          F:\MCP\projects\CAN\canBase\Source\Main.c
849
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Main.c
103 johboh 850
001422   ec23     CALL      0x1846,0x0     	tickInit();                                                                     F:\MCP\projects\CAN\canBase\Source\Main.c
851
001424   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
854
001426   0e00     MOVLW     0x0            	if (EERead(NODE_ID_EE)==NODE_HAS_ID)                                            F:\MCP\projects\CAN\canBase\Source\Main.c
855
001428   6ee6     MOVWF     0xe6,0x0                                                                                        
856
00142a   6ae6     CLRF      0xe6,0x0                                                                                        
103 johboh 857
00142c   ec7e     CALL      0x16fc,0x0                                                                                      
100 johboh 858
00142e   f00b                                                                                                               
859
001430   52e5     MOVF      0xe5,0x1,0x0                                                                                    
860
001432   52e5     MOVF      0xe5,0x1,0x0                                                                                    
861
001434   082a     SUBLW     0x2a                                                                                            
862
001436   e12b     BNZ       0x148e                                                                                          
863
                                           	{                                                                               F:\MCP\projects\CAN\canBase\Source\Main.c
864
001438   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
00143a   6ee6     MOVWF     0xe6,0x0                                                                                        
866
00143c   6ae6     CLRF      0xe6,0x0                                                                                        
103 johboh 867
00143e   ec7e     CALL      0x16fc,0x0                                                                                      
100 johboh 868
001440   f00b                                                                                                               
869
001442   52e5     MOVF      0xe5,0x1,0x0                                                                                    
870
001444   52e5     MOVF      0xe5,0x1,0x0                                                                                    
871
001446   6e00     MOVWF     0x0,0x0                                                                                         
872
001448   c000     MOVFF     0x0,0x1                                                                                         
873
00144a   f001                                                                                                               
874
00144c   6a00     CLRF      0x0,0x0                                                                                         
875
00144e   c000     MOVFF     0x0,0xfe6                                                                                       
95 johboh 876
001450   ffe6                                                                                                               
100 johboh 877
001452   c001     MOVFF     0x1,0xfe6                                                                                       
95 johboh 878
001454   ffe6                                                                                                               
100 johboh 879
001456   0e02     MOVLW     0x2                                                                                             
880
001458   6ee6     MOVWF     0xe6,0x0                                                                                        
881
00145a   6ae6     CLRF      0xe6,0x0                                                                                        
103 johboh 882
00145c   ec7e     CALL      0x16fc,0x0                                                                                      
100 johboh 883
00145e   f00b                                                                                                               
884
001460   52e5     MOVF      0xe5,0x1,0x0                                                                                    
885
001462   52e5     MOVF      0xe5,0x1,0x0                                                                                    
886
001464   52e5     MOVF      0xe5,0x1,0x0                                                                                    
887
001466   cfe7     MOVFF     0xfe7,0x1                                                                                       
888
001468   f001                                                                                                               
889
00146a   52e5     MOVF      0xe5,0x1,0x0                                                                                    
890
00146c   cfe7     MOVFF     0xfe7,0x0                                                                                       
891
00146e   f000                                                                                                               
892
001470   0100     MOVLB     0x0                                                                                             
893
001472   2400     ADDWF     0x0,0x0,0x0                                                                                     
894
001474   6f60     MOVWF     0x60,0x1                                                                                        
895
001476   0e00     MOVLW     0x0                                                                                             
896
001478   2001     ADDWFC    0x1,0x0,0x0                                                                                     
897
00147a   6f61     MOVWF     0x61,0x1                                                                                        
898
00147c   0e03     MOVLW     0x3            		MY_NID=EERead(NODE_ID_EE + 3);                                                 F:\MCP\projects\CAN\canBase\Source\Main.c
899
00147e   6ee6     MOVWF     0xe6,0x0                                                                                        
900
001480   6ae6     CLRF      0xe6,0x0                                                                                        
103 johboh 901
001482   ec7e     CALL      0x16fc,0x0                                                                                      
100 johboh 902
001484   f00b                                                                                                               
903
001486   52e5     MOVF      0xe5,0x1,0x0                                                                                    
904
001488   52e5     MOVF      0xe5,0x1,0x0                                                                                    
905
00148a   0100     MOVLB     0x0                                                                                             
906
00148c   6f62     MOVWF     0x62,0x1                                                                                        
907
                                           	}                                                                               F:\MCP\projects\CAN\canBase\Source\Main.c
87 johboh 908
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Main.c
100 johboh 909
                                           	// Dummy bootmessage                                                            F:\MCP\projects\CAN\canBase\Source\Main.c
910
00148e   0e91     MOVLW     0x91           	cm2.data[0]=0x91;                                                               F:\MCP\projects\CAN\canBase\Source\Main.c
911
001490   6ef3     MOVWF     0xf3,0x0                                                                                        
912
001492   0e07     MOVLW     0x7                                                                                             
913
001494   cff3     MOVFF     0xff3,0xfdb                                                                                     
914
001496   ffdb                                                                                                               
915
001498   0e01     MOVLW     0x1            	cm2.data_length=1;                                                              F:\MCP\projects\CAN\canBase\Source\Main.c
916
00149a   6ef3     MOVWF     0xf3,0x0                                                                                        
917
00149c   0e06     MOVLW     0x6                                                                                             
918
00149e   cff3     MOVFF     0xff3,0xfdb                                                                                     
919
0014a0   ffdb                                                                                                               
920
0014a2   0e02     MOVLW     0x2            	canSendMessage(cm2,PRIO_HIGH);                                                  F:\MCP\projects\CAN\canBase\Source\Main.c
921
0014a4   6ee6     MOVWF     0xe6,0x0                                                                                        
922
0014a6   cfd9     MOVFF     0xfd9,0xfe9                                                                                     
923
0014a8   ffe9                                                                                                               
924
0014aa   cfda     MOVFF     0xfda,0xfea                                                                                     
925
0014ac   ffea                                                                                                               
926
0014ae   cfee     MOVFF     0xfee,0xfe6                                                                                     
927
0014b0   ffe6                                                                                                               
928
0014b2   cfee     MOVFF     0xfee,0xfe6                                                                                     
929
0014b4   ffe6                                                                                                               
930
0014b6   cfee     MOVFF     0xfee,0xfe6                                                                                     
931
0014b8   ffe6                                                                                                               
932
0014ba   cfee     MOVFF     0xfee,0xfe6                                                                                     
933
0014bc   ffe6                                                                                                               
934
0014be   cfee     MOVFF     0xfee,0xfe6                                                                                     
935
0014c0   ffe6                                                                                                               
936
0014c2   cfee     MOVFF     0xfee,0xfe6                                                                                     
937
0014c4   ffe6                                                                                                               
938
0014c6   cfee     MOVFF     0xfee,0xfe6                                                                                     
939
0014c8   ffe6                                                                                                               
940
0014ca   cfee     MOVFF     0xfee,0xfe6                                                                                     
941
0014cc   ffe6                                                                                                               
942
0014ce   cfee     MOVFF     0xfee,0xfe6                                                                                     
943
0014d0   ffe6                                                                                                               
944
0014d2   cfee     MOVFF     0xfee,0xfe6                                                                                     
945
0014d4   ffe6                                                                                                               
946
0014d6   cfee     MOVFF     0xfee,0xfe6                                                                                     
947
0014d8   ffe6                                                                                                               
948
0014da   cfee     MOVFF     0xfee,0xfe6                                                                                     
949
0014dc   ffe6                                                                                                               
950
0014de   cfee     MOVFF     0xfee,0xfe6                                                                                     
951
0014e0   ffe6                                                                                                               
952
0014e2   cfee     MOVFF     0xfee,0xfe6                                                                                     
953
0014e4   ffe6                                                                                                               
954
0014e6   cfee     MOVFF     0xfee,0xfe6                                                                                     
955
0014e8   ffe6                                                                                                               
956
0014ea   ec38     CALL      0x1270,0x0                                                                                      
957
0014ec   f009                                                                                                               
958
0014ee   6e00     MOVWF     0x0,0x0                                                                                         
959
0014f0   0e10     MOVLW     0x10                                                                                            
960
0014f2   5ee1     SUBWF     0xe1,0x1,0x0                                                                                    
961
0014f4   5000     MOVF      0x0,0x0,0x0                                                                                     
87 johboh 962
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Main.c
100 johboh 963
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Main.c
964
00153e   d7db     BRA       0x14f6         	while(1)                                                                        F:\MCP\projects\CAN\canBase\Source\Main.c
85 johboh 965
                                           	{                                                                               F:\MCP\projects\CAN\canBase\Source\Main.c
86 johboh 966
                                           		static TICK t = 0;                                                             F:\MCP\projects\CAN\canBase\Source\Main.c
103 johboh 967
0014f6   ec2d     CALL      0x185a,0x0     		if ((tickGet()-t)>TICK_SECOND)                                                 F:\MCP\projects\CAN\canBase\Source\Main.c
968
0014f8   f00c                                                                                                               
100 johboh 969
0014fa   0100     MOVLB     0x0                                                                                             
970
0014fc   5167     MOVF      0x67,0x0,0x1                                                                                    
971
0014fe   5c12     SUBWF     0x12,0x0,0x0                                                                                    
972
001500   6e00     MOVWF     0x0,0x0                                                                                         
973
001502   5168     MOVF      0x68,0x0,0x1                                                                                    
974
001504   5813     SUBWFB    0x13,0x0,0x0                                                                                    
975
001506   6e01     MOVWF     0x1,0x0                                                                                         
976
001508   5169     MOVF      0x69,0x0,0x1                                                                                    
977
00150a   5814     SUBWFB    0x14,0x0,0x0                                                                                    
978
00150c   6e02     MOVWF     0x2,0x0                                                                                         
979
00150e   516a     MOVF      0x6a,0x0,0x1                                                                                    
980
001510   5815     SUBWFB    0x15,0x0,0x0                                                                                    
981
001512   6e03     MOVWF     0x3,0x0                                                                                         
982
001514   80d8     BSF       0xd8,0x0,0x0                                                                                    
983
001516   0e64     MOVLW     0x64                                                                                            
984
001518   5400     SUBFWB    0x0,0x0,0x0                                                                                     
985
00151a   0e00     MOVLW     0x0                                                                                             
986
00151c   5401     SUBFWB    0x1,0x0,0x0                                                                                     
987
00151e   0e00     MOVLW     0x0                                                                                             
988
001520   5402     SUBFWB    0x2,0x0,0x0                                                                                     
989
001522   0e00     MOVLW     0x0                                                                                             
990
001524   5403     SUBFWB    0x3,0x0,0x0                                                                                     
991
001526   e20b     BC        0x153e                                                                                          
85 johboh 992
                                           		{                                                                              F:\MCP\projects\CAN\canBase\Source\Main.c
100 johboh 993
001528   7282     BTG       0x82,0x1,0x0   			LED0_IO=~LED0_IO;                                                             F:\MCP\projects\CAN\canBase\Source\Main.c
103 johboh 994
00152a   ec2d     CALL      0x185a,0x0     			t = tickGet();                                                                F:\MCP\projects\CAN\canBase\Source\Main.c
995
00152c   f00c                                                                                                               
100 johboh 996
00152e   c012     MOVFF     0x12,0x67                                                                                       
997
001530   f067                                                                                                               
998
001532   c013     MOVFF     0x13,0x68                                                                                       
999
001534   f068                                                                                                               
1000
001536   c014     MOVFF     0x14,0x69                                                                                       
1001
001538   f069                                                                                                               
1002
00153a   c015     MOVFF     0x15,0x6a                                                                                       
1003
00153c   f06a                                                                                                               
85 johboh 1004
                                           		}                                                                              F:\MCP\projects\CAN\canBase\Source\Main.c
1005
                                           	}                                                                               F:\MCP\projects\CAN\canBase\Source\Main.c
100 johboh 1006
001540   0e0f     MOVLW     0xf            }                                                                                F:\MCP\projects\CAN\canBase\Source\Main.c
1007
001542   5ce1     SUBWF     0xe1,0x0,0x0                                                                                    
1008
001544   e202     BC        0x154a                                                                                          
1009
001546   6ae1     CLRF      0xe1,0x0                                                                                        
1010
001548   52e5     MOVF      0xe5,0x1,0x0                                                                                    
1011
00154a   6ee1     MOVWF     0xe1,0x0                                                                                        
1012
00154c   52e5     MOVF      0xe5,0x1,0x0                                                                                    
1013
00154e   cfe7     MOVFF     0xfe7,0xfd9                                                                                     
1014
001550   ffd9                                                                                                               
1015
001552   0012     RETURN    0x0                                                                                             
85 johboh 1016
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Main.c
1017
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Main.c
1018
                                           #pragma interrupt high_isr                                                       F:\MCP\projects\CAN\canBase\Source\Main.c
100 johboh 1019
001554   cfda     MOVFF     0xfda,0xfe4    void high_isr(void)                                                              F:\MCP\projects\CAN\canBase\Source\Main.c
1020
001556   ffe4                                                                                                               
1021
001558   cfe2     MOVFF     0xfe2,0xfda                                                                                     
1022
00155a   ffda                                                                                                               
1023
00155c   cfe9     MOVFF     0xfe9,0xfe4                                                                                     
1024
00155e   ffe4                                                                                                               
1025
001560   cfea     MOVFF     0xfea,0xfe4                                                                                     
1026
001562   ffe4                                                                                                               
1027
001564   cff6     MOVFF     0xff6,0xfe4                                                                                     
1028
001566   ffe4                                                                                                               
1029
001568   cff7     MOVFF     0xff7,0xfe4                                                                                     
1030
00156a   ffe4                                                                                                               
1031
00156c   cff5     MOVFF     0xff5,0xfe4                                                                                     
1032
00156e   ffe4                                                                                                               
1033
001570   cff3     MOVFF     0xff3,0xfe4                                                                                     
1034
001572   ffe4                                                                                                               
1035
001574   cff4     MOVFF     0xff4,0xfe4                                                                                     
1036
001576   ffe4                                                                                                               
1037
001578   cffa     MOVFF     0xffa,0xfe4                                                                                     
1038
00157a   ffe4                                                                                                               
1039
00157c   ee00     LFSR      0x0,0xe                                                                                         
1040
00157e   f00e                                                                                                               
1041
001580   0e0b     MOVLW     0xb                                                                                             
1042
001582   04e8     DECF      0xe8,0x0,0x0                                                                                    
1043
001584   e303     BNC       0x158c                                                                                          
1044
001586   cfee     MOVFF     0xfee,0xfe4                                                                                     
1045
001588   ffe4                                                                                                               
1046
00158a   d7fb     BRA       0x1582                                                                                          
1047
00158c   ee00     LFSR      0x0,0x0                                                                                         
1048
00158e   f000                                                                                                               
1049
001590   0e0e     MOVLW     0xe                                                                                             
1050
001592   04e8     DECF      0xe8,0x0,0x0                                                                                    
1051
001594   e303     BNC       0x159c                                                                                          
1052
001596   cfee     MOVFF     0xfee,0xfe4                                                                                     
1053
001598   ffe4                                                                                                               
1054
00159a   d7fb     BRA       0x1592                                                                                          
1055
00159c   52e6     MOVF      0xe6,0x1,0x0                                                                                    
85 johboh 1056
                                           {                                                                                F:\MCP\projects\CAN\canBase\Source\Main.c
100 johboh 1057
00159e   0004     CLRWDT                   	ClrWdt();                                                                       F:\MCP\projects\CAN\canBase\Source\Main.c
85 johboh 1058
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Main.c
1059
                                           	#ifdef USE_CAN                                                                  F:\MCP\projects\CAN\canBase\Source\Main.c
100 johboh 1060
0015a0   ec4d     CALL      0x109a,0x0     		canISR();                                                                      F:\MCP\projects\CAN\canBase\Source\Main.c
1061
0015a2   f008                                                                                                               
85 johboh 1062
                                           	#endif                                                                          F:\MCP\projects\CAN\canBase\Source\Main.c
1063
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Main.c
103 johboh 1064
0015a4   ec37     CALL      0x186e,0x0     	tickUpdate();                                                                   F:\MCP\projects\CAN\canBase\Source\Main.c
1065
0015a6   f00c                                                                                                               
85 johboh 1066
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Main.c
100 johboh 1067
0015a8   52e5     MOVF      0xe5,0x1,0x0   }                                                                                F:\MCP\projects\CAN\canBase\Source\Main.c
1068
0015aa   ee00     LFSR      0x0,0xd                                                                                         
1069
0015ac   f00d                                                                                                               
1070
0015ae   0e0e     MOVLW     0xe                                                                                             
1071
0015b0   04e8     DECF      0xe8,0x0,0x0                                                                                    
1072
0015b2   e303     BNC       0x15ba                                                                                          
1073
0015b4   cfe5     MOVFF     0xfe5,0xfed                                                                                     
1074
0015b6   ffed                                                                                                               
1075
0015b8   d7fb     BRA       0x15b0                                                                                          
1076
0015ba   ee00     LFSR      0x0,0x18                                                                                        
1077
0015bc   f018                                                                                                               
1078
0015be   0e0b     MOVLW     0xb                                                                                             
1079
0015c0   04e8     DECF      0xe8,0x0,0x0                                                                                    
1080
0015c2   e303     BNC       0x15ca                                                                                          
1081
0015c4   cfe5     MOVFF     0xfe5,0xfed                                                                                     
1082
0015c6   ffed                                                                                                               
1083
0015c8   d7fb     BRA       0x15c0                                                                                          
1084
0015ca   cfe5     MOVFF     0xfe5,0xffa                                                                                     
1085
0015cc   fffa                                                                                                               
1086
0015ce   cfe5     MOVFF     0xfe5,0xff4                                                                                     
1087
0015d0   fff4                                                                                                               
1088
0015d2   cfe5     MOVFF     0xfe5,0xff3                                                                                     
1089
0015d4   fff3                                                                                                               
1090
0015d6   cfe5     MOVFF     0xfe5,0xff5                                                                                     
1091
0015d8   fff5                                                                                                               
1092
0015da   cfe5     MOVFF     0xfe5,0xff7                                                                                     
1093
0015dc   fff7                                                                                                               
1094
0015de   cfe5     MOVFF     0xfe5,0xff6                                                                                     
1095
0015e0   fff6                                                                                                               
1096
0015e2   cfe5     MOVFF     0xfe5,0xfea                                                                                     
1097
0015e4   ffea                                                                                                               
1098
0015e6   cfe5     MOVFF     0xfe5,0xfe9                                                                                     
1099
0015e8   ffe9                                                                                                               
1100
0015ea   cfe5     MOVFF     0xfe5,0xfda                                                                                     
1101
0015ec   ffda                                                                                                               
1102
0015ee   0011     RETFIE    0x1                                                                                             
85 johboh 1103
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Main.c
89 johboh 1104
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Main.c
85 johboh 1105
                                           #pragma interrupt low_isr                                                        F:\MCP\projects\CAN\canBase\Source\Main.c
100 johboh 1106
0015f0   cfda     MOVFF     0xfda,0xfe4    void low_isr(void)                                                               F:\MCP\projects\CAN\canBase\Source\Main.c
1107
0015f2   ffe4                                                                                                               
1108
0015f4   cfe2     MOVFF     0xfe2,0xfda                                                                                     
1109
0015f6   ffda                                                                                                               
1110
0015f8   52e6     MOVF      0xe6,0x1,0x0                                                                                    
85 johboh 1111
                                           {                                                                                F:\MCP\projects\CAN\canBase\Source\Main.c
1112
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Main.c
100 johboh 1113
0015fa   52e5     MOVF      0xe5,0x1,0x0   }                                                                                F:\MCP\projects\CAN\canBase\Source\Main.c
1114
0015fc   cfe5     MOVFF     0xfe5,0xfda                                                                                     
1115
0015fe   ffda                                                                                                               
1116
001600   0011     RETFIE    0x1                                                                                             
85 johboh 1117
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Main.c
1118
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Main.c
1119
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Main.c
1120
                                           /*                                                                               F:\MCP\projects\CAN\canBase\Source\Main.c
1121
                                           *	Function: mainInit                                                             F:\MCP\projects\CAN\canBase\Source\Main.c
1122
                                           *                                                                                F:\MCP\projects\CAN\canBase\Source\Main.c
1123
                                           *	Input:	none                                                                    F:\MCP\projects\CAN\canBase\Source\Main.c
1124
                                           *	Output: none                                                                   F:\MCP\projects\CAN\canBase\Source\Main.c
1125
                                           *	Pre-conditions: none                                                           F:\MCP\projects\CAN\canBase\Source\Main.c
1126
                                           *	Affects: Se code                                                               F:\MCP\projects\CAN\canBase\Source\Main.c
1127
                                           *	Depends: none.                                                                 F:\MCP\projects\CAN\canBase\Source\Main.c
1128
                                           */                                                                               F:\MCP\projects\CAN\canBase\Source\Main.c
1129
                                           void mainInit()                                                                  F:\MCP\projects\CAN\canBase\Source\Main.c
1130
                                           {                                                                                F:\MCP\projects\CAN\canBase\Source\Main.c
100 johboh 1131
001602   9294     BCF       0x94,0x1,0x0   	LED0_TRIS=0;	                                                                   F:\MCP\projects\CAN\canBase\Source\Main.c
85 johboh 1132
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Main.c
1133
                                           	// Enable Interrupts                                                            F:\MCP\projects\CAN\canBase\Source\Main.c
100 johboh 1134
001604   8ef2     BSF       0xf2,0x7,0x0       INTCONbits.GIEH = 1;                                                         F:\MCP\projects\CAN\canBase\Source\Main.c
1135
001606   8cf2     BSF       0xf2,0x6,0x0       INTCONbits.GIEL = 1;                                                         F:\MCP\projects\CAN\canBase\Source\Main.c
85 johboh 1136
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Main.c
1137
                                           	// Enable interrupt prirority                                                   F:\MCP\projects\CAN\canBase\Source\Main.c
100 johboh 1138
001608   8ed0     BSF       0xd0,0x7,0x0   	RCONbits.IPEN=1;                                                                F:\MCP\projects\CAN\canBase\Source\Main.c
85 johboh 1139
                                           	                                                                                F:\MCP\projects\CAN\canBase\Source\Main.c
1140
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Main.c
100 johboh 1141
00160a   0012     RETURN    0x0            }                                                                                F:\MCP\projects\CAN\canBase\Source\Main.c
85 johboh 1142
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Main.c
1143
                                           /*                                                                               F:\MCP\projects\CAN\canBase\Source\Main.c
1144
                                           *	Function: canParse                                                             F:\MCP\projects\CAN\canBase\Source\Main.c
1145
                                           *                                                                                F:\MCP\projects\CAN\canBase\Source\Main.c
1146
                                           *	Input:	Received can message                                                    F:\MCP\projects\CAN\canBase\Source\Main.c
1147
                                           *	Output: none                                                                   F:\MCP\projects\CAN\canBase\Source\Main.c
1148
                                           *	Pre-conditions: canInit and received packet.                                   F:\MCP\projects\CAN\canBase\Source\Main.c
1149
                                           *	Affects: Sensors/actuators/etc. See code.                                      F:\MCP\projects\CAN\canBase\Source\Main.c
1150
                                           *	Depends: none.                                                                 F:\MCP\projects\CAN\canBase\Source\Main.c
1151
                                           */                                                                               F:\MCP\projects\CAN\canBase\Source\Main.c
1152
                                           #ifdef USE_CAN                                                                   F:\MCP\projects\CAN\canBase\Source\Main.c
100 johboh 1153
00160c   cfd9     MOVFF     0xfd9,0xfe6    void canParse(CAN_MESSAGE cm)                                                    F:\MCP\projects\CAN\canBase\Source\Main.c
1154
00160e   ffe6                                                                                                               
1155
001610   cfe1     MOVFF     0xfe1,0xfd9                                                                                     
1156
001612   ffd9                                                                                                               
85 johboh 1157
                                           {                                                                                F:\MCP\projects\CAN\canBase\Source\Main.c
100 johboh 1158
001614   0004     CLRWDT                   	ClrWdt();                                                                       F:\MCP\projects\CAN\canBase\Source\Main.c
89 johboh 1159
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Main.c
100 johboh 1160
001616   0ef0     MOVLW     0xf0           	switch(cm.funct)                                                                F:\MCP\projects\CAN\canBase\Source\Main.c
1161
001618   50db     MOVF      0xdb,0x0,0x0                                                                                    
1162
00161a   e001     BZ        0x161e                                                                                          
103 johboh 1163
00161c   d06b     BRA       0x16f4                                                                                          
86 johboh 1164
                                           	{                                                                               F:\MCP\projects\CAN\canBase\Source\Main.c
1165
                                           		case FUNCT_BOOTLOADER:                                                         F:\MCP\projects\CAN\canBase\Source\Main.c
103 johboh 1166
00161e   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
1167
001620   50db     MOVF      0xdb,0x0,0x0                                                                                    
1168
001622   0100     MOVLB     0x0                                                                                             
1169
001624   5d62     SUBWF     0x62,0x0,0x1                                                                                    
1170
001626   e165     BNZ       0x16f2                                                                                          
1171
001628   0efc     MOVLW     0xfc                                                                                            
1172
00162a   cfdb     MOVFF     0xfdb,0x2                                                                                       
1173
00162c   f002                                                                                                               
1174
00162e   c002     MOVFF     0x2,0x3                                                                                         
1175
001630   f003                                                                                                               
1176
001632   6a02     CLRF      0x2,0x0                                                                                         
1177
001634   0efb     MOVLW     0xfb                                                                                            
100 johboh 1178
001636   50db     MOVF      0xdb,0x0,0x0                                                                                    
1179
001638   0100     MOVLB     0x0                                                                                             
103 johboh 1180
00163a   2402     ADDWF     0x2,0x0,0x0                                                                                     
1181
00163c   6e00     MOVWF     0x0,0x0                                                                                         
1182
00163e   0e00     MOVLW     0x0                                                                                             
1183
001640   2003     ADDWFC    0x3,0x0,0x0                                                                                     
1184
001642   6e01     MOVWF     0x1,0x0                                                                                         
1185
001644   0100     MOVLB     0x0                                                                                             
1186
001646   5160     MOVF      0x60,0x0,0x1                                                                                    
1187
001648   1800     XORWF     0x0,0x0,0x0                                                                                     
1188
00164a   e102     BNZ       0x1650                                                                                          
1189
00164c   5161     MOVF      0x61,0x0,0x1                                                                                    
1190
00164e   1801     XORWF     0x1,0x0,0x0                                                                                     
1191
001650   e150     BNZ       0x16f2                                                                                          
1192
                                           			{                                                                             F:\MCP\projects\CAN\canBase\Source\Main.c
1193
001652   0ef1     MOVLW     0xf1           				switch(cm.funcc)                                                             F:\MCP\projects\CAN\canBase\Source\Main.c
1194
001654   cfdb     MOVFF     0xfdb,0x14                                                                                      
1195
001656   f014                                                                                                               
1196
001658   0ef2     MOVLW     0xf2                                                                                            
1197
00165a   cfdb     MOVFF     0xfdb,0x15                                                                                      
1198
00165c   f015                                                                                                               
1199
00165e   0e06     MOVLW     0x6                                                                                             
1200
001660   1814     XORWF     0x14,0x0,0x0                                                                                    
1201
001662   e101     BNZ       0x1666                                                                                          
1202
001664   5015     MOVF      0x15,0x0,0x0                                                                                    
1203
001666   e008     BZ        0x1678                                                                                          
1204
001668   0e01     MOVLW     0x1                                                                                             
1205
00166a   1814     XORWF     0x14,0x0,0x0                                                                                    
1206
00166c   e101     BNZ       0x1670                                                                                          
1207
00166e   5015     MOVF      0x15,0x0,0x0                                                                                    
1208
001670   e001     BZ        0x1674                                                                                          
1209
001672   d03f     BRA       0x16f2                                                                                          
1210
                                           				{                                                                            F:\MCP\projects\CAN\canBase\Source\Main.c
1211
001674   00ff     RESET                    					case FUNCC_BOOT_INIT: Reset(); break; //User whant to program me, reset me. F:\MCP\projects\CAN\canBase\Source\Main.c
1212
001676   d03d     BRA       0x16f2                                                                                          
1213
                                           					case FUNCC_BOOT_SET_ID:                                                     F:\MCP\projects\CAN\canBase\Source\Main.c
1214
                                           						// Change my ID and NID                                                    F:\MCP\projects\CAN\canBase\Source\Main.c
1215
001678   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
1216
00167a   cfdb     MOVFF     0xfdb,0x0                                                                                       
1217
00167c   f000                                                                                                               
1218
00167e   c000     MOVFF     0x0,0x1                                                                                         
1219
001680   f001                                                                                                               
1220
001682   6a00     CLRF      0x0,0x0                                                                                         
1221
001684   0ef7     MOVLW     0xf7                                                                                            
1222
001686   50db     MOVF      0xdb,0x0,0x0                                                                                    
1223
001688   0100     MOVLB     0x0                                                                                             
1224
00168a   2400     ADDWF     0x0,0x0,0x0                                                                                     
1225
00168c   6f60     MOVWF     0x60,0x1                                                                                        
1226
00168e   0e00     MOVLW     0x0                                                                                             
1227
001690   2001     ADDWFC    0x1,0x0,0x0                                                                                     
1228
001692   6f61     MOVWF     0x61,0x1                                                                                        
1229
001694   0ef9     MOVLW     0xf9           						MY_NID=cm.data[BOOT_DATA_NEW_NID];                                         F:\MCP\projects\CAN\canBase\Source\Main.c
1230
001696   cfdb     MOVFF     0xfdb,0x62                                                                                      
1231
001698   f062                                                                                                               
1232
00169a   0ef8     MOVLW     0xf8           						EEWrite(NODE_ID_EE+1,cm.data[BOOT_DATA_NEW_ID_HIGH]);                      F:\MCP\projects\CAN\canBase\Source\Main.c
1233
00169c   cfdb     MOVFF     0xfdb,0xfe6                                                                                     
1234
00169e   ffe6                                                                                                               
1235
0016a0   0e01     MOVLW     0x1                                                                                             
1236
0016a2   6ee6     MOVWF     0xe6,0x0                                                                                        
1237
0016a4   6ae6     CLRF      0xe6,0x0                                                                                        
1238
0016a6   eca3     CALL      0x1746,0x0                                                                                      
1239
0016a8   f00b                                                                                                               
1240
0016aa   52e5     MOVF      0xe5,0x1,0x0                                                                                    
1241
0016ac   52e5     MOVF      0xe5,0x1,0x0                                                                                    
1242
0016ae   52e5     MOVF      0xe5,0x1,0x0                                                                                    
1243
0016b0   0ef7     MOVLW     0xf7           						EEWrite(NODE_ID_EE+2,cm.data[BOOT_DATA_NEW_ID_LOW]);                       F:\MCP\projects\CAN\canBase\Source\Main.c
1244
0016b2   cfdb     MOVFF     0xfdb,0xfe6                                                                                     
1245
0016b4   ffe6                                                                                                               
1246
0016b6   0e02     MOVLW     0x2                                                                                             
1247
0016b8   6ee6     MOVWF     0xe6,0x0                                                                                        
1248
0016ba   6ae6     CLRF      0xe6,0x0                                                                                        
1249
0016bc   eca3     CALL      0x1746,0x0                                                                                      
1250
0016be   f00b                                                                                                               
1251
0016c0   52e5     MOVF      0xe5,0x1,0x0                                                                                    
1252
0016c2   52e5     MOVF      0xe5,0x1,0x0                                                                                    
1253
0016c4   52e5     MOVF      0xe5,0x1,0x0                                                                                    
1254
0016c6   0ef9     MOVLW     0xf9           						EEWrite(NODE_ID_EE+3,cm.data[BOOT_DATA_NEW_NID]);                          F:\MCP\projects\CAN\canBase\Source\Main.c
1255
0016c8   cfdb     MOVFF     0xfdb,0xfe6                                                                                     
1256
0016ca   ffe6                                                                                                               
1257
0016cc   0e03     MOVLW     0x3                                                                                             
1258
0016ce   6ee6     MOVWF     0xe6,0x0                                                                                        
1259
0016d0   6ae6     CLRF      0xe6,0x0                                                                                        
1260
0016d2   eca3     CALL      0x1746,0x0                                                                                      
1261
0016d4   f00b                                                                                                               
1262
0016d6   52e5     MOVF      0xe5,0x1,0x0                                                                                    
1263
0016d8   52e5     MOVF      0xe5,0x1,0x0                                                                                    
1264
0016da   52e5     MOVF      0xe5,0x1,0x0                                                                                    
1265
0016dc   0e2a     MOVLW     0x2a           						EEWrite(NODE_ID_EE,NODE_HAS_ID);                                           F:\MCP\projects\CAN\canBase\Source\Main.c
1266
0016de   6ee6     MOVWF     0xe6,0x0                                                                                        
1267
0016e0   0e00     MOVLW     0x0                                                                                             
1268
0016e2   6ee6     MOVWF     0xe6,0x0                                                                                        
1269
0016e4   6ae6     CLRF      0xe6,0x0                                                                                        
1270
0016e6   eca3     CALL      0x1746,0x0                                                                                      
1271
0016e8   f00b                                                                                                               
1272
0016ea   52e5     MOVF      0xe5,0x1,0x0                                                                                    
1273
0016ec   52e5     MOVF      0xe5,0x1,0x0                                                                                    
1274
0016ee   52e5     MOVF      0xe5,0x1,0x0                                                                                    
1275
0016f0   d000     BRA       0x16f2         					break;                                                                      F:\MCP\projects\CAN\canBase\Source\Main.c
1276
                                           				}                                                                            F:\MCP\projects\CAN\canBase\Source\Main.c
1277
                                           			}                                                                             F:\MCP\projects\CAN\canBase\Source\Main.c
1278
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Main.c
1279
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Main.c
1280
0016f2   d000     BRA       0x16f4         		break;                                                                         F:\MCP\projects\CAN\canBase\Source\Main.c
86 johboh 1281
                                           	}                                                                               F:\MCP\projects\CAN\canBase\Source\Main.c
103 johboh 1282
0016f4   52e5     MOVF      0xe5,0x1,0x0   }                                                                                F:\MCP\projects\CAN\canBase\Source\Main.c
1283
0016f6   cfe7     MOVFF     0xfe7,0xfd9                                                                                     
1284
0016f8   ffd9                                                                                                               
1285
0016fa   0012     RETURN    0x0                                                                                             
86 johboh 1286
                                           #endif                                                                           F:\MCP\projects\CAN\canBase\Source\Main.c
85 johboh 1287
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Main.c
1288
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Main.c
86 johboh 1289
                                           // Below are mandantory when using bootloader                                    F:\MCP\projects\CAN\canBase\Source\Main.c
1290
                                           // define DEBUG_MODE to use without bootloader.                                  F:\MCP\projects\CAN\canBase\Source\Main.c
85 johboh 1291
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Main.c
1292
                                           #ifndef DEBUG_MODE                                                               F:\MCP\projects\CAN\canBase\Source\Main.c
1293
                                           extern void _startup (void);                                                     F:\MCP\projects\CAN\canBase\Source\Main.c
1294
                                           #pragma code _RESET_INTERRUPT_VECTOR = 0x001000                                  F:\MCP\projects\CAN\canBase\Source\Main.c
1295
                                           void _reset (void)                                                               F:\MCP\projects\CAN\canBase\Source\Main.c
1296
                                           {                                                                                F:\MCP\projects\CAN\canBase\Source\Main.c
103 johboh 1297
001000   ef45     GOTO      0x188a             _asm goto _startup _endasm                                                   F:\MCP\projects\CAN\canBase\Source\Main.c
100 johboh 1298
001002   f00c                                                                                                               
85 johboh 1299
001004   0012     RETURN    0x0            }                                                                                F:\MCP\projects\CAN\canBase\Source\Main.c
1300
                                           #pragma code                                                                     F:\MCP\projects\CAN\canBase\Source\Main.c
1301
                                           #endif                                                                           F:\MCP\projects\CAN\canBase\Source\Main.c
1302
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Main.c
1303
                                           #pragma code _HIGH_INTERRUPT_VECTOR = 0x001008                                   F:\MCP\projects\CAN\canBase\Source\Main.c
1304
                                           void _high_ISR (void)                                                            F:\MCP\projects\CAN\canBase\Source\Main.c
1305
                                           {                                                                                F:\MCP\projects\CAN\canBase\Source\Main.c
100 johboh 1306
001008   efaa     GOTO      0x1554         	_asm GOTO high_isr _endasm                                                      F:\MCP\projects\CAN\canBase\Source\Main.c
86 johboh 1307
00100a   f00a                                                                                                               
85 johboh 1308
00100c   0012     RETURN    0x0            }                                                                                F:\MCP\projects\CAN\canBase\Source\Main.c
1309
                                           #pragma code                                                                     F:\MCP\projects\CAN\canBase\Source\Main.c
1310
                                                                                                                            F:\MCP\projects\CAN\canBase\Source\Main.c
1311
                                           #pragma code _LOW_INTERRUPT_VECTOR = 0x001018                                    F:\MCP\projects\CAN\canBase\Source\Main.c
1312
                                           void _low_ISR (void)                                                             F:\MCP\projects\CAN\canBase\Source\Main.c
1313
                                           {                                                                                F:\MCP\projects\CAN\canBase\Source\Main.c
100 johboh 1314
001018   eff8     GOTO      0x15f0             _asm GOTO low_isr _endasm                                                    F:\MCP\projects\CAN\canBase\Source\Main.c
86 johboh 1315
00101a   f00a                                                                                                               
85 johboh 1316
00101c   0012     RETURN    0x0            }                                                                                F:\MCP\projects\CAN\canBase\Source\Main.c
1317
                                           #pragma code                                                                     F:\MCP\projects\CAN\canBase\Source\Main.c
95 johboh 1318
                                           /*********************************************************************           F:\MCP\projects\CAN\Include\EEAccess.c
1319
                                            *                                                                               F:\MCP\projects\CAN\Include\EEAccess.c
1320
                                            *   Functions for reading and writing to EEPROM.                                F:\MCP\projects\CAN\Include\EEAccess.c
1321
                                            *                                                                               F:\MCP\projects\CAN\Include\EEAccess.c
1322
                                            *********************************************************************           F:\MCP\projects\CAN\Include\EEAccess.c
1323
                                            * FileName:        	$HeadURL: http://svn.arune.se/svn/HomeAutomation/trunk/EmbeddedSoftware/PIC/Include/EEAccess.c $ F:\MCP\projects\CAN\Include\EEAccess.c
1324
                                            * Last changed:	$LastChangedDate: 2006-11-14 20:15:02 +0100 (ti, 14 nov 2006) $ F:\MCP\projects\CAN\Include\EEAccess.c
1325
                                            * By:			$LastChangedBy: johboh $                                                F:\MCP\projects\CAN\Include\EEAccess.c
1326
                                            * Revision:		$Revision: 94 $                                                    F:\MCP\projects\CAN\Include\EEAccess.c
1327
                                            ********************************************************************/           F:\MCP\projects\CAN\Include\EEAccess.c
1328
                                           #include <p18cxxx.h>                                                             F:\MCP\projects\CAN\Include\EEAccess.c
1329
                                           #include <EEaccess.h>                                                            F:\MCP\projects\CAN\Include\EEAccess.c
1330
                                                                                                                            F:\MCP\projects\CAN\Include\EEAccess.c
103 johboh 1331
0016fc   cfd9     MOVFF     0xfd9,0xfe6    BYTE EERead(WORD addr)                                                           F:\MCP\projects\CAN\Include\EEAccess.c
1332
0016fe   ffe6                                                                                                               
1333
001700   cfe1     MOVFF     0xfe1,0xfd9                                                                                     
1334
001702   ffd9                                                                                                               
95 johboh 1335
                                           {                                                                                F:\MCP\projects\CAN\Include\EEAccess.c
103 johboh 1336
001704   0efd     MOVLW     0xfd           	EEADRH=(BYTE)(addr>>8);                                                         F:\MCP\projects\CAN\Include\EEAccess.c
1337
001706   cfdb     MOVFF     0xfdb,0x0                                                                                       
1338
001708   f000                                                                                                               
1339
00170a   0efe     MOVLW     0xfe                                                                                            
1340
00170c   cfdb     MOVFF     0xfdb,0x1                                                                                       
1341
00170e   f001                                                                                                               
1342
001710   c001     MOVFF     0x1,0x0                                                                                         
1343
001712   f000                                                                                                               
1344
001714   6a01     CLRF      0x1,0x0                                                                                         
1345
001716   5000     MOVF      0x0,0x0,0x0                                                                                     
1346
001718   6eaa     MOVWF     0xaa,0x0                                                                                        
1347
00171a   0eff     MOVLW     0xff           	EEADR=(BYTE)(addr & 0xFF);                                                      F:\MCP\projects\CAN\Include\EEAccess.c
1348
00171c   6ee7     MOVWF     0xe7,0x0                                                                                        
1349
00171e   0efd     MOVLW     0xfd                                                                                            
1350
001720   cfdb     MOVFF     0xfdb,0x0                                                                                       
1351
001722   f000                                                                                                               
1352
001724   0efe     MOVLW     0xfe                                                                                            
1353
001726   cfdb     MOVFF     0xfdb,0x1                                                                                       
1354
001728   f001                                                                                                               
1355
00172a   50e7     MOVF      0xe7,0x0,0x0                                                                                    
1356
00172c   1600     ANDWF     0x0,0x1,0x0                                                                                     
1357
00172e   6a01     CLRF      0x1,0x0                                                                                         
1358
001730   5000     MOVF      0x0,0x0,0x0                                                                                     
1359
001732   6ea9     MOVWF     0xa9,0x0                                                                                        
1360
001734   9ea6     BCF       0xa6,0x7,0x0   	EECON1bits.EEPGD=0;                                                             F:\MCP\projects\CAN\Include\EEAccess.c
1361
001736   9ca6     BCF       0xa6,0x6,0x0   	EECON1bits.CFGS=0;                                                              F:\MCP\projects\CAN\Include\EEAccess.c
1362
001738   80a6     BSF       0xa6,0x0,0x0   	EECON1bits.RD=1;                                                                F:\MCP\projects\CAN\Include\EEAccess.c
1363
00173a   50a8     MOVF      0xa8,0x0,0x0   	return EEDATA;	                                                                 F:\MCP\projects\CAN\Include\EEAccess.c
1364
00173c   d000     BRA       0x173e                                                                                          
1365
00173e   52e5     MOVF      0xe5,0x1,0x0   }                                                                                F:\MCP\projects\CAN\Include\EEAccess.c
1366
001740   cfe7     MOVFF     0xfe7,0xfd9                                                                                     
1367
001742   ffd9                                                                                                               
1368
001744   0012     RETURN    0x0                                                                                             
95 johboh 1369
                                                                                                                            F:\MCP\projects\CAN\Include\EEAccess.c
1370
                                                                                                                            F:\MCP\projects\CAN\Include\EEAccess.c
103 johboh 1371
001746   cfd9     MOVFF     0xfd9,0xfe6    void EEWrite(WORD addr,BYTE data)                                                F:\MCP\projects\CAN\Include\EEAccess.c
1372
001748   ffe6                                                                                                               
1373
00174a   cfe1     MOVFF     0xfe1,0xfd9                                                                                     
1374
00174c   ffd9                                                                                                               
95 johboh 1375
                                           {                                                                                F:\MCP\projects\CAN\Include\EEAccess.c
103 johboh 1376
00174e   98a1     BCF       0xa1,0x4,0x0   	PIR2bits.EEIF=0;                                                                F:\MCP\projects\CAN\Include\EEAccess.c
1377
001750   0efd     MOVLW     0xfd           	EEADRH=(BYTE)(addr>>8);                                                         F:\MCP\projects\CAN\Include\EEAccess.c
1378
001752   cfdb     MOVFF     0xfdb,0x0                                                                                       
1379
001754   f000                                                                                                               
1380
001756   0efe     MOVLW     0xfe                                                                                            
1381
001758   cfdb     MOVFF     0xfdb,0x1                                                                                       
1382
00175a   f001                                                                                                               
1383
00175c   c001     MOVFF     0x1,0x0                                                                                         
1384
00175e   f000                                                                                                               
1385
001760   6a01     CLRF      0x1,0x0                                                                                         
1386
001762   5000     MOVF      0x0,0x0,0x0                                                                                     
1387
001764   6eaa     MOVWF     0xaa,0x0                                                                                        
1388
001766   0eff     MOVLW     0xff           	EEADR=(BYTE)(addr & 0xFF);                                                      F:\MCP\projects\CAN\Include\EEAccess.c
1389
001768   6ee7     MOVWF     0xe7,0x0                                                                                        
1390
00176a   0efd     MOVLW     0xfd                                                                                            
1391
00176c   cfdb     MOVFF     0xfdb,0x0                                                                                       
1392
00176e   f000                                                                                                               
1393
001770   0efe     MOVLW     0xfe                                                                                            
1394
001772   cfdb     MOVFF     0xfdb,0x1                                                                                       
1395
001774   f001                                                                                                               
1396
001776   50e7     MOVF      0xe7,0x0,0x0                                                                                    
1397
001778   1600     ANDWF     0x0,0x1,0x0                                                                                     
1398
00177a   6a01     CLRF      0x1,0x0                                                                                         
1399
00177c   5000     MOVF      0x0,0x0,0x0                                                                                     
1400
00177e   6ea9     MOVWF     0xa9,0x0                                                                                        
1401
001780   0efc     MOVLW     0xfc           	EEDATA=data;                                                                    F:\MCP\projects\CAN\Include\EEAccess.c
1402
001782   50db     MOVF      0xdb,0x0,0x0                                                                                    
1403
001784   6ea8     MOVWF     0xa8,0x0                                                                                        
1404
001786   9ea6     BCF       0xa6,0x7,0x0   	EECON1bits.EEPGD=0;                                                             F:\MCP\projects\CAN\Include\EEAccess.c
1405
001788   9ca6     BCF       0xa6,0x6,0x0   	EECON1bits.CFGS=0;                                                              F:\MCP\projects\CAN\Include\EEAccess.c
1406
00178a   84a6     BSF       0xa6,0x2,0x0   	EECON1bits.WREN=1;                                                              F:\MCP\projects\CAN\Include\EEAccess.c
1407
00178c   9ef2     BCF       0xf2,0x7,0x0   	INTCONbits.GIE=0;                                                               F:\MCP\projects\CAN\Include\EEAccess.c
1408
00178e   0e55     MOVLW     0x55           	EECON2=0x55;                                                                    F:\MCP\projects\CAN\Include\EEAccess.c
1409
001790   6ea7     MOVWF     0xa7,0x0                                                                                        
1410
001792   0eaa     MOVLW     0xaa           	EECON2=0xAA;                                                                    F:\MCP\projects\CAN\Include\EEAccess.c
1411
001794   6ea7     MOVWF     0xa7,0x0                                                                                        
1412
001796   82a6     BSF       0xa6,0x1,0x0   	EECON1bits.WR=1;                                                                F:\MCP\projects\CAN\Include\EEAccess.c
1413
001798   8ef2     BSF       0xf2,0x7,0x0   	INTCONbits.GIE=1;                                                               F:\MCP\projects\CAN\Include\EEAccess.c
1414
00179a   a8a1     BTFSS     0xa1,0x4,0x0   	while(!PIR2bits.EEIF);                                                          F:\MCP\projects\CAN\Include\EEAccess.c
1415
00179c   d7fe     BRA       0x179a                                                                                          
1416
00179e   94a6     BCF       0xa6,0x2,0x0   	EECON1bits.WREN=0;                                                              F:\MCP\projects\CAN\Include\EEAccess.c
1417
0017a0   52e5     MOVF      0xe5,0x1,0x0   }                                                                                F:\MCP\projects\CAN\Include\EEAccess.c
1418
0017a2   cfe7     MOVFF     0xfe7,0xfd9                                                                                     
1419
0017a4   ffd9                                                                                                               
1420
0017a6   0012     RETURN    0x0