📄 main.lst
字号:
179: * |||_______\_ TSEG2 = 3
180: * ||________/
181: * |_________ One sample per bit
182: */
183:
184: CAN0IDAC = 0x10; /* Set four 16-bit Filters
0019 c610 LDAB #16
001b 7b0000 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
001e 58 ASLB
001f 7b0000 STAB _CAN0IDAR0
199: CAN0IDMR0 = MASK_CODE_ST_ID_HIGH; //| \__ Accepts Standard Data Frame Msg
0022 790000 CLR _CAN0IDMR0
200: CAN0IDAR1 = ACC_CODE_ID100_LOW; //| / with ID 0x100
0025 790000 CLR _CAN0IDAR1
201: CAN0IDMR1 = MASK_CODE_ST_ID_LOW; //|/
0028 c607 LDAB #7
002a 7b0000 STAB _CAN0IDMR1
202:
203: CAN0IDAC = 0x10; /* Set four 16-bit Filters */
002d c610 LDAB #16
002f 7b0000 STAB _CAN0IDAC
204:
205: CAN0IDAR2 = 0x00; //|\ 16 bit Filter 1
0032 790000 CLR _CAN0IDAR2
206: CAN0IDMR2 = MASK_CODE_ST_ID_HIGH; //| \__ Accepts Standard Data Frame Msg
0035 790000 CLR _CAN0IDMR2
207: CAN0IDAR3 = 0x00; //| / with ID 0x000
0038 790000 CLR _CAN0IDAR3
208: CAN0IDMR3 = MASK_CODE_ST_ID_LOW; //|/
003b c607 LDAB #7
003d 7b0000 STAB _CAN0IDMR3
209:
210: CAN0IDAR4 = 0x00; //|\ 16 bit Filter 2
0040 790000 CLR _CAN0IDAR4
211: CAN0IDMR4 = MASK_CODE_ST_ID_HIGH; //| \__ Accepts Standard Data Frame Msg
0043 790000 CLR _CAN0IDMR4
212: CAN0IDAR5 = 0x00; //| / with ID 0x000
0046 790000 CLR _CAN0IDAR5
213: CAN0IDMR5 = MASK_CODE_ST_ID_LOW; //|/
0049 7b0000 STAB _CAN0IDMR5
214:
215: CAN0IDAR6 = 0x00; //|\ 16 bit Filter 3
004c 790000 CLR _CAN0IDAR6
216: CAN0IDMR6 = MASK_CODE_ST_ID_HIGH; //| \__ Accepts Standard Data Frame Msg
004f 790000 CLR _CAN0IDMR6
217: CAN0IDAR7 = 0x00; //| / with ID 0x000
0052 790000 CLR _CAN0IDAR7
218: CAN0IDMR7 = MASK_CODE_ST_ID_LOW; //|/
0055 7b0000 STAB _CAN0IDMR7
219:
220: CAN0CTL0 = 0x00; /* Exit Initialization Mode Request */
0058 790000 CLR _CAN0CTL0
221: while ((CAN0CTL1&0x01) != 0){}; /* Wait for Normal Mode */
005b 1e000001fb BRSET _CAN0CTL1,#1,*+0 ;abs = 005b
222:
223: }
0060 0a 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 : D:\RTAC\Willy Note\HCS12 MSCAN\MSCAN12_DP256\MSCAN12_DP256\Sources\main.c
Options : -Env"GENPATH=D:\RTAC\Willy Note\HCS12 MSCAN\MSCAN12_DP256\MSCAN12_DP256;D:\RTAC\Willy Note\HCS12 MSCAN\MSCAN12_DP256\MSCAN12_DP256\bin;D:\RTAC\Willy Note\HCS12 MSCAN\MSCAN12_DP256\MSCAN12_DP256\prm;D:\RTAC\Willy Note\HCS12 MSCAN\MSCAN12_DP256\MSCAN12_DP256\cmd;D:\RTAC\Willy Note\HCS12 MSCAN\MSCAN12_DP256\MSCAN12_DP256\Sources;D:\Metrowerks\CodeWarrior CW12_V3.1\lib\HC12c\lib;D:\Metrowerks\CodeWarrior CW12_V3.1\lib\HC12c\src;D:\Metrowerks\CodeWarrior CW12_V3.1\lib\HC12c\include" -Env"LIBPATH=D:\Metrowerks\CodeWarrior CW12_V3.1\lib\HC12c\include" -Env"OBJPATH=D:\RTAC\Willy Note\HCS12 MSCAN\MSCAN12_DP256\MSCAN12_DP256\bin" -Env"TEXTPATH=D:\RTAC\Willy Note\HCS12 MSCAN\MSCAN12_DP256\MSCAN12_DP256\bin" -Lasm=%n.lst -Mb -ObjN="D:\RTAC\Willy Note\HCS12 MSCAN\MSCAN12_DP256\MSCAN12_DP256\MSCAN12_DP256_Data\P&E_ICD\ObjectCode\main.c.o" -WmsgSd1106
0000 6cac STD 4,-SP
236:
237: unsigned char index;
238: unsigned char txbuffer = {0};
239:
240: if (!CAN0TFLG) /* Is Transmit Buffer full?? */
0002 f60000 LDAB _CAN0TFLG
0005 2604 BNE *+6 ;abs = 000b
241: return ERR_BUFFER_FULL;
0007 c680 LDAB #128
0009 204a BRA *+76 ;abs = 0055
242:
243: CAN0TBSEL = CAN0TFLG; /* Select lowest empty buffer */
000b f60000 LDAB _CAN0TFLG
000e 7b0000 STAB _CAN0TBSEL
244: txbuffer = CAN0TBSEL; /* Backup selected buffer */
0011 f60000 LDAB _CAN0TBSEL
0014 6b83 STAB 3,SP
245:
246: /* Load Id to IDR Registers */
247: *((unsigned long *) ((unsigned long)(&CAN0TXIDR0)))= id;
0016 ec8b LDD 11,SP
0018 7c0000 STD _CAN0TXIDR0:2
001b ec89 LDD 9,SP
001d 7c0000 STD _CAN0TXIDR0
248:
249: for (index=0;index<length;index++) {
0020 6982 CLR 2,SP
0022 2012 BRA *+20 ;abs = 0036
250: *(&CAN0TXDSR0 + index) = txdata[index]; /* Load data to Tx buffer
0024 87 CLRA
0025 3b PSHD
0026 c30000 ADDD #_CAN0TXDSR0
0029 b746 TFR D,Y
002b 3a PULD
002c e380 ADDD 0,SP
002e b745 TFR D,X
0030 e600 LDAB 0,X
0032 6b40 STAB 0,Y
0034 6282 INC 2,SP
0036 e682 LDAB 2,SP
0038 e187 CMPB 7,SP
003a 25e8 BCS *-22 ;abs = 0024
251: * Data Segment Registers
252: */
253: }
254:
255: CAN0TXDLR = length; /* Set Data Length Code */
003c e687 LDAB 7,SP
003e 7b0000 STAB _CAN0TXDLR
256: CAN0TXTBPR = priority; /* Set Priority */
0041 e688 LDAB 8,SP
0043 7b0000 STAB _CAN0TXTBPR
257:
258: CAN0TFLG = txbuffer; /* Start transmission */
0046 e683 LDAB 3,SP
0048 7b0000 STAB _CAN0TFLG
259:
260: while ( (CAN0TFLG & txbuffer) != txbuffer); /* Wait for Transmission
004b f60000 LDAB _CAN0TFLG
004e e483 ANDB 3,SP
0050 e183 CMPB 3,SP
0052 26f7 BNE *-7 ;abs = 004b
261: * completion
262: */
263: return NO_ERR;
0054 c7 CLRB
264: }
0055 1b84 LEAS 4,SP
0057 0a 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 : D:\RTAC\Willy Note\HCS12 MSCAN\MSCAN12_DP256\MSCAN12_DP256\Sources\main.c
Options : -Env"GENPATH=D:\RTAC\Willy Note\HCS12 MSCAN\MSCAN12_DP256\MSCAN12_DP256;D:\RTAC\Willy Note\HCS12 MSCAN\MSCAN12_DP256\MSCAN12_DP256\bin;D:\RTAC\Willy Note\HCS12 MSCAN\MSCAN12_DP256\MSCAN12_DP256\prm;D:\RTAC\Willy Note\HCS12 MSCAN\MSCAN12_DP256\MSCAN12_DP256\cmd;D:\RTAC\Willy Note\HCS12 MSCAN\MSCAN12_DP256\MSCAN12_DP256\Sources;D:\Metrowerks\CodeWarrior CW12_V3.1\lib\HC12c\lib;D:\Metrowerks\CodeWarrior CW12_V3.1\lib\HC12c\src;D:\Metrowerks\CodeWarrior CW12_V3.1\lib\HC12c\include" -Env"LIBPATH=D:\Metrowerks\CodeWarrior CW12_V3.1\lib\HC12c\include" -Env"OBJPATH=D:\RTAC\Willy Note\HCS12 MSCAN\MSCAN12_DP256\MSCAN12_DP256\bin" -Env"TEXTPATH=D:\RTAC\Willy Note\HCS12 MSCAN\MSCAN12_DP256\MSCAN12_DP256\bin" -Lasm=%n.lst -Mb -ObjN="D:\RTAC\Willy Note\HCS12 MSCAN\MSCAN12_DP256\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 LDX #0
0003 08 INX
0004 8e2710 CPX #10000
0007 25fa BCS *-4 ;abs = 0003
280: }
0009 0a 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 : D:\RTAC\Willy Note\HCS12 MSCAN\MSCAN12_DP256\MSCAN12_DP256\Sources\main.c
Options : -Env"GENPATH=D:\RTAC\Willy Note\HCS12 MSCAN\MSCAN12_DP256\MSCAN12_DP256;D:\RTAC\Willy Note\HCS12 MSCAN\MSCAN12_DP256\MSCAN12_DP256\bin;D:\RTAC\Willy Note\HCS12 MSCAN\MSCAN12_DP256\MSCAN12_DP256\prm;D:\RTAC\Willy Note\HCS12 MSCAN\MSCAN12_DP256\MSCAN12_DP256\cmd;D:\RTAC\Willy Note\HCS12 MSCAN\MSCAN12_DP256\MSCAN12_DP256\Sources;D:\Metrowerks\CodeWarrior CW12_V3.1\lib\HC12c\lib;D:\Metrowerks\CodeWarrior CW12_V3.1\lib\HC12c\src;D:\Metrowerks\CodeWarrior CW12_V3.1\lib\HC12c\include" -Env"LIBPATH=D:\Metrowerks\CodeWarrior CW12_V3.1\lib\HC12c\include" -Env"OBJPATH=D:\RTAC\Willy Note\HCS12 MSCAN\MSCAN12_DP256\MSCAN12_DP256\bin" -Env"TEXTPATH=D:\RTAC\Willy Note\HCS12 MSCAN\MSCAN12_DP256\MSCAN12_DP256\bin" -Lasm=%n.lst -Mb -ObjN="D:\RTAC\Willy Note\HCS12 MSCAN\MSCAN12_DP256\MSCAN12_DP256\MSCAN12_DP256_Data\P&E_ICD\ObjectCode\main.c.o" -WmsgSd1106
0000 1b96 LEAS -10,SP
297: unsigned char length, index;
298: unsigned char rxdata[8];
299:
300: length = (CAN0RXDLR & 0x0F);
0002 f60000 LDAB _CAN0RXDLR
0005 c40f ANDB #15
0007 6b81 STAB 1,SP
301: for (index=0; index<length; index++)
0009 6980 CLR 0,SP
000b 2012 BRA *+20 ;abs = 001f
302: rxdata[index] = *(&CAN0RXDSR0 + index); /* Get received data */
000d 87 CLRA
000e b746 TFR D,Y
0010 c30000 ADDD #_CAN0RXDSR0
0013 1a82 LEAX 2,SP
0015 b7c5 EXG D,X
0017 19ee LEAY D,Y
0019 e600 LDAB 0,X
001b 6b40 STAB 0,Y
001d 6280 INC 0,SP
001f e680 LDAB 0,SP
0021 e181 CMPB 1,SP
0023 25e8 BCS *-22 ;abs = 000d
303:
304: CAN0RFLG = 0x01; /* Clear RXF */
0025 c601 LDAB #1
0027 7b0000 STAB _CAN0RFLG
305: }
002a 1b8a LEAS 10,SP
002c 0b RTI
306:
307: #pragma CODE_SEG DEFAULT
308:
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -