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

📄 main.lst

📁 Freescale HCS12DP256 CAN通讯程序源代码
💻 LST
📖 第 1 页 / 共 2 页
字号:
  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 + -