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

📄 ad7714.lst

📁 包含了AD7714的中文使用资料和源码资料
💻 LST
📖 第 1 页 / 共 3 页
字号:
  94:d:/WinAVR/avr/include/util/delay.h ****     as 0.)  The loop executes three CPU cycles per iteration, not
  95:d:/WinAVR/avr/include/util/delay.h ****     including the overhead the compiler needs to setup the counter
  96:d:/WinAVR/avr/include/util/delay.h ****     register.
  97:d:/WinAVR/avr/include/util/delay.h **** 
  98:d:/WinAVR/avr/include/util/delay.h ****     Thus, at a CPU speed of 1 MHz, delays of up to 768 microseconds
  99:d:/WinAVR/avr/include/util/delay.h ****     can be achieved.
 100:d:/WinAVR/avr/include/util/delay.h **** */
 101:d:/WinAVR/avr/include/util/delay.h **** void
 102:d:/WinAVR/avr/include/util/delay.h **** _delay_loop_1(uint8_t __count)
 103:d:/WinAVR/avr/include/util/delay.h **** {
 104:d:/WinAVR/avr/include/util/delay.h **** 	__asm__ volatile (
 105:d:/WinAVR/avr/include/util/delay.h **** 		"1: dec %0" "\n\t"
 106:d:/WinAVR/avr/include/util/delay.h **** 		"brne 1b"
 107:d:/WinAVR/avr/include/util/delay.h **** 		: "=r" (__count)
 108:d:/WinAVR/avr/include/util/delay.h **** 		: "0" (__count)
 109:d:/WinAVR/avr/include/util/delay.h **** 	);
 110:d:/WinAVR/avr/include/util/delay.h **** }
 111:d:/WinAVR/avr/include/util/delay.h **** 
 112:d:/WinAVR/avr/include/util/delay.h **** /** \ingroup util_delay
 113:d:/WinAVR/avr/include/util/delay.h **** 
 114:d:/WinAVR/avr/include/util/delay.h ****     Delay loop using a 16-bit counter \c __count, so up to 65536
 115:d:/WinAVR/avr/include/util/delay.h ****     iterations are possible.  (The value 65536 would have to be
 116:d:/WinAVR/avr/include/util/delay.h ****     passed as 0.)  The loop executes four CPU cycles per iteration,
 117:d:/WinAVR/avr/include/util/delay.h ****     not including the overhead the compiler requires to setup the
 118:d:/WinAVR/avr/include/util/delay.h ****     counter register pair.
 119:d:/WinAVR/avr/include/util/delay.h **** 
 120:d:/WinAVR/avr/include/util/delay.h ****     Thus, at a CPU speed of 1 MHz, delays of up to about 262.1
 121:d:/WinAVR/avr/include/util/delay.h ****     milliseconds can be achieved.
 122:d:/WinAVR/avr/include/util/delay.h ****  */
 123:d:/WinAVR/avr/include/util/delay.h **** void
 124:d:/WinAVR/avr/include/util/delay.h **** _delay_loop_2(uint16_t __count)
 125:d:/WinAVR/avr/include/util/delay.h **** {
 126:d:/WinAVR/avr/include/util/delay.h **** 	__asm__ volatile (
 127:d:/WinAVR/avr/include/util/delay.h **** 		"1: sbiw %0,1" "\n\t"
 128:d:/WinAVR/avr/include/util/delay.h **** 		"brne 1b"
 129:d:/WinAVR/avr/include/util/delay.h **** 		: "=w" (__count)
 130:d:/WinAVR/avr/include/util/delay.h **** 		: "0" (__count)
 131:d:/WinAVR/avr/include/util/delay.h **** 	);
 132:d:/WinAVR/avr/include/util/delay.h **** }
 133:d:/WinAVR/avr/include/util/delay.h **** 
 134:d:/WinAVR/avr/include/util/delay.h **** #ifndef F_CPU
 135:d:/WinAVR/avr/include/util/delay.h **** /* prevent compiler error by supplying a default */
 136:d:/WinAVR/avr/include/util/delay.h **** # warning "F_CPU not defined for <util/delay.h>"
 137:d:/WinAVR/avr/include/util/delay.h **** # define F_CPU 1000000UL
 138:d:/WinAVR/avr/include/util/delay.h **** #endif
 139:d:/WinAVR/avr/include/util/delay.h **** 
 140:d:/WinAVR/avr/include/util/delay.h **** /**
 141:d:/WinAVR/avr/include/util/delay.h ****    \ingroup util_delay
 142:d:/WinAVR/avr/include/util/delay.h **** 
 143:d:/WinAVR/avr/include/util/delay.h ****    Perform a delay of \c __us microseconds, using _delay_loop_1().
 144:d:/WinAVR/avr/include/util/delay.h **** 
 145:d:/WinAVR/avr/include/util/delay.h ****    The macro F_CPU is supposed to be defined to a
 146:d:/WinAVR/avr/include/util/delay.h ****    constant defining the CPU clock frequency (in Hertz).
 147:d:/WinAVR/avr/include/util/delay.h **** 
 148:d:/WinAVR/avr/include/util/delay.h ****    The maximal possible delay is 768 us / F_CPU in MHz.
 149:d:/WinAVR/avr/include/util/delay.h ****  */
 150:d:/WinAVR/avr/include/util/delay.h **** void
 151:d:/WinAVR/avr/include/util/delay.h **** _delay_us(double __us)
 152:d:/WinAVR/avr/include/util/delay.h **** {
 153:d:/WinAVR/avr/include/util/delay.h **** 	uint8_t __ticks;
 154:d:/WinAVR/avr/include/util/delay.h **** 	double __tmp = ((F_CPU) / 3e6) * __us;
 155:d:/WinAVR/avr/include/util/delay.h **** 	if (__tmp < 1.0)
 156:d:/WinAVR/avr/include/util/delay.h **** 		__ticks = 1;
 157:d:/WinAVR/avr/include/util/delay.h **** 	else if (__tmp > 255)
 158:d:/WinAVR/avr/include/util/delay.h **** 		__ticks = 0;	/* i.e. 256 */
 159:d:/WinAVR/avr/include/util/delay.h **** 	else
 160:d:/WinAVR/avr/include/util/delay.h **** 		__ticks = (uint8_t)__tmp;
 161:d:/WinAVR/avr/include/util/delay.h **** 	_delay_loop_1(__ticks);
 162:d:/WinAVR/avr/include/util/delay.h **** }
 163:d:/WinAVR/avr/include/util/delay.h **** 
 164:d:/WinAVR/avr/include/util/delay.h **** 
 165:d:/WinAVR/avr/include/util/delay.h **** /**
 166:d:/WinAVR/avr/include/util/delay.h ****    \ingroup util_delay
 167:d:/WinAVR/avr/include/util/delay.h **** 
 168:d:/WinAVR/avr/include/util/delay.h ****    Perform a delay of \c __ms milliseconds, using _delay_loop_2().
 169:d:/WinAVR/avr/include/util/delay.h **** 
 170:d:/WinAVR/avr/include/util/delay.h ****    The macro F_CPU is supposed to be defined to a
 171:d:/WinAVR/avr/include/util/delay.h ****    constant defining the CPU clock frequency (in Hertz).
 172:d:/WinAVR/avr/include/util/delay.h **** 
 173:d:/WinAVR/avr/include/util/delay.h ****    The maximal possible delay is 262.14 ms / F_CPU in MHz.
 174:d:/WinAVR/avr/include/util/delay.h ****  */
 175:d:/WinAVR/avr/include/util/delay.h **** void
 176:d:/WinAVR/avr/include/util/delay.h **** _delay_ms(double __ms)
 177:d:/WinAVR/avr/include/util/delay.h **** {
 178:d:/WinAVR/avr/include/util/delay.h **** 	uint16_t __ticks;
 179:d:/WinAVR/avr/include/util/delay.h **** 	double __tmp = ((F_CPU) / 4e3) * __ms;
 180:d:/WinAVR/avr/include/util/delay.h **** 	if (__tmp < 1.0)
 181:d:/WinAVR/avr/include/util/delay.h **** 		__ticks = 1;
 182:d:/WinAVR/avr/include/util/delay.h **** 	else if (__tmp > 65535)
 183:d:/WinAVR/avr/include/util/delay.h **** 		__ticks = 0;	/* i.e. 65536 */
 184:d:/WinAVR/avr/include/util/delay.h **** 	else
 185:d:/WinAVR/avr/include/util/delay.h **** 		__ticks = (uint16_t)__tmp;
 174               	.LM22:
 175 0040 80E5      		ldi r24,lo8(-15536)
 176 0042 93EC      		ldi r25,hi8(-15536)
 177               	.LBB4:
 178               	.LBB5:
 180               	.LM23:
 181 0044 FC01      		movw r30,r24
 182               	/* #APP */
 183 0046 3197      		1: sbiw r30,1
 184 0048 F1F7      		brne 1b
 185               	/* #NOAPP */
 186               	.LBE5:
 187               	.LBE4:
 188               	.LBE3:
 189               	.LBE2:
 190               	.LBB6:
 191               	.LBB7:
 192               	.LBB8:
 193               	.LBB9:
 194               	/* #APP */
 195 004a 0197      		1: sbiw r24,1
 196 004c F1F7      		brne 1b
 197               	/* #NOAPP */
 198               	.LBE9:
 199               	.LBE8:
 200               	.LBE7:
 201               	.LBE6:
 202               	.LBB10:
 203               	.LBB11:
 205               	.LM24:
 206 004e 88EA      		ldi r24,lo8(25000)
 207 0050 91E6      		ldi r25,hi8(25000)
 208               	.LBB12:
 209               	.LBB13:
 211               	.LM25:
 212               	/* #APP */
 213 0052 0197      		1: sbiw r24,1
 214 0054 F1F7      		brne 1b
 215               	/* #NOAPP */
 216               	.LBE13:
 217               	.LBE12:
 218               	.LBE11:
 219               	.LBE10:
 220               	/* epilogue: frame size=0 */
 221 0056 0895      		ret
 222               	/* epilogue end (size=1) */
 223               	/* function spiSend size 29 (28) */
 237               	.Lscope1:
 239               	.global	waitReady
 241               	waitReady:
 243               	.Ltext2:
  79:ad7714.c      **** 	_delay_ms(200);
  80:ad7714.c      **** 	_delay_ms(200);
  81:ad7714.c      **** 	_delay_ms(100);
  82:ad7714.c      **** }
  83:ad7714.c      **** 
  84:ad7714.c      **** void spiRead()
  85:ad7714.c      **** {
  86:ad7714.c      **** 	//while(PINB&(1<<DRDY));	//等待转换好
  87:ad7714.c      **** 	spiStart();
  88:ad7714.c      **** 	clrb(PORTB,CS);
  89:ad7714.c      **** 	//start
  90:ad7714.c      **** 	SPDR=0;	//1
  91:ad7714.c      **** 	while(!(SPSR&(1<<SPIF)));
  92:ad7714.c      **** 	buff[0]=SPDR;
  93:ad7714.c      **** 	SPDR=0;	//2
  94:ad7714.c      **** 	while(!(SPSR&(1<<SPIF)));
  95:ad7714.c      **** 	buff[1]=SPDR;
  96:ad7714.c      **** 	SPDR=0;	//3
  97:ad7714.c      **** 	while(!(SPSR&(1<<SPIF)));
  98:ad7714.c      **** 	buff[2]=SPDR;
  99:ad7714.c      **** 	setb(PORTB,CS);
 100:ad7714.c      **** 	spiStop();
 101:ad7714.c      **** }
 102:ad7714.c      **** 
 103:ad7714.c      **** void waitReady()
 104:ad7714.c      **** {
 245               	.LM26:
 246               	/* prologue: frame size=0 */
 247               	/* prologue end (size=0) */
 105:ad7714.c      **** 	uchar n=0xff;
 106:ad7714.c      **** 	clrb(PORTB,CS);
 249               	.LM27:
 250 0058 C098      		cbi 56-0x20,0
 107:ad7714.c      **** 	while(!tstb(n,DRDY))
 108:ad7714.c      **** 	{
 109:ad7714.c      **** 		spiSend(0x08);		//下一次操作通信寄存器
 110:ad7714.c      **** 
 111:ad7714.c      **** 		//tst DRDY is ok
 112:ad7714.c      **** 		spiStart();
 113:ad7714.c      **** 		SPDR=0xaa;			//无用的数据,保持最高位为1
 114:ad7714.c      **** 		while(!(SPSR&(1<<SPIF)));
 115:ad7714.c      **** 		n=SPDR;
 116:ad7714.c      **** 		spiStop();
 117:ad7714.c      **** 	}
 118:ad7714.c      **** 	setb(PORTB,CS);
 252               	.LM28:
 253 005a C09A      		sbi 56-0x20,0
 254               	/* epilogue: frame size=0 */
 255 005c 0895      		ret
 256               	/* epilogue end (size=1) */
 257               	/* function waitReady size 3 (2) */
 259               	.Lscope2:
 261               	.global	spiRead
 263               	spiRead:
 265               	.LM29:
 266               	/* prologue: frame size=0 */
 267               	/* prologue end (size=0) */
 269               	.LM30:
 270 005e 6E9A      		sbi 45-0x20,6
 272               	.LM31:
 273 0060 C098      		cbi 56-0x20,0
 275               	.LM32:
 276 0062 1FB8      		out 47-0x20,__zero_reg__
 277               	.L40:
 279               	.LM33:
 280 0064 779B      		sbis 46-0x20,7
 281 0066 FECF      		rjmp .L40
 283               	.LM34:
 284 0068 8FB1      		in r24,47-0x20
 285 006a 8093 0000 		sts buff,r24
 287               	.LM35:
 288 006e 1FB8      		out 47-0x20,__zero_reg__
 289               	.L43:
 291               	.LM36:
 292 0070 779B      		sbis 46-0x20,7
 293 0072 FECF      		rjmp .L43
 295               	.LM37:
 296 0074 8FB1      		in r24,47-0x20
 297 0076 8093 0000 		sts buff+1,r24
 299               	.LM38:
 300 007a 1FB8      		out 47-0x20,__zero_reg__
 301               	.L46:
 303               	.LM39:
 304 007c 779B      		sbis 46-0x20,7
 305 007e FECF      		rjmp .L46
 307               	.LM40:
 308 0080 8FB1      		in r24,47-0x20
 309 0082 8093 0000 		sts buff+2,r24
 311               	.LM41:
 312 0086 C09A      		sbi 56-0x20,0
 314               	.LM42:
 315 0088 6E98      		cbi 45-0x20,6
 316               	/* epilogue: frame size=0 */
 317 008a 0895      		ret
 318               	/* epilogue end (size=1) */
 319               	/* function spiRead size 23 (22) */
 321               	.Lscope3:
 324               	.global	usartPutchar
 326               	usartPutchar:
 119:ad7714.c      **** }
 120:ad7714.c      **** 	
 121:ad7714.c      **** void usartPutchar(uchar data)
 122:ad7714.c      **** {
 328               	.LM43:
 329               	/* prologue: frame size=0 */
 330               	/* prologue end (size=0) */
 331               	.L50:
 123:ad7714.c      **** 	while(!tstb(UCSRA,UDRE));				//等待发送标致完成

⌨️ 快捷键说明

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