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

📄 ex3_utility.lst

📁 基于摩托罗拉S12标准源程序 包括:SCIO,Timer
💻 LST
📖 第 1 页 / 共 5 页
字号:
ANSI-C/cC++ Compiler for HC12 V-5.0.24 Build 4047, Feb 17 2004

    1:  /******************************************************************************
    2:  *                                                  
    3:  *  (c) copyright Freescale Semiconductor Hong Kong Ltd. 2004
    4:  *  ALL RIGHTS RESERVED
    5:  *                                                                       
    6:  *******************************************************************************  
    7:  ** THIS  CODE IS ONLY INTENDED AS AN EXAMPLE FOR DEMONSTRATING THE FREESCALE **
    8:  ** MICROCONTROLLERS.  IT  HAS ONLY BEEN GIVEN A MIMIMUM LEVEL OF TEST. IT IS **
    9:  ** PROVIDED  'AS  SEEN'  WITH  NO  GUARANTEES  AND  NO  PROMISE  OF SUPPORT. **
   10:  *******************************************************************************  
   11:  *                                                                           
   12:  * FILE:         ex3_utility.c	          REVISION 0.2
   13:  *  
   14:  * DESCRIPTION:  Application code is placed here.
   15:  *               This module handles all tasks related to the rs232 port  
   16:  *               Program to control the SCI0 module to send and receive ASCII 
   17:  * 			        to and from PC serial port RS232 
   18:  *
   19:  * TARGET DEVICE: 		Hardware EVB912DP256 or equivalent                                                                                                                                                      
   20:  *
   21:  * COMPILER: Metrowerks            VERSION: ADS v1.2 (initial version)           
   22:  *                                 VERSION: ADS v2.0 (Demo beta version)
   23:  *                                 VERSION: ADS v3.1 (Demo version)
   24:  *																												 
   25:  * NOTES
   26:  * -----
   27:  * All modules remain at their reset addresses.                                                      
   28:  *
   29:  *
   30:  * UPDATED HISTORY:
   31:  *
   32:  * REV   YYYY.MM.DD  AUTHOR        DESCRIPTION OF CHANGE
   33:  * ---   ----------  ------        --------------------- 
   34:  * 0.0   2002.04.27  Kenny Lam     Initial version
   35:  * 0.1   2002.12.18  Kenny Lam     Demo beta version
   36:  * 0.2   2004.04.12  Kenny Lam     Demo version
   37:  *
   38:  ******************************************************************************/                                                                        
   39:  /* Freescale  is  not  obligated  to  provide  any  support, upgrades or new */
   40:  /* releases  of  the Software. Freescale may make changes to the Software at */
   41:  /* any time, without any obligation to notify or provide updated versions of */
   42:  /* the  Software  to you. Freescale expressly disclaims any warranty for the */
   43:  /* Software.  The  Software is provided as is, without warranty of any kind, */
   44:  /* either  express  or  implied,  including, without limitation, the implied */
   45:  /* warranties  of  merchantability,  fitness  for  a  particular purpose, or */
   46:  /* non-infringement.  You  assume  the entire risk arising out of the use or */
   47:  /* performance of the Software, or any systems you design using the software */
   48:  /* (if  any).  Nothing  may  be construed as a warranty or representation by */
   49:  /* Freescale  that  the  Software  or  any derivative work developed with or */
   50:  /* incorporating  the  Software  will  be  free  from  infringement  of  the */
   51:  /* intellectual property rights of third parties. In no event will Freescale */
   52:  /* be  liable,  whether in contract, tort, or otherwise, for any incidental, */
   53:  /* special,  indirect, consequential or punitive damages, including, but not */
   54:  /* limited  to,  damages  for  any loss of use, loss of time, inconvenience, */
   55:  /* commercial loss, or lost profits, savings, or revenues to the full extent */
   56:  /* such  may be disclaimed by law. The Software is not fault tolerant and is */
   57:  /* not  designed,  manufactured  or  intended by Freescale for incorporation */
   58:  /* into  products intended for use or resale in on-line control equipment in */
   59:  /* hazardous, dangerous to life or potentially life-threatening environments */
   60:  /* requiring  fail-safe  performance,  such  as  in the operation of nuclear */
   61:  /* facilities,  aircraft  navigation  or  communication systems, air traffic */
   62:  /* control,  direct  life  support machines or weapons systems, in which the */
   63:  /* failure  of  products  could  lead  directly to death, personal injury or */
   64:  /* severe  physical  or  environmental  damage  (High  Risk Activities). You */
   65:  /* specifically  represent and warrant that you will not use the Software or */
   66:  /* any  derivative  work of the Software for High Risk Activities.           */
   67:  /* Freescale  and the Freescale logos are registered trademarks of Freescale */
   68:  /* Semiconductor Inc.                                                        */ 
   69:  /*****************************************************************************/
   70:  
   71:  #include <hidef.h>
   72:  #include <math.h>
   73:  #include "const.h"
   74:  #include "ut_extern.h"
   75:  #include "DP256Port.h"
   76:  #include "GlobalVar.h"
   77:  
   78:  #ifdef BANKED
   79:  #pragma CODE_SEG CodeForcedToPPage33								 
   80:  #else
   81:  #pragma CODE_SEG DEFAULT
   82:  #endif
   83:  
   84:  /*******************************************************************
   85:  * Init SCI port 0 as baud 9600 subroutine
   86:  * Description : Initial SCI as 9600 and enable tx and rx
   87:  *			  :
   88:  * Example     : N/A  
   89:  * Input 	  : N/A
   90:  * Output	  : N/A
   91:  * Modify      : N/A
   92:  * Return      : N/A
   93:  ********************************************************************/ 
   94:  void init_SCI0 () 
   95:  {  

Function: init_SCI0
Source  : D:\Profiles\r63492.FSL\My Documents\技术资料\培训教材\HCS12\S12 Ex4 Portb ICD CW31\sources\ex3_utility.c
Options : -DNON_BANK -Env"GENPATH=D:\Profiles\r63492.FSL\My Documents\技术资料\培训教材\HCS12\S12 Ex4 Portb ICD CW31;D:\Profiles\r63492.FSL\My Documents\技术资料\培训教材\HCS12\S12 Ex4 Portb ICD CW31\bin;D:\Profiles\r63492.FSL\My Documents\技术资料\培训教材\HCS12\S12 Ex4 Portb ICD CW31\cmd;D:\Profiles\r63492.FSL\My Documents\技术资料\培训教材\HCS12\S12 Ex4 Portb ICD CW31\prm;D:\Profiles\r63492.FSL\My Documents\技术资料\培训教材\HCS12\S12 Ex4 Portb ICD CW31\sources;C:\Program Files\Metrowerks\CodeWarrior CW12_V3.1\lib\HC12c\LIB;C:\Program Files\Metrowerks\CodeWarrior CW12_V3.1\lib\HC12c\SRC;C:\Program Files\Metrowerks\CodeWarrior CW12_V3.1\lib\HC12c\INCLUDE" -Env"LIBPATH=C:\Program Files\Metrowerks\CodeWarrior CW12_V3.1\lib\HC12c\INCLUDE" -Env"OBJPATH=D:\Profiles\r63492.FSL\My Documents\技术资料\培训教材\HCS12\S12 Ex4 Portb ICD CW31\bin" -Env"TEXTPATH=D:\Profiles\r63492.FSL\My Documents\技术资料\培训教材\HCS12\S12 Ex4 Portb ICD CW31\bin" -Lasm=%n.lst -ObjN="D:\Profiles\r63492.FSL\My Documents\技术资料\培训教材\HCS12\S12 Ex4 Portb ICD CW31\S12_Ex4_Portb_ICD_CW31_Data\Flash_Application\ObjectCode\ex3_utility.c.o" -Ol0

   96:      SC0BDW=Eclock/16/9600;		//9600 buad rate	
  0000 c634         LDAB  #52
  0002 87           CLRA  
  0003 5cc8         STD   200
   97:    	SC0CR2=0xc;					//enable tx,rx
  0005 c60c         LDAB  #12
  0007 5bcb         STAB  203
   98:  }
  0009 3d           RTS   
   99:  
  100:  /*******************************************************************
  101:  * Transmit char (ASCII) subroutine 
  102:  * Description : Transmit ascii via RS232
  103:  *			  :
  104:  * Example     : N/A  
  105:  * Input 	  : data
  106:  * Output	  : single ascii to screen 
  107:  * Modify      : N/A
  108:  * Return      : N/A
  109:  ********************************************************************/ 
  110:  void tx_char0(char data)
  111:  {

Function: tx_char0
Source  : D:\Profiles\r63492.FSL\My Documents\技术资料\培训教材\HCS12\S12 Ex4 Portb ICD CW31\sources\ex3_utility.c
Options : -DNON_BANK -Env"GENPATH=D:\Profiles\r63492.FSL\My Documents\技术资料\培训教材\HCS12\S12 Ex4 Portb ICD CW31;D:\Profiles\r63492.FSL\My Documents\技术资料\培训教材\HCS12\S12 Ex4 Portb ICD CW31\bin;D:\Profiles\r63492.FSL\My Documents\技术资料\培训教材\HCS12\S12 Ex4 Portb ICD CW31\cmd;D:\Profiles\r63492.FSL\My Documents\技术资料\培训教材\HCS12\S12 Ex4 Portb ICD CW31\prm;D:\Profiles\r63492.FSL\My Documents\技术资料\培训教材\HCS12\S12 Ex4 Portb ICD CW31\sources;C:\Program Files\Metrowerks\CodeWarrior CW12_V3.1\lib\HC12c\LIB;C:\Program Files\Metrowerks\CodeWarrior CW12_V3.1\lib\HC12c\SRC;C:\Program Files\Metrowerks\CodeWarrior CW12_V3.1\lib\HC12c\INCLUDE" -Env"LIBPATH=C:\Program Files\Metrowerks\CodeWarrior CW12_V3.1\lib\HC12c\INCLUDE" -Env"OBJPATH=D:\Profiles\r63492.FSL\My Documents\技术资料\培训教材\HCS12\S12 Ex4 Portb ICD CW31\bin" -Env"TEXTPATH=D:\Profiles\r63492.FSL\My Documents\技术资料\培训教材\HCS12\S12 Ex4 Portb ICD CW31\bin" -Lasm=%n.lst -ObjN="D:\Profiles\r63492.FSL\My Documents\技术资料\培训教材\HCS12\S12 Ex4 Portb ICD CW31\S12_Ex4_Portb_ICD_CW31_Data\Flash_Application\ObjectCode\ex3_utility.c.o" -Ol0

  0000 37           PSHB  
  112:  	while ((SC0SR1&0x40)!=0x40);
  0001 4fcc40fc     BRCLR 204,#64,*+0 ;abs = 0001
  113:  	SC0DRL = data;
  0005 33           PULB  
  0006 5bcf         STAB  207
  114:  }
  0008 3d           RTS   
  115:  
  116:  /*******************************************************************
  117:  * printf0 subroutine
  118:  * Description : Transmit string via RS232
  119:  *			  :
  120:  * Example     : N/A  
  121:  * Input 	  : *str
  122:  * Output	  : ascii to screen without lf and cr at the end
  123:  * Modify      : N/A
  124:  * Return      : N/A
  125:  ********************************************************************/ 
  126:  void printf0(char *str)
  127:  {	

Function: printf0
Source  : D:\Profiles\r63492.FSL\My Documents\技术资料\培训教材\HCS12\S12 Ex4 Portb ICD CW31\sources\ex3_utility.c
Options : -DNON_BANK -Env"GENPATH=D:\Profiles\r63492.FSL\My Documents\技术资料\培训教材\HCS12\S12 Ex4 Portb ICD CW31;D:\Profiles\r63492.FSL\My Documents\技术资料\培训教材\HCS12\S12 Ex4 Portb ICD CW31\bin;D:\Profiles\r63492.FSL\My Documents\技术资料\培训教材\HCS12\S12 Ex4 Portb ICD CW31\cmd;D:\Profiles\r63492.FSL\My Documents\技术资料\培训教材\HCS12\S12 Ex4 Portb ICD CW31\prm;D:\Profiles\r63492.FSL\My Documents\技术资料\培训教材\HCS12\S12 Ex4 Portb ICD CW31\sources;C:\Program Files\Metrowerks\CodeWarrior CW12_V3.1\lib\HC12c\LIB;C:\Program Files\Metrowerks\CodeWarrior CW12_V3.1\lib\HC12c\SRC;C:\Program Files\Metrowerks\CodeWarrior CW12_V3.1\lib\HC12c\INCLUDE" -Env"LIBPATH=C:\Program Files\Metrowerks\CodeWarrior CW12_V3.1\lib\HC12c\INCLUDE" -Env"OBJPATH=D:\Profiles\r63492.FSL\My Documents\技术资料\培训教材\HCS12\S12 Ex4 Portb ICD CW31\bin" -Env"TEXTPATH=D:\Profiles\r63492.FSL\My Documents\技术资料\培训教材\HCS12\S12 Ex4 Portb ICD CW31\bin" -Lasm=%n.lst -ObjN="D:\Profiles\r63492.FSL\My Documents\技术资料\培训教材\HCS12\S12 Ex4 Portb ICD CW31\S12_Ex4_Portb_ICD_CW31_Data\Flash_Application\ObjectCode\ex3_utility.c.o" -Ol0

  0000 3b           PSHD  
  128:  	while((*str != '\r'))
  0001 2010         BRA   *+18 ;abs = 0013
  129:  	{
  130:  		tx_char0(*str);
  0003 0700         BSR   tx_char0
  131:  		if(*str++=='\n')
  0005 ee80         LDX   0,SP
  0007 e630         LDAB  1,X+
  0009 6e80         STX   0,SP
  000b c10a         CMPB  #10
  000d 2604         BNE   *+6 ;abs = 0013
  132:  		  tx_char0('\r');		
  000f c60d         LDAB  #13
  0011 0700         BSR   tx_char0
  0013 ee80         LDX   0,SP
  0015 e600         LDAB  0,X
  0017 c10d         CMPB  #13
  0019 26e8         BNE   *-22 ;abs = 0003
  133:  	}
  134:  }
  001b 3a           PULD  
  001c 3d           RTS   
  135:  
  136:  /**********************************************
  137:  * eat time subroutine
  138:  ***********************************************/
  139:  void delay1()
  140:  {	

Function: delay1
Source  : D:\Profiles\r63492.FSL\My Documents\技术资料\培训教材\HCS12\S12 Ex4 Portb ICD CW31\sources\ex3_utility.c
Options : -DNON_BANK -Env"GENPATH=D:\Profiles\r63492.FSL\My Documents\技术资料\培训教材\HCS12\S12 Ex4 Portb ICD CW31;D:\Profiles\r63492.FSL\My Documents\技术资料\培训教材\HCS12\S12 Ex4 Portb ICD CW31\bin;D:\Profiles\r63492.FSL\My Documents\技术资料\培训教材\HCS12\S12 Ex4 Portb ICD CW31\cmd;D:\Profiles\r63492.FSL\My Documents\技术资料\培训教材\HCS12\S12 Ex4 Portb ICD CW31\prm;D:\Profiles\r63492.FSL\My Documents\技术资料\培训教材\HCS12\S12 Ex4 Portb ICD CW31\sources;C:\Program Files\Metrowerks\CodeWarrior CW12_V3.1\lib\HC12c\LIB;C:\Program Files\Metrowerks\CodeWarrior CW12_V3.1\lib\HC12c\SRC;C:\Program Files\Metrowerks\CodeWarrior CW12_V3.1\lib\HC12c\INCLUDE" -Env"LIBPATH=C:\Program Files\Metrowerks\CodeWarrior CW12_V3.1\lib\HC12c\INCLUDE" -Env"OBJPATH=D:\Profiles\r63492.FSL\My Documents\技术资料\培训教材\HCS12\S12 Ex4 Portb ICD CW31\bin" -Env"TEXTPATH=D:\Profiles\r63492.FSL\My Documents\技术资料\培训教材\HCS12\S12 Ex4 Portb ICD CW31\bin" -Lasm=%n.lst -ObjN="D:\Profiles\r63492.FSL\My Documents\技术资料\培训教材\HCS12\S12 Ex4 Portb ICD CW31\S12_Ex4_Portb_ICD_CW31_Data\Flash_Application\ObjectCode\ex3_utility.c.o" -Ol0

  141:  	unsigned int data;
  142:  
  143:  	data=0xffff;
  0000 ccffff       LDD   #65535
  0003 3b           PSHD  
  144:  	while((data--)!=0);
  0004 ee80         LDX   0,SP
  0006 191f         LEAY  -1,X
  0008 6d80         STY   0,SP
  000a 0475f7       TBNE  X,*-6 ;abs = 0004
  145:  }
  000d 3a           PULD  
  000e 3d           RTS   
  146:  
  147:  /*******************************************************************
  148:  * int_div subroutine
  149:  * Description : Integer Divide Subroutine
  150:  *			  :
  151:  * Example     : N/A  
  152:  * Input 	  : Intger to be divide, Divider 
  153:  * Output	  : .quot, .mem
  154:  * Modify      : N/A
  155:  * Return      : N/A
  156:  ********************************************************************/ 
  157:  div_t int_div( int num, int denum)
  158:  { 	

Function: int_div
Source  : D:\Profiles\r63492.FSL\My Documents\技术资料\培训教材\HCS12\S12 Ex4 Portb ICD CW31\sources\ex3_utility.c
Options : -DNON_BANK -Env"GENPATH=D:\Profiles\r63492.FSL\My Documents\技术资料\培训教材\HCS12\S12 Ex4 Portb ICD CW31;D:\Profiles\r63492.FSL\My Documents\技术资料\培训教材\HCS12\S12 Ex4 Portb ICD CW31\bin;D:\Profiles\r63492.FSL\My Documents\技术资料\培训教材\HCS12\S12 Ex4 Portb ICD CW31\cmd;D:\Profiles\r63492.FSL\My Documents\技术资料\培训教材\HCS12\S12 Ex4 Portb ICD CW31\prm;D:\Profiles\r63492.FSL\My Documents\技术资料\培训教材\HCS12\S12 Ex4 Portb ICD CW31\sources;C:\Program Files\Metrowerks\CodeWarrior CW12_V3.1\lib\HC12c\LIB;C:\Program Files\Metrowerks\CodeWarrior CW12_V3.1\lib\HC12c\SRC;C:\Program Files\Metrowerks\CodeWarrior CW12_V3.1\lib\HC12c\INCLUDE" -Env"LIBPATH=C:\Program Files\Metrowerks\CodeWarrior CW12_V3.1\lib\HC12c\INCLUDE" -Env"OBJPATH=D:\Profiles\r63492.FSL\My Documents\技术资料\培训教材\HCS12\S12 Ex4 Portb ICD CW31\bin" -Env"TEXTPATH=D:\Profiles\r63492.FSL\My Documents\技术资料\培训教材\HCS12\S12 Ex4 Portb ICD CW31\bin" -Lasm=%n.lst -ObjN="D:\Profiles\r63492.FSL\My Documents\技术资料\培训教材\HCS12\S12 Ex4 Portb ICD CW31\S12_Ex4_Portb_ICD_CW31_Data\Flash_Application\ObjectCode\ex3_utility.c.o" -Ol0

  0000 3b           PSHD  
  159:  	div_t static result;
  160:    	
  161:    	result.quot = 0;  
  0001 c7           CLRB  
  0002 87           CLRA  
  0003 7c0000       STD   result
  162:      while(num >= denum)
  0006 200b         BRA   *+13 ;abs = 0013
  163:      {
  164:        num -= denum;
  0008 a380         SUBD  0,SP
  000a 6c84         STD   4,SP
  165:        result.quot++;
  000c fe0000       LDX   result
  000f 08           INX   
  0010 7e0000       STX   result
  0013 ec84         LDD   4,SP
  0015 ac80         CPD   0,SP
  0017 2cef         BGE   *-15 ;abs = 0008
  166:      }
  167:      result.rem = num;
  0019 7c0000       STD   result:2
  168:      return(result);
  001c ee86         LDX   6,SP
  001e fc0000       LDD   result
  0021 6c00         STD   0,X
  0023 fc0000       LDD   result:2
  0026 6c02         STD   2,X
  169:  }
  0028 31           PULY  
  0029 3d           RTS   
  170:  
  171:  /*******************************************************************
  172:  * Convert HEX to DEC and send out ASCII subroutine
  173:  * Description : Convert hex to dec and send out via RS232  
  174:  *             : 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -