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

📄 tc0counter.lst

📁 AVR单片机atmega16的定时计数器T0实现四位加减计数器
💻 LST
📖 第 1 页 / 共 2 页
字号:
   1               		.file	"TC0counter.c"
   2               		.arch atmega16
   3               	__SREG__ = 0x3f
   4               	__SP_H__ = 0x3e
   5               	__SP_L__ = 0x3d
   6               	__tmp_reg__ = 0
   7               	__zero_reg__ = 1
   8               		.global __do_copy_data
   9               		.global __do_clear_bss
  11               		.text
  12               	.Ltext0:
  53               	.global	CNT
  54               	.global	CNT
  55               		.section .bss
  58               	CNT:
  59 0000 0000      		.skip 2,0
  60               	.global	Data
  61               	.global	Data
  64               	Data:
  65 0002 0000 0000 		.skip 8,0
  65      0000 0000 
  66               	.global	Table
  67               		.data
  70               	Table:
  71 0000 3F        		.byte	63
  72 0001 06        		.byte	6
  73 0002 5B        		.byte	91
  74 0003 4F        		.byte	79
  75 0004 66        		.byte	102
  76 0005 6D        		.byte	109
  77 0006 7D        		.byte	125
  78 0007 07        		.byte	7
  79 0008 7F        		.byte	127
  80 0009 6F        		.byte	111
  81               		.text
  84               	.global	Display
  86               	Display:
   1:TC0counter.c  **** //**********基于TC0的计数器设计___TC0工作在计数方式模式***************//
   2:TC0counter.c  **** //****************WINAVR2005版本,系统时钟为8MHz**********************//
   3:TC0counter.c  **** 
   4:TC0counter.c  **** #include<avr/io.h>
   5:TC0counter.c  **** #include<avr/delay.h>
   6:TC0counter.c  **** #include<avr/interrupt.h>         
   7:TC0counter.c  **** #include<avr/signal.h>   
   8:TC0counter.c  **** 
   9:TC0counter.c  **** #define uchar unsigned char
  10:TC0counter.c  **** #define uint unsigned int
  11:TC0counter.c  **** 
  12:TC0counter.c  **** uchar Table[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
  13:TC0counter.c  **** uint Data[4]={0,0,0,0};	  //显示初始值:1234
  14:TC0counter.c  **** uint  CNT=0;               //初始计数值1234
  15:TC0counter.c  **** uchar Key_Up;                 //加计数按键标志  
  16:TC0counter.c  **** uchar Key_Down;               //减计数按键标志  
  17:TC0counter.c  **** 
  18:TC0counter.c  **** 
  19:TC0counter.c  **** void Display(uint *p)              //动态显示函数,参数p为待显示的数组名
  20:TC0counter.c  **** {
  88               	.LM1:
  89               	/* prologue: frame size=0 */
  90               	/* prologue end (size=0) */
  21:TC0counter.c  **** 	uchar i,sel=0x01;           
  92               	.LM2:
  93 0000 71E0      		ldi r23,lo8(1)
  94 0002 20EA      		ldi r18,lo8(4000)
  95 0004 3FE0      		ldi r19,hi8(4000)
  96 0006 40E0      		ldi r20,hlo8(4000)
  97 0008 50E0      		ldi r21,hhi8(4000)
  98 000a 63E0      		ldi r22,lo8(3)
  99 000c DC01      		movw r26,r24
 100               	.L13:
  22:TC0counter.c  **** 	for(i=0;i<4;i++)
  23:TC0counter.c  **** 	{
  24:TC0counter.c  **** 		PORTC=~sel;                //选通最右边的数码管
 102               	.LM3:
 103 000e 872F      		mov r24,r23
 104 0010 8095      		com r24
 105 0012 85BB      		out 53-0x20,r24
  25:TC0counter.c  **** 		PORTA=Table[p[i]];         //送字型码		
 107               	.LM4:
 108 0014 ED91      		ld r30,X+
 109 0016 FD91      		ld r31,X+
 110 0018 E050      		subi r30,lo8(-(Table))
 111 001a F040      		sbci r31,hi8(-(Table))
 112 001c 8081      		ld r24,Z
 113 001e 8BBB      		out 59-0x20,r24
 114               	.LBB2:
 115               	.LBB3:
 116               	.LBB4:
 117               	.LBB5:
 119               	.Ltext1:
   1:C:/electrotic/WinAVR/bin/../lib/gcc/avr/3.4.3/../../../../avr/include/avr/delay.h **** /* Copyright (c) 2002, Marek Michalkiewicz
   2:C:/electrotic/WinAVR/bin/../lib/gcc/avr/3.4.3/../../../../avr/include/avr/delay.h ****    Copyright (c) 2004, Joerg Wunsch
   3:C:/electrotic/WinAVR/bin/../lib/gcc/avr/3.4.3/../../../../avr/include/avr/delay.h ****    All rights reserved.
   4:C:/electrotic/WinAVR/bin/../lib/gcc/avr/3.4.3/../../../../avr/include/avr/delay.h **** 
   5:C:/electrotic/WinAVR/bin/../lib/gcc/avr/3.4.3/../../../../avr/include/avr/delay.h ****    Redistribution and use in source and binary forms, with or without
   6:C:/electrotic/WinAVR/bin/../lib/gcc/avr/3.4.3/../../../../avr/include/avr/delay.h ****    modification, are permitted provided that the following conditions are met:
   7:C:/electrotic/WinAVR/bin/../lib/gcc/avr/3.4.3/../../../../avr/include/avr/delay.h **** 
   8:C:/electrotic/WinAVR/bin/../lib/gcc/avr/3.4.3/../../../../avr/include/avr/delay.h ****    * Redistributions of source code must retain the above copyright
   9:C:/electrotic/WinAVR/bin/../lib/gcc/avr/3.4.3/../../../../avr/include/avr/delay.h ****      notice, this list of conditions and the following disclaimer.
  10:C:/electrotic/WinAVR/bin/../lib/gcc/avr/3.4.3/../../../../avr/include/avr/delay.h **** 
  11:C:/electrotic/WinAVR/bin/../lib/gcc/avr/3.4.3/../../../../avr/include/avr/delay.h ****    * Redistributions in binary form must reproduce the above copyright
  12:C:/electrotic/WinAVR/bin/../lib/gcc/avr/3.4.3/../../../../avr/include/avr/delay.h ****      notice, this list of conditions and the following disclaimer in
  13:C:/electrotic/WinAVR/bin/../lib/gcc/avr/3.4.3/../../../../avr/include/avr/delay.h ****      the documentation and/or other materials provided with the
  14:C:/electrotic/WinAVR/bin/../lib/gcc/avr/3.4.3/../../../../avr/include/avr/delay.h ****      distribution.
  15:C:/electrotic/WinAVR/bin/../lib/gcc/avr/3.4.3/../../../../avr/include/avr/delay.h **** 
  16:C:/electrotic/WinAVR/bin/../lib/gcc/avr/3.4.3/../../../../avr/include/avr/delay.h ****    * Neither the name of the copyright holders nor the names of
  17:C:/electrotic/WinAVR/bin/../lib/gcc/avr/3.4.3/../../../../avr/include/avr/delay.h ****      contributors may be used to endorse or promote products derived
  18:C:/electrotic/WinAVR/bin/../lib/gcc/avr/3.4.3/../../../../avr/include/avr/delay.h ****      from this software without specific prior written permission.
  19:C:/electrotic/WinAVR/bin/../lib/gcc/avr/3.4.3/../../../../avr/include/avr/delay.h **** 
  20:C:/electrotic/WinAVR/bin/../lib/gcc/avr/3.4.3/../../../../avr/include/avr/delay.h ****   THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
  21:C:/electrotic/WinAVR/bin/../lib/gcc/avr/3.4.3/../../../../avr/include/avr/delay.h ****   AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
  22:C:/electrotic/WinAVR/bin/../lib/gcc/avr/3.4.3/../../../../avr/include/avr/delay.h ****   IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
  23:C:/electrotic/WinAVR/bin/../lib/gcc/avr/3.4.3/../../../../avr/include/avr/delay.h ****   ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
  24:C:/electrotic/WinAVR/bin/../lib/gcc/avr/3.4.3/../../../../avr/include/avr/delay.h ****   LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
  25:C:/electrotic/WinAVR/bin/../lib/gcc/avr/3.4.3/../../../../avr/include/avr/delay.h ****   CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
  26:C:/electrotic/WinAVR/bin/../lib/gcc/avr/3.4.3/../../../../avr/include/avr/delay.h ****   SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
  27:C:/electrotic/WinAVR/bin/../lib/gcc/avr/3.4.3/../../../../avr/include/avr/delay.h ****   INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
  28:C:/electrotic/WinAVR/bin/../lib/gcc/avr/3.4.3/../../../../avr/include/avr/delay.h ****   CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
  29:C:/electrotic/WinAVR/bin/../lib/gcc/avr/3.4.3/../../../../avr/include/avr/delay.h ****   ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
  30:C:/electrotic/WinAVR/bin/../lib/gcc/avr/3.4.3/../../../../avr/include/avr/delay.h ****   POSSIBILITY OF SUCH DAMAGE. */
  31:C:/electrotic/WinAVR/bin/../lib/gcc/avr/3.4.3/../../../../avr/include/avr/delay.h **** 
  32:C:/electrotic/WinAVR/bin/../lib/gcc/avr/3.4.3/../../../../avr/include/avr/delay.h **** /* $Id: delay.h,v 1.9 2004/12/22 10:16:54 joerg_wunsch Exp $ */
  33:C:/electrotic/WinAVR/bin/../lib/gcc/avr/3.4.3/../../../../avr/include/avr/delay.h **** 
  34:C:/electrotic/WinAVR/bin/../lib/gcc/avr/3.4.3/../../../../avr/include/avr/delay.h **** /*
  35:C:/electrotic/WinAVR/bin/../lib/gcc/avr/3.4.3/../../../../avr/include/avr/delay.h ****    avr/delay.h - loops for small accurate delays
  36:C:/electrotic/WinAVR/bin/../lib/gcc/avr/3.4.3/../../../../avr/include/avr/delay.h ****  */
  37:C:/electrotic/WinAVR/bin/../lib/gcc/avr/3.4.3/../../../../avr/include/avr/delay.h **** 
  38:C:/electrotic/WinAVR/bin/../lib/gcc/avr/3.4.3/../../../../avr/include/avr/delay.h **** #ifndef _AVR_DELAY_H_
  39:C:/electrotic/WinAVR/bin/../lib/gcc/avr/3.4.3/../../../../avr/include/avr/delay.h **** #define _AVR_DELAY_H_ 1
  40:C:/electrotic/WinAVR/bin/../lib/gcc/avr/3.4.3/../../../../avr/include/avr/delay.h **** 
  41:C:/electrotic/WinAVR/bin/../lib/gcc/avr/3.4.3/../../../../avr/include/avr/delay.h **** #include <inttypes.h>
  42:C:/electrotic/WinAVR/bin/../lib/gcc/avr/3.4.3/../../../../avr/include/avr/delay.h **** 
  43:C:/electrotic/WinAVR/bin/../lib/gcc/avr/3.4.3/../../../../avr/include/avr/delay.h **** /** \defgroup avr_delay Busy-wait delay loops
  44:C:/electrotic/WinAVR/bin/../lib/gcc/avr/3.4.3/../../../../avr/include/avr/delay.h ****     \code
  45:C:/electrotic/WinAVR/bin/../lib/gcc/avr/3.4.3/../../../../avr/include/avr/delay.h ****     #define F_CPU 1000000UL  // 1 MHz
  46:C:/electrotic/WinAVR/bin/../lib/gcc/avr/3.4.3/../../../../avr/include/avr/delay.h ****     //#define F_CPU 14.7456E6
  47:C:/electrotic/WinAVR/bin/../lib/gcc/avr/3.4.3/../../../../avr/include/avr/delay.h ****     #include <avr/delay.h>
  48:C:/electrotic/WinAVR/bin/../lib/gcc/avr/3.4.3/../../../../avr/include/avr/delay.h ****     \endcode
  49:C:/electrotic/WinAVR/bin/../lib/gcc/avr/3.4.3/../../../../avr/include/avr/delay.h **** 
  50:C:/electrotic/WinAVR/bin/../lib/gcc/avr/3.4.3/../../../../avr/include/avr/delay.h ****     The functions in this header file implement simple delay loops
  51:C:/electrotic/WinAVR/bin/../lib/gcc/avr/3.4.3/../../../../avr/include/avr/delay.h ****     that perform a busy-waiting.  They are typically used to
  52:C:/electrotic/WinAVR/bin/../lib/gcc/avr/3.4.3/../../../../avr/include/avr/delay.h ****     facilitate short delays in the program execution.  They are
  53:C:/electrotic/WinAVR/bin/../lib/gcc/avr/3.4.3/../../../../avr/include/avr/delay.h ****     implemented as count-down loops with a well-known CPU cycle
  54:C:/electrotic/WinAVR/bin/../lib/gcc/avr/3.4.3/../../../../avr/include/avr/delay.h ****     count per loop iteration.  As such, no other processing can
  55:C:/electrotic/WinAVR/bin/../lib/gcc/avr/3.4.3/../../../../avr/include/avr/delay.h ****     occur simultaneously.  It should be kept in mind that the
  56:C:/electrotic/WinAVR/bin/../lib/gcc/avr/3.4.3/../../../../avr/include/avr/delay.h ****     functions described here do not disable interrupts.
  57:C:/electrotic/WinAVR/bin/../lib/gcc/avr/3.4.3/../../../../avr/include/avr/delay.h **** 
  58:C:/electrotic/WinAVR/bin/../lib/gcc/avr/3.4.3/../../../../avr/include/avr/delay.h ****     In general, for long delays, the use of hardware timers is
  59:C:/electrotic/WinAVR/bin/../lib/gcc/avr/3.4.3/../../../../avr/include/avr/delay.h ****     much preferrable, as they free the CPU, and allow for
  60:C:/electrotic/WinAVR/bin/../lib/gcc/avr/3.4.3/../../../../avr/include/avr/delay.h ****     concurrent processing of other events while the timer is
  61:C:/electrotic/WinAVR/bin/../lib/gcc/avr/3.4.3/../../../../avr/include/avr/delay.h ****     running.  However, in particular for very short delays, the
  62:C:/electrotic/WinAVR/bin/../lib/gcc/avr/3.4.3/../../../../avr/include/avr/delay.h ****     overhead of setting up a hardware timer is too much compared
  63:C:/electrotic/WinAVR/bin/../lib/gcc/avr/3.4.3/../../../../avr/include/avr/delay.h ****     to the overall delay time.
  64:C:/electrotic/WinAVR/bin/../lib/gcc/avr/3.4.3/../../../../avr/include/avr/delay.h **** 
  65:C:/electrotic/WinAVR/bin/../lib/gcc/avr/3.4.3/../../../../avr/include/avr/delay.h ****     Two inline functions are provided for the actual delay algorithms.
  66:C:/electrotic/WinAVR/bin/../lib/gcc/avr/3.4.3/../../../../avr/include/avr/delay.h **** 
  67:C:/electrotic/WinAVR/bin/../lib/gcc/avr/3.4.3/../../../../avr/include/avr/delay.h ****     Two wrapper functions allow the specification of microsecond, and
  68:C:/electrotic/WinAVR/bin/../lib/gcc/avr/3.4.3/../../../../avr/include/avr/delay.h ****     millisecond delays directly, using the application-supplied macro
  69:C:/electrotic/WinAVR/bin/../lib/gcc/avr/3.4.3/../../../../avr/include/avr/delay.h ****     F_CPU as the CPU clock frequency (in Hertz).  These functions
  70:C:/electrotic/WinAVR/bin/../lib/gcc/avr/3.4.3/../../../../avr/include/avr/delay.h ****     operate on double typed arguments, however when optimization is
  71:C:/electrotic/WinAVR/bin/../lib/gcc/avr/3.4.3/../../../../avr/include/avr/delay.h ****     turned on, the entire floating-point calculation will be done at
  72:C:/electrotic/WinAVR/bin/../lib/gcc/avr/3.4.3/../../../../avr/include/avr/delay.h ****     compile-time.
  73:C:/electrotic/WinAVR/bin/../lib/gcc/avr/3.4.3/../../../../avr/include/avr/delay.h **** */
  74:C:/electrotic/WinAVR/bin/../lib/gcc/avr/3.4.3/../../../../avr/include/avr/delay.h **** 
  75:C:/electrotic/WinAVR/bin/../lib/gcc/avr/3.4.3/../../../../avr/include/avr/delay.h **** /** \ingroup avr_delay
  76:C:/electrotic/WinAVR/bin/../lib/gcc/avr/3.4.3/../../../../avr/include/avr/delay.h **** 
  77:C:/electrotic/WinAVR/bin/../lib/gcc/avr/3.4.3/../../../../avr/include/avr/delay.h ****     Delay loop using an 8-bit counter \c __count, so up to 256
  78:C:/electrotic/WinAVR/bin/../lib/gcc/avr/3.4.3/../../../../avr/include/avr/delay.h ****     iterations are possible.  (The value 256 would have to be passed
  79:C:/electrotic/WinAVR/bin/../lib/gcc/avr/3.4.3/../../../../avr/include/avr/delay.h ****     as 0.)  The loop executes three CPU cycles per iteration, not
  80:C:/electrotic/WinAVR/bin/../lib/gcc/avr/3.4.3/../../../../avr/include/avr/delay.h ****     including the overhead the compiler needs to setup the counter
  81:C:/electrotic/WinAVR/bin/../lib/gcc/avr/3.4.3/../../../../avr/include/avr/delay.h ****     register.
  82:C:/electrotic/WinAVR/bin/../lib/gcc/avr/3.4.3/../../../../avr/include/avr/delay.h **** 
  83:C:/electrotic/WinAVR/bin/../lib/gcc/avr/3.4.3/../../../../avr/include/avr/delay.h ****     Thus, at a CPU speed of 1 MHz, delays of up to 768 microseconds
  84:C:/electrotic/WinAVR/bin/../lib/gcc/avr/3.4.3/../../../../avr/include/avr/delay.h ****     can be achieved.
  85:C:/electrotic/WinAVR/bin/../lib/gcc/avr/3.4.3/../../../../avr/include/avr/delay.h **** */
  86:C:/electrotic/WinAVR/bin/../lib/gcc/avr/3.4.3/../../../../avr/include/avr/delay.h **** static __inline__ void
  87:C:/electrotic/WinAVR/bin/../lib/gcc/avr/3.4.3/../../../../avr/include/avr/delay.h **** _delay_loop_1(uint8_t __count)
  88:C:/electrotic/WinAVR/bin/../lib/gcc/avr/3.4.3/../../../../avr/include/avr/delay.h **** {
  89:C:/electrotic/WinAVR/bin/../lib/gcc/avr/3.4.3/../../../../avr/include/avr/delay.h **** 	__asm__ volatile (
  90:C:/electrotic/WinAVR/bin/../lib/gcc/avr/3.4.3/../../../../avr/include/avr/delay.h **** 		"1: dec %0" "\n\t"
  91:C:/electrotic/WinAVR/bin/../lib/gcc/avr/3.4.3/../../../../avr/include/avr/delay.h **** 		"brne 1b"
  92:C:/electrotic/WinAVR/bin/../lib/gcc/avr/3.4.3/../../../../avr/include/avr/delay.h **** 		: "=r" (__count)
  93:C:/electrotic/WinAVR/bin/../lib/gcc/avr/3.4.3/../../../../avr/include/avr/delay.h **** 		: "0" (__count)
  94:C:/electrotic/WinAVR/bin/../lib/gcc/avr/3.4.3/../../../../avr/include/avr/delay.h **** 	);
  95:C:/electrotic/WinAVR/bin/../lib/gcc/avr/3.4.3/../../../../avr/include/avr/delay.h **** }
  96:C:/electrotic/WinAVR/bin/../lib/gcc/avr/3.4.3/../../../../avr/include/avr/delay.h **** 
  97:C:/electrotic/WinAVR/bin/../lib/gcc/avr/3.4.3/../../../../avr/include/avr/delay.h **** /** \ingroup avr_delay
  98:C:/electrotic/WinAVR/bin/../lib/gcc/avr/3.4.3/../../../../avr/include/avr/delay.h **** 
  99:C:/electrotic/WinAVR/bin/../lib/gcc/avr/3.4.3/../../../../avr/include/avr/delay.h ****     Delay loop using a 16-bit counter \c __count, so up to 65536
 100:C:/electrotic/WinAVR/bin/../lib/gcc/avr/3.4.3/../../../../avr/include/avr/delay.h ****     iterations are possible.  (The value 65536 would have to be
 101:C:/electrotic/WinAVR/bin/../lib/gcc/avr/3.4.3/../../../../avr/include/avr/delay.h ****     passed as 0.)  The loop executes four CPU cycles per iteration,
 102:C:/electrotic/WinAVR/bin/../lib/gcc/avr/3.4.3/../../../../avr/include/avr/delay.h ****     not including the overhead the compiler requires to setup the
 103:C:/electrotic/WinAVR/bin/../lib/gcc/avr/3.4.3/../../../../avr/include/avr/delay.h ****     counter register pair.
 104:C:/electrotic/WinAVR/bin/../lib/gcc/avr/3.4.3/../../../../avr/include/avr/delay.h **** 
 105:C:/electrotic/WinAVR/bin/../lib/gcc/avr/3.4.3/../../../../avr/include/avr/delay.h ****     Thus, at a CPU speed of 1 MHz, delays of up to about 262.1
 106:C:/electrotic/WinAVR/bin/../lib/gcc/avr/3.4.3/../../../../avr/include/avr/delay.h ****     milliseconds can be achieved.
 107:C:/electrotic/WinAVR/bin/../lib/gcc/avr/3.4.3/../../../../avr/include/avr/delay.h ****  */
 108:C:/electrotic/WinAVR/bin/../lib/gcc/avr/3.4.3/../../../../avr/include/avr/delay.h **** static __inline__ void
 109:C:/electrotic/WinAVR/bin/../lib/gcc/avr/3.4.3/../../../../avr/include/avr/delay.h **** _delay_loop_2(uint16_t __count)
 110:C:/electrotic/WinAVR/bin/../lib/gcc/avr/3.4.3/../../../../avr/include/avr/delay.h **** {
 111:C:/electrotic/WinAVR/bin/../lib/gcc/avr/3.4.3/../../../../avr/include/avr/delay.h **** 	__asm__ volatile (
 121               	.LM5:
 122 0020 C901      		movw r24,r18
 123               	/* #APP */
 124 0022 0197      		1: sbiw r24,1
 125 0024 F1F7      		brne 1b
 126               	/* #NOAPP */
 127               	.LBE5:
 128               	.LBE4:
 129               	.LBE3:
 130               	.LBE2:
 132               	.Ltext2:
  26:TC0counter.c  **** 		_delay_ms(2);              //显示延时       
  27:TC0counter.c  **** 		sel=sel<<1;                //移位以显示前一位
 134               	.LM6:
 135 0026 770F      		lsl r23
 137               	.LM7:
 138 0028 6150      		subi r22,lo8(-(-1))
 139 002a 67FF      		sbrs r22,7
 140 002c F0CF      		rjmp .L13
 141               	/* epilogue: frame size=0 */
 142 002e 0895      		ret
 143               	/* epilogue end (size=1) */
 144               	/* function Display size 26 (25) */
 153               	.Lscope0:
 157               	.global	Process
 159               	Process:
  28:TC0counter.c  **** 	}
  29:TC0counter.c  **** }
  30:TC0counter.c  **** 
  31:TC0counter.c  **** 
  32:TC0counter.c  **** //******************************计数值处理函数******************************
  33:TC0counter.c  **** //功能:此函数用于将计数值拆分为BCD码的千,百,十,一数据,用于查表显示//
  34:TC0counter.c  **** //参数说明:参数i:计数值;参数p:处理数据存放的数组名//
  35:TC0counter.c  **** 
  36:TC0counter.c  **** 
  37:TC0counter.c  **** void Process(uint i,uint *p) 
  38:TC0counter.c  **** {
 161               	.LM8:
 162               	/* prologue: frame size=0 */
 163 0030 0F93      		push r16
 164 0032 1F93      		push r17
 165 0034 CF93      		push r28
 166 0036 DF93      		push r29
 167               	/* prologue end (size=4) */
 168 0038 FC01      		movw r30,r24
 169 003a 8B01      		movw r16,r22
  39:TC0counter.c  **** 	p[0]=i/1000;
 171               	.LM9:

⌨️ 快捷键说明

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