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

📄 calibrate.lst

📁 cs5460a做功率表用 cs5460a做功率表用 cs5460a做功率表
💻 LST
📖 第 1 页 / 共 4 页
字号:
  38:C:/WinAVR/avr/include/util/delay.h **** 
  39:C:/WinAVR/avr/include/util/delay.h **** /** \defgroup util_delay <util/delay.h>: Busy-wait delay loops
  40:C:/WinAVR/avr/include/util/delay.h ****     \code
  41:C:/WinAVR/avr/include/util/delay.h ****     #define F_CPU 1000000UL  // 1 MHz
  42:C:/WinAVR/avr/include/util/delay.h ****     //#define F_CPU 14.7456E6
  43:C:/WinAVR/avr/include/util/delay.h ****     #include <util/delay.h>
  44:C:/WinAVR/avr/include/util/delay.h ****     \endcode
  45:C:/WinAVR/avr/include/util/delay.h **** 
  46:C:/WinAVR/avr/include/util/delay.h ****     \note As an alternative method, it is possible to pass the
  47:C:/WinAVR/avr/include/util/delay.h ****     F_CPU macro down to the compiler from the Makefile.
  48:C:/WinAVR/avr/include/util/delay.h ****     Obviously, in that case, no \c \#define statement should be
  49:C:/WinAVR/avr/include/util/delay.h ****     used.
  50:C:/WinAVR/avr/include/util/delay.h **** 
  51:C:/WinAVR/avr/include/util/delay.h ****     The functions in this header file implement simple delay loops
  52:C:/WinAVR/avr/include/util/delay.h ****     that perform a busy-waiting.  They are typically used to
  53:C:/WinAVR/avr/include/util/delay.h ****     facilitate short delays in the program execution.  They are
  54:C:/WinAVR/avr/include/util/delay.h ****     implemented as count-down loops with a well-known CPU cycle
  55:C:/WinAVR/avr/include/util/delay.h ****     count per loop iteration.  As such, no other processing can
  56:C:/WinAVR/avr/include/util/delay.h ****     occur simultaneously.  It should be kept in mind that the
  57:C:/WinAVR/avr/include/util/delay.h ****     functions described here do not disable interrupts.
  58:C:/WinAVR/avr/include/util/delay.h **** 
  59:C:/WinAVR/avr/include/util/delay.h ****     In general, for long delays, the use of hardware timers is
  60:C:/WinAVR/avr/include/util/delay.h ****     much preferrable, as they free the CPU, and allow for
  61:C:/WinAVR/avr/include/util/delay.h ****     concurrent processing of other events while the timer is
  62:C:/WinAVR/avr/include/util/delay.h ****     running.  However, in particular for very short delays, the
  63:C:/WinAVR/avr/include/util/delay.h ****     overhead of setting up a hardware timer is too much compared
  64:C:/WinAVR/avr/include/util/delay.h ****     to the overall delay time.
  65:C:/WinAVR/avr/include/util/delay.h **** 
  66:C:/WinAVR/avr/include/util/delay.h ****     Two inline functions are provided for the actual delay algorithms.
  67:C:/WinAVR/avr/include/util/delay.h **** 
  68:C:/WinAVR/avr/include/util/delay.h ****     Two wrapper functions allow the specification of microsecond, and
  69:C:/WinAVR/avr/include/util/delay.h ****     millisecond delays directly, using the application-supplied macro
  70:C:/WinAVR/avr/include/util/delay.h ****     F_CPU as the CPU clock frequency (in Hertz).  These functions
  71:C:/WinAVR/avr/include/util/delay.h ****     operate on double typed arguments, however when optimization is
  72:C:/WinAVR/avr/include/util/delay.h ****     turned on, the entire floating-point calculation will be done at
  73:C:/WinAVR/avr/include/util/delay.h ****     compile-time.
  74:C:/WinAVR/avr/include/util/delay.h **** 
  75:C:/WinAVR/avr/include/util/delay.h ****     \note When using _delay_us() and _delay_ms(), the expressions
  76:C:/WinAVR/avr/include/util/delay.h ****     passed as arguments to these functions shall be compile-time
  77:C:/WinAVR/avr/include/util/delay.h ****     constants, otherwise the floating-point calculations to setup the
  78:C:/WinAVR/avr/include/util/delay.h ****     loops will be done at run-time, thereby drastically increasing
  79:C:/WinAVR/avr/include/util/delay.h ****     both the resulting code size, as well as the time required to
  80:C:/WinAVR/avr/include/util/delay.h ****     setup the loops.
  81:C:/WinAVR/avr/include/util/delay.h **** */
  82:C:/WinAVR/avr/include/util/delay.h **** 
  83:C:/WinAVR/avr/include/util/delay.h **** #if !defined(__DOXYGEN__)
  84:C:/WinAVR/avr/include/util/delay.h **** static inline void _delay_loop_1(uint8_t __count) __attribute__((always_inline));
  85:C:/WinAVR/avr/include/util/delay.h **** static inline void _delay_loop_2(uint16_t __count) __attribute__((always_inline));
  86:C:/WinAVR/avr/include/util/delay.h **** static inline void _delay_us(double __us) __attribute__((always_inline));
  87:C:/WinAVR/avr/include/util/delay.h **** static inline void _delay_ms(double __ms) __attribute__((always_inline));
  88:C:/WinAVR/avr/include/util/delay.h **** #endif
  89:C:/WinAVR/avr/include/util/delay.h **** 
  90:C:/WinAVR/avr/include/util/delay.h **** /** \ingroup util_delay
  91:C:/WinAVR/avr/include/util/delay.h **** 
  92:C:/WinAVR/avr/include/util/delay.h ****     Delay loop using an 8-bit counter \c __count, so up to 256
  93:C:/WinAVR/avr/include/util/delay.h ****     iterations are possible.  (The value 256 would have to be passed
  94:C:/WinAVR/avr/include/util/delay.h ****     as 0.)  The loop executes three CPU cycles per iteration, not
  95:C:/WinAVR/avr/include/util/delay.h ****     including the overhead the compiler needs to setup the counter
  96:C:/WinAVR/avr/include/util/delay.h ****     register.
  97:C:/WinAVR/avr/include/util/delay.h **** 
  98:C:/WinAVR/avr/include/util/delay.h ****     Thus, at a CPU speed of 1 MHz, delays of up to 768 microseconds
  99:C:/WinAVR/avr/include/util/delay.h ****     can be achieved.
 100:C:/WinAVR/avr/include/util/delay.h **** */
 101:C:/WinAVR/avr/include/util/delay.h **** void
 102:C:/WinAVR/avr/include/util/delay.h **** _delay_loop_1(uint8_t __count)
 103:C:/WinAVR/avr/include/util/delay.h **** {
 104:C:/WinAVR/avr/include/util/delay.h **** 	__asm__ volatile (
 105:C:/WinAVR/avr/include/util/delay.h **** 		"1: dec %0" "\n\t"
 106:C:/WinAVR/avr/include/util/delay.h **** 		"brne 1b"
 107:C:/WinAVR/avr/include/util/delay.h **** 		: "=r" (__count)
 108:C:/WinAVR/avr/include/util/delay.h **** 		: "0" (__count)
 109:C:/WinAVR/avr/include/util/delay.h **** 	);
 110:C:/WinAVR/avr/include/util/delay.h **** }
 111:C:/WinAVR/avr/include/util/delay.h **** 
 112:C:/WinAVR/avr/include/util/delay.h **** /** \ingroup util_delay
 113:C:/WinAVR/avr/include/util/delay.h **** 
 114:C:/WinAVR/avr/include/util/delay.h ****     Delay loop using a 16-bit counter \c __count, so up to 65536
 115:C:/WinAVR/avr/include/util/delay.h ****     iterations are possible.  (The value 65536 would have to be
 116:C:/WinAVR/avr/include/util/delay.h ****     passed as 0.)  The loop executes four CPU cycles per iteration,
 117:C:/WinAVR/avr/include/util/delay.h ****     not including the overhead the compiler requires to setup the
 118:C:/WinAVR/avr/include/util/delay.h ****     counter register pair.
 119:C:/WinAVR/avr/include/util/delay.h **** 
 120:C:/WinAVR/avr/include/util/delay.h ****     Thus, at a CPU speed of 1 MHz, delays of up to about 262.1
 121:C:/WinAVR/avr/include/util/delay.h ****     milliseconds can be achieved.
 122:C:/WinAVR/avr/include/util/delay.h ****  */
 123:C:/WinAVR/avr/include/util/delay.h **** void
 124:C:/WinAVR/avr/include/util/delay.h **** _delay_loop_2(uint16_t __count)
 125:C:/WinAVR/avr/include/util/delay.h **** {
 126:C:/WinAVR/avr/include/util/delay.h **** 	__asm__ volatile (
 127:C:/WinAVR/avr/include/util/delay.h **** 		"1: sbiw %0,1" "\n\t"
 128:C:/WinAVR/avr/include/util/delay.h **** 		"brne 1b"
 129:C:/WinAVR/avr/include/util/delay.h **** 		: "=w" (__count)
 130:C:/WinAVR/avr/include/util/delay.h **** 		: "0" (__count)
 131:C:/WinAVR/avr/include/util/delay.h **** 	);
 132:C:/WinAVR/avr/include/util/delay.h **** }
 133:C:/WinAVR/avr/include/util/delay.h **** 
 134:C:/WinAVR/avr/include/util/delay.h **** #ifndef F_CPU
 135:C:/WinAVR/avr/include/util/delay.h **** /* prevent compiler error by supplying a default */
 136:C:/WinAVR/avr/include/util/delay.h **** # warning "F_CPU not defined for <util/delay.h>"
 137:C:/WinAVR/avr/include/util/delay.h **** # define F_CPU 1000000UL
 138:C:/WinAVR/avr/include/util/delay.h **** #endif
 139:C:/WinAVR/avr/include/util/delay.h **** 
 140:C:/WinAVR/avr/include/util/delay.h **** /**
 141:C:/WinAVR/avr/include/util/delay.h ****    \ingroup util_delay
 142:C:/WinAVR/avr/include/util/delay.h **** 
 143:C:/WinAVR/avr/include/util/delay.h ****    Perform a delay of \c __us microseconds, using _delay_loop_1().
 144:C:/WinAVR/avr/include/util/delay.h **** 
 145:C:/WinAVR/avr/include/util/delay.h ****    The macro F_CPU is supposed to be defined to a
 146:C:/WinAVR/avr/include/util/delay.h ****    constant defining the CPU clock frequency (in Hertz).
 147:C:/WinAVR/avr/include/util/delay.h **** 
 148:C:/WinAVR/avr/include/util/delay.h ****    The maximal possible delay is 768 us / F_CPU in MHz.
 149:C:/WinAVR/avr/include/util/delay.h ****  */
 150:C:/WinAVR/avr/include/util/delay.h **** void
 151:C:/WinAVR/avr/include/util/delay.h **** _delay_us(double __us)
 152:C:/WinAVR/avr/include/util/delay.h **** {
 153:C:/WinAVR/avr/include/util/delay.h **** 	uint8_t __ticks;
 154:C:/WinAVR/avr/include/util/delay.h **** 	double __tmp = ((F_CPU) / 3e6) * __us;
 155:C:/WinAVR/avr/include/util/delay.h **** 	if (__tmp < 1.0)
 156:C:/WinAVR/avr/include/util/delay.h **** 		__ticks = 1;
 157:C:/WinAVR/avr/include/util/delay.h **** 	else if (__tmp > 255)
 158:C:/WinAVR/avr/include/util/delay.h **** 		__ticks = 0;	/* i.e. 256 */
 159:C:/WinAVR/avr/include/util/delay.h **** 	else
 160:C:/WinAVR/avr/include/util/delay.h **** 		__ticks = (uint8_t)__tmp;
 161:C:/WinAVR/avr/include/util/delay.h **** 	_delay_loop_1(__ticks);
 162:C:/WinAVR/avr/include/util/delay.h **** }
 163:C:/WinAVR/avr/include/util/delay.h **** 
 164:C:/WinAVR/avr/include/util/delay.h **** 
 165:C:/WinAVR/avr/include/util/delay.h **** /**
 166:C:/WinAVR/avr/include/util/delay.h ****    \ingroup util_delay
 167:C:/WinAVR/avr/include/util/delay.h **** 
 168:C:/WinAVR/avr/include/util/delay.h ****    Perform a delay of \c __ms milliseconds, using _delay_loop_2().
 169:C:/WinAVR/avr/include/util/delay.h **** 
 170:C:/WinAVR/avr/include/util/delay.h ****    The macro F_CPU is supposed to be defined to a
 171:C:/WinAVR/avr/include/util/delay.h ****    constant defining the CPU clock frequency (in Hertz).
 172:C:/WinAVR/avr/include/util/delay.h **** 
 173:C:/WinAVR/avr/include/util/delay.h ****    The maximal possible delay is 262.14 ms / F_CPU in MHz.
 174:C:/WinAVR/avr/include/util/delay.h ****  */
 175:C:/WinAVR/avr/include/util/delay.h **** void
 176:C:/WinAVR/avr/include/util/delay.h **** _delay_ms(double __ms)
 177:C:/WinAVR/avr/include/util/delay.h **** {
 178:C:/WinAVR/avr/include/util/delay.h **** 	uint16_t __ticks;
 179:C:/WinAVR/avr/include/util/delay.h **** 	double __tmp = ((F_CPU) / 4e3) * __ms;
 180:C:/WinAVR/avr/include/util/delay.h **** 	if (__tmp < 1.0)
 181:C:/WinAVR/avr/include/util/delay.h **** 		__ticks = 1;
 182:C:/WinAVR/avr/include/util/delay.h **** 	else if (__tmp > 65535)
 183:C:/WinAVR/avr/include/util/delay.h **** 		__ticks = 0;	/* i.e. 65536 */
 184:C:/WinAVR/avr/include/util/delay.h **** 	else
 185:C:/WinAVR/avr/include/util/delay.h **** 		__ticks = (uint16_t)__tmp;
 124               	.LM4:
 125 0006 80E0      		ldi r24,lo8(18432)
 126 0008 98E4      		ldi r25,hi8(18432)
 127               	.LBB4:
 128               	.LBB5:
 130               	.LM5:
 131               	/* #APP */
 132 000a 0197      		1: sbiw r24,1
 133 000c F1F7      		brne 1b
 134               	/* #NOAPP */
 135               	.LBE5:
 136               	.LBE4:
 137               	.LBE3:
 138               	.LBE2:
 140               	.Ltext2:
 242:driver/Calibrate.c ****                      {
 243:driver/Calibrate.c ****                         _delay_ms(10);
 244:driver/Calibrate.c ****                         if (!SET_KEY)
 142               	.LM6:
 143 000e B599      		sbic 54-0x20,5
 144 0010 F7CF      		rjmp .L20
 145               	.L14:
 245:driver/Calibrate.c ****                              { 
 246:driver/Calibrate.c **** 							    while (1){
 247:driver/Calibrate.c ****                                             if (SET_KEY)
 147               	.LM7:
 148 0012 B599      		sbic 54-0x20,5
 149 0014 02C0      		rjmp .L1
 248:driver/Calibrate.c ****                                             return;
 249:driver/Calibrate.c ****                                             wdt_reset();
 151               	.LM8:
 152               	/* #APP */
 153 0016 A895      		wdr
 154               	/* #NOAPP */
 155 0018 FCCF      		rjmp .L14
 156               	.L1:
 157 001a 0895      		ret
 158               	/* epilogue: frame size=0 */
 159               	/* epilogue: noreturn */
 160               	/* epilogue end (size=0) */
 161               	/* function SetKey size 18 (18) */
 166               	.Lscope0:
 167               		.data
 168               	.LC0:
 169 0000 6164 6A20 		.string	"adj "
 169      00
 170               	.LC1:
 171 0005 696E 2D31 		.string	"in-1"
 171      00
 172               	.LC2:
 173 000a 7275 6E20 		.string	"run "
 173      00
 174               	.LC3:
 175 000f 696E 2D30 		.string	"in-0"
 175      00
 176               	.LC4:
 177 0014 2075 6120 		.string	" ua "
 177      00
 178               	.LC5:
 179 0019 2069 6120 		.string	" ia "
 179      00
 180               	.LC6:
 181 001e 2070 6120 		.string	" pa "
 181      00
 182               	.LC7:
 183 0023 2075 6320 		.string	" uc "
 183      00
 184               	.LC8:
 185 0028 2069 6320 		.string	" ic "
 185      00
 186               	.LC9:
 187 002d 2070 6320 		.string	" pc "
 187      00
 188               	.LC10:
 189 0032 656E 6420 		.string	"end "
 189      00
 190               		.text
 192               	.global	Calibrate
 194               	Calibrate:
 196               	.LM9:
 197               	/* prologue: frame size=4 */
 198 001c 0F93      		push r16
 199 001e 1F93      		push r17
 200 0020 CF93      		push r28
 201 0022 DF93      		push r29
 202 0024 CDB7      		in r28,__SP_L__
 203 0026 DEB7      		in r29,__SP_H__
 204 0028 2497      		sbiw r28,4
 205 002a 0FB6      		in __tmp_reg__,__SREG__
 206 002c F894      		cli
 207 002e DEBF      		out __SP_H__,r29
 208 0030 0FBE      		out __SREG__,__tmp_reg__
 209 0032 CDBF      		out __SP_L__,r28
 210               	/* prologue end (size=12) */
 212               	.LM10:
 213 0034 8FE2      		ldi r24,lo8(47)
 214 0036 8093 0000 		sts DispBuf+4,r24
 215               	.L22:
 217               	.LM11:
 218 003a 01E0      		ldi r16,lo8(1)
 219 003c 0093 0000 		sts TaskID,r16
 221               	.LM12:
 222 0040 939A      		sbi 50-0x20,3
 224               	.LM13:
 225 0042 1092 0000 		sts fH_Alarm,__zero_reg__
 227               	.LM14:
 228 0046 929A      		sbi 50-0x20,2
 230               	.LM15:
 231 0048 1092 0000 		sts fL_Alarm,__zero_reg__
 233               	.LM16:
 234 004c 00D0      		rcall Rest5460A
 236               	.LM17:
 237 004e 00D0      		rcall Initi5460A
 239               	.LM18:
 240 0050 AD98      		cbi 53-0x20,5
 241               	.LBB6:
 242               	.LBB7:
 244               	.Ltext3:
 246               	.LM19:
 247 0052 17E0      		ldi r17,lo8(7)
 248               	.LBB8:
 249               	.LBB9:
 251               	.LM20:
 252 0054 812F      		mov r24,r17
 253               	/* #APP */
 254 0056 8A95      		1: dec r24
 255 0058 F1F7      		brne 1b
 256               	/* #NOAPP */
 257               	.LBE9:
 258               	.LBE8:
 259               	.LBE7:
 260               	.LBE6:
 262               	.Ltext4:
 264               	.LM21:
 265 005a A898      		cbi 53-0x20,0
 267               	.LM22:
 268 005c 80EA      		ldi r24,lo8(-96)
 269 005e 00D0      		rcall Wr_ADByte
 270               	.LBB10:
 271               	.LBB11:
 272               	.LBB12:
 273               	.LBB13:
 275               	.Ltext5:
 277               	.LM23:
 278 0060 812F      		mov r24,r17
 279               	/* #APP */
 280 0062 8A95      		1: dec r24
 281 0064 F1F7      		brne 1b
 282               	/* #NOAPP */
 283               	.LBE13:
 284               	.LBE12:
 285               	.LBE11:
 286               	.LBE10:
 288               	.Ltext6:
 290               	.LM24:
 291 0066 AD9A      		sbi 53-0x20,5
 293               	.LM25:

⌨️ 快捷键说明

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