📄 main.lst
字号:
181: * |_________ One sample per bit
182: */
183:
184: CAN0IDAC = 0x10; /* Set four 16-bit Filters
0018 c610 [1] LDAB #16
001a 7b0000 [3] STAB _CAN0IDAC
185: *
186: * 0b00010000
187: * ||||||||__
188: * |||||||___\_ Filter Hit Indicator
189: * ||||||____/
190: * |||||_____ Unimplemented
191: * ||||______
192: * |||_______>- Four 16-bit Acceptance Filters
193: * ||________
194: * |_________>- Unimplemented
195: */
196:
197: /* Acceptance Filters */
198: CAN0IDAR0 = ACC_CODE_ID100_HIGH; //|\ 16 bit Filter 0
001d 58 [1] LSLB
001e 7b0000 [3] STAB _CAN0IDAR0
199: CAN0IDMR0 = MASK_CODE_ST_ID_HIGH; //| \__ Accepts Standard Data Frame Msg
0021 790000 [3] CLR _CAN0IDMR0
200: CAN0IDAR1 = ACC_CODE_ID100_LOW; //| / with ID 0x100
0024 790000 [3] CLR _CAN0IDAR1
201: CAN0IDMR1 = MASK_CODE_ST_ID_LOW; //|/
0027 c607 [1] LDAB #7
0029 7b0000 [3] STAB _CAN0IDMR1
202:
203: CAN0IDAC = 0x10; /* Set four 16-bit Filters */
002c c610 [1] LDAB #16
002e 7b0000 [3] STAB _CAN0IDAC
204:
205: CAN0IDAR2 = 0x00; //|\ 16 bit Filter 1
0031 790000 [3] CLR _CAN0IDAR2
206: CAN0IDMR2 = MASK_CODE_ST_ID_HIGH; //| \__ Accepts Standard Data Frame Msg
0034 790000 [3] CLR _CAN0IDMR2
207: CAN0IDAR3 = 0x00; //| / with ID 0x000
0037 790000 [3] CLR _CAN0IDAR3
208: CAN0IDMR3 = MASK_CODE_ST_ID_LOW; //|/
003a c607 [1] LDAB #7
003c 7b0000 [3] STAB _CAN0IDMR3
209:
210: CAN0IDAR4 = 0x00; //|\ 16 bit Filter 2
003f 790000 [3] CLR _CAN0IDAR4
211: CAN0IDMR4 = MASK_CODE_ST_ID_HIGH; //| \__ Accepts Standard Data Frame Msg
0042 790000 [3] CLR _CAN0IDMR4
212: CAN0IDAR5 = 0x00; //| / with ID 0x000
0045 790000 [3] CLR _CAN0IDAR5
213: CAN0IDMR5 = MASK_CODE_ST_ID_LOW; //|/
0048 7b0000 [3] STAB _CAN0IDMR5
214:
215: CAN0IDAR6 = 0x00; //|\ 16 bit Filter 3
004b 790000 [3] CLR _CAN0IDAR6
216: CAN0IDMR6 = MASK_CODE_ST_ID_HIGH; //| \__ Accepts Standard Data Frame Msg
004e 790000 [3] CLR _CAN0IDMR6
217: CAN0IDAR7 = 0x00; //| / with ID 0x000
0051 790000 [3] CLR _CAN0IDAR7
218: CAN0IDMR7 = MASK_CODE_ST_ID_LOW; //|/
0054 7b0000 [3] STAB _CAN0IDMR7
219:
220: CAN0CTL0 = 0x00; /* Exit Initialization Mode Request */
0057 790000 [3] CLR _CAN0CTL0
221: while ((CAN0CTL1&0x01) != 0){}; /* Wait for Normal Mode */
005a 1e000001fb [5] BRSET _CAN0CTL1,#1,*+0 ;abs = 005a
222:
223: }
005f 0a [7] RTC
224:
225:
226: /*
227: * functionName: a description of the function functionName.
228: * Another line of the description.
229: *
230: * Parameters: param1 - description
231: * param2 - description
232: *
233: * Return : description of the value returned by functionName
234: */
235: unsigned char CAN0SendFrame(unsigned long id, unsigned char priority, unsigned char length, unsigned char *txdata ){
Function: CAN0SendFrame
Source : E:\Freescale\code\MSCAN12_DP256\Sources\main.c
Options : -BfaGapLimitBits-1 -Env"GENPATH=E:\Freescale\code\MSCAN12_DP256;E:\Freescale\code\MSCAN12_DP256\bin;E:\Freescale\code\MSCAN12_DP256\prm;E:\Freescale\code\MSCAN12_DP256\cmd;E:\Freescale\code\MSCAN12_DP256\Sources;D:\Program Files\Freescale\CW for HC12 V4.5\lib\HC12c\lib;D:\Program Files\Freescale\CW for HC12 V4.5\lib\HC12c\src;D:\Program Files\Freescale\CW for HC12 V4.5\lib\HC12c\include" -Env"LIBPATH=D:\Program Files\Freescale\CW for HC12 V4.5\lib\HC12c\include" -EnvOBJPATH=E:\Freescale\code\MSCAN12_DP256\bin -EnvTEXTPATH=E:\Freescale\code\MSCAN12_DP256\bin -Lasm=%n.lst -Mb -ObjN=E:\Freescale\code\MSCAN12_DP256\MSCAN12_DP256_Data\P&E_ICD\ObjectCode\main.c.o -WmsgSd1106
0000 6cad [2] STD 3,-SP
236:
237: unsigned char index;
238: unsigned char txbuffer = {0};
239:
240: if (!CAN0TFLG) /* Is Transmit Buffer full?? */
0002 f60000 [3] LDAB _CAN0TFLG
0005 2604 [3/1] BNE *+6 ;abs = 000b
241: return ERR_BUFFER_FULL;
0007 c680 [1] LDAB #128
0009 204b [3] BRA *+77 ;abs = 0056
242:
243: CAN0TBSEL = CAN0TFLG; /* Select lowest empty buffer */
000b f60000 [3] LDAB _CAN0TFLG
000e 7b0000 [3] STAB _CAN0TBSEL
244: txbuffer = CAN0TBSEL; /* Backup selected buffer */
0011 f60000 [3] LDAB _CAN0TBSEL
0014 6b82 [2] STAB 2,SP
245:
246: /* Load Id to IDR Registers */
247: *((unsigned long *) ((unsigned long)(&CAN0TXIDR0)))= id;
0016 ec8a [3] LDD 10,SP
0018 7c0000 [3] STD _CAN0TXIDR0:2
001b ec88 [3] LDD 8,SP
001d 7c0000 [3] STD _CAN0TXIDR0
248:
249: for (index=0;index<length;index++) {
0020 c7 [1] CLRB
0021 2016 [3] BRA *+24 ;abs = 0039
250: *(&CAN0TXDSR0 + index) = txdata[index]; /* Load data to Tx buffer
0023 87 [1] CLRA
0024 3b [2] PSHD
0025 c30000 [2] ADDD #_CAN0TXDSR0
0028 b746 [1] TFR D,Y
002a ec80 [3] LDD 0,SP
002c e382 [3] ADDD 2,SP
002e b745 [1] TFR D,X
0030 e600 [3] LDAB 0,X
0032 6b40 [2] STAB 0,Y
0034 e681 [3] LDAB 1,SP
0036 52 [1] INCB
0037 1b82 [2] LEAS 2,SP
0039 e186 [3] CMPB 6,SP
003b 25e6 [3/1] BCS *-24 ;abs = 0023
251: * Data Segment Registers
252: */
253: }
254:
255: CAN0TXDLR = length; /* Set Data Length Code */
003d e686 [3] LDAB 6,SP
003f 7b0000 [3] STAB _CAN0TXDLR
256: CAN0TXTBPR = priority; /* Set Priority */
0042 e687 [3] LDAB 7,SP
0044 7b0000 [3] STAB _CAN0TXTBPR
257:
258: CAN0TFLG = txbuffer; /* Start transmission */
0047 e682 [3] LDAB 2,SP
0049 7b0000 [3] STAB _CAN0TFLG
259:
260: while ( (CAN0TFLG & txbuffer) != txbuffer); /* Wait for Transmission
004c f60000 [3] LDAB _CAN0TFLG
004f e482 [3] ANDB 2,SP
0051 e182 [3] CMPB 2,SP
0053 26f7 [3/1] BNE *-7 ;abs = 004c
261: * completion
262: */
263: return NO_ERR;
0055 c7 [1] CLRB
264: }
0056 1b83 [2] LEAS 3,SP
0058 0a [7] RTC
265:
266: /*
267: * functionName: a description of the function functionName.
268: * Another line of the description.
269: *
270: * Parameters: param1 - description
271: * param2 - description
272: *
273: * Return : description of the value returned by functionName
274: */
275: void Delay (void) {
Function: Delay
Source : E:\Freescale\code\MSCAN12_DP256\Sources\main.c
Options : -BfaGapLimitBits-1 -Env"GENPATH=E:\Freescale\code\MSCAN12_DP256;E:\Freescale\code\MSCAN12_DP256\bin;E:\Freescale\code\MSCAN12_DP256\prm;E:\Freescale\code\MSCAN12_DP256\cmd;E:\Freescale\code\MSCAN12_DP256\Sources;D:\Program Files\Freescale\CW for HC12 V4.5\lib\HC12c\lib;D:\Program Files\Freescale\CW for HC12 V4.5\lib\HC12c\src;D:\Program Files\Freescale\CW for HC12 V4.5\lib\HC12c\include" -Env"LIBPATH=D:\Program Files\Freescale\CW for HC12 V4.5\lib\HC12c\include" -EnvOBJPATH=E:\Freescale\code\MSCAN12_DP256\bin -EnvTEXTPATH=E:\Freescale\code\MSCAN12_DP256\bin -Lasm=%n.lst -Mb -ObjN=E:\Freescale\code\MSCAN12_DP256\MSCAN12_DP256_Data\P&E_ICD\ObjectCode\main.c.o -WmsgSd1106
276:
277: unsigned int counter;
278:
279: for (counter=0;counter<10000;counter++);
0000 ce0000 [2] LDX #0
0003 08 [1] INX
0004 8e2710 [2] CPX #10000
0007 25fa [3/1] BCS *-4 ;abs = 0003
280: }
0009 0a [7] RTC
281:
282: /*
283: * ModuleISR: a description of the function functionName.
284: * Another line of the description.
285: *
286: * Parameters: None
287: * MSCAN0 RECEIVE ISR
288: * DESCRIPTION:
289: * Interrupt asserted when a message has been received and shifted into
290: * the foreground buffer of the receiver FIFO.
291: *
292: * Return : None
293: */
294: #pragma CODE_SEG NON_BANKED
295:
296: void interrupt CAN0RxISR(void) {
Function: CAN0RxISR
Source : E:\Freescale\code\MSCAN12_DP256\Sources\main.c
Options : -BfaGapLimitBits-1 -Env"GENPATH=E:\Freescale\code\MSCAN12_DP256;E:\Freescale\code\MSCAN12_DP256\bin;E:\Freescale\code\MSCAN12_DP256\prm;E:\Freescale\code\MSCAN12_DP256\cmd;E:\Freescale\code\MSCAN12_DP256\Sources;D:\Program Files\Freescale\CW for HC12 V4.5\lib\HC12c\lib;D:\Program Files\Freescale\CW for HC12 V4.5\lib\HC12c\src;D:\Program Files\Freescale\CW for HC12 V4.5\lib\HC12c\include" -Env"LIBPATH=D:\Program Files\Freescale\CW for HC12 V4.5\lib\HC12c\include" -EnvOBJPATH=E:\Freescale\code\MSCAN12_DP256\bin -EnvTEXTPATH=E:\Freescale\code\MSCAN12_DP256\bin -Lasm=%n.lst -Mb -ObjN=E:\Freescale\code\MSCAN12_DP256\MSCAN12_DP256_Data\P&E_ICD\ObjectCode\main.c.o -WmsgSd1106
0000 1b96 [2] LEAS -10,SP
297: unsigned char length, index;
298: unsigned char rxdata[8];
299:
300: length = (CAN0RXDLR & 0x0F);
0002 f60000 [3] LDAB _CAN0RXDLR
0005 c40f [1] ANDB #15
0007 6b81 [2] STAB 1,SP
301: for (index=0; index<length; index++)
0009 6980 [2] CLR 0,SP
000b 2012 [3] BRA *+20 ;abs = 001f
302: rxdata[index] = *(&CAN0RXDSR0 + index); /* Get received data */
000d 87 [1] CLRA
000e b746 [1] TFR D,Y
0010 c30000 [2] ADDD #_CAN0RXDSR0
0013 1a82 [2] LEAX 2,SP
0015 b7c5 [1] EXG D,X
0017 19ee [2] LEAY D,Y
0019 e600 [3] LDAB 0,X
001b 6b40 [2] STAB 0,Y
001d 6280 [3] INC 0,SP
001f e680 [3] LDAB 0,SP
0021 e181 [3] CMPB 1,SP
0023 25e8 [3/1] BCS *-22 ;abs = 000d
303:
304: CAN0RFLG = 0x01; /* Clear RXF */
0025 c601 [1] LDAB #1
0027 7b0000 [3] STAB _CAN0RFLG
305: }
002a 1b8a [2] LEAS 10,SP
002c 0b [8] RTI
306:
307: #pragma CODE_SEG DEFAULT
308:
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -