⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main.lst

📁 CAN通信程序,在汽车电子开发中 十分有用
💻 LST
📖 第 1 页 / 共 2 页
字号:
  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 + -