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

📄 adc_sensor.lst

📁 利用zigbee进行定位的程序
💻 LST
字号:
   1               		.file	"adc_sensor.c"
   2               		.arch atmega128
   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:
 120               	.global	adc_init
 122               	adc_init:
   1:adc_sensor.c  **** //----------------------------------------------------//
   2:adc_sensor.c  **** //-------Institute Of  Computing Technology-----------//
   3:adc_sensor.c  **** //------------Chinese Academic  Science---------------//
   4:adc_sensor.c  **** //-----中国科学院计算技术研究所先进测试技术实验室-----//
   5:adc_sensor.c  **** //----------------------------------------------------//
   6:adc_sensor.c  **** 
   7:adc_sensor.c  **** /**
   8:adc_sensor.c  ****  * www.wsn.net.cn
   9:adc_sensor.c  ****  * @copyright:nbicc_lpp
  10:adc_sensor.c  ****  * @data:2005.11.22
  11:adc_sensor.c  ****  * @version:0.0.1
  12:adc_sensor.c  ****  * @updata:$
  13:adc_sensor.c  ****  *
  14:adc_sensor.c  ****  */
  15:adc_sensor.c  **** #include "adc_sensor.h"
  16:adc_sensor.c  ****  
  17:adc_sensor.c  **** 
  18:adc_sensor.c  **** uint8_t  adc_init(void)
  19:adc_sensor.c  **** {
 124               	.LM1:
 125               	/* prologue: frame size=0 */
 126               	/* prologue end (size=0) */
 127               	.LBB2:
  20:adc_sensor.c  ****      { 
  21:adc_sensor.c  ****            os_atomic_t _nesc_atomic = os_atomic_start();
 129               	.LM2:
 130 0000 0E94 0000 		call os_atomic_start
  22:adc_sensor.c  **** 		  {
  23:adc_sensor.c  ****            //ADC控制寄存器中ADIE位和ADSC位清零 
  24:adc_sensor.c  ****                   ADCSRA &=0x86;
 132               	.LM3:
 133 0004 96B1      		in r25,38-0x20
 134 0006 9678      		andi r25,lo8(-122)
 135 0008 96B9      		out 38-0x20,r25
  25:adc_sensor.c  ****            //设置参考电压,配置为默认情形
  26:adc_sensor.c  ****                   ADMUX=0;
 137               	.LM4:
 138 000a 17B8      		out 39-0x20,__zero_reg__
  27:adc_sensor.c  ****            	}
  28:adc_sensor.c  ****           os_atomic_end(_nesc_atomic);
 140               	.LM5:
 141 000c 0E94 0000 		call os_atomic_end
 142               	.LBE2:
  29:adc_sensor.c  ****      }
  30:adc_sensor.c  ****     ADC_INTERRUPT_FLAG=0;
 144               	.LM6:
 145 0010 1092 0000 		sts ADC_INTERRUPT_FLAG,__zero_reg__
 146               	/* epilogue: frame size=0 */
 147 0014 0895      		ret
 148               	/* epilogue end (size=1) */
 149               	/* function adc_init size 11 (10) */
 152               	.global	sensor_init
 154               	sensor_init:
  31:adc_sensor.c  **** 	 
  32:adc_sensor.c  **** }
  33:adc_sensor.c  **** 
  34:adc_sensor.c  **** uint8_t  sensor_init(void)
  35:adc_sensor.c  **** {
 156               	.LM7:
 157               	/* prologue: frame size=0 */
 158 0016 1F93      		push r17
 159               	/* prologue end (size=1) */
 160               	.LBB3:
  36:adc_sensor.c  ****   { os_atomic_t _nesc_atomic = os_atomic_start();
 162               	.LM8:
 163 0018 0E94 0000 		call os_atomic_start
 164 001c 182F      		mov r17,r24
  37:adc_sensor.c  **** 
  38:adc_sensor.c  ****     {
  39:adc_sensor.c  ****      
  40:adc_sensor.c  ****       
  41:adc_sensor.c  ****       OS_MAKE_INT1_OUTPUT();
 166               	.LM9:
 167 001e 0E94 0000 		call OS_MAKE_INT1_OUTPUT
  42:adc_sensor.c  ****       OS_SET_INT1_PIN();
 169               	.LM10:
 170 0022 0E94 0000 		call OS_SET_INT1_PIN
  43:adc_sensor.c  ****       //whether to configure  the INT2 pin???
  44:adc_sensor.c  ****     }
  45:adc_sensor.c  **** 
  46:adc_sensor.c  ****     os_atomic_end(_nesc_atomic); }           
 172               	.LM11:
 173 0026 812F      		mov r24,r17
 174 0028 0E94 0000 		call os_atomic_end
 175               	.LBE3:
 176               	/* epilogue: frame size=0 */
 177 002c 1F91      		pop r17
 178 002e 0895      		ret
 179               	/* epilogue end (size=2) */
 180               	/* function sensor_init size 13 (10) */
 185               		.data
 186               	.LC0:
 187 0000 7365 6E73 		.string	"sensor is %04x\n"
 187      6F72 2069 
 187      7320 2530 
 187      3478 0A00 
 188               		.text
 190               	.global	read_data_task
 192               	read_data_task:
  47:adc_sensor.c  ****           
  48:adc_sensor.c  **** }
  49:adc_sensor.c  **** 
  50:adc_sensor.c  **** void read_data_task(void)
  51:adc_sensor.c  **** {
 194               	.LM12:
 195               	/* prologue: frame size=0 */
 196 0030 1F93      		push r17
 197 0032 CF93      		push r28
 198 0034 DF93      		push r29
 199               	/* prologue end (size=3) */
 200 0036 19E0      		ldi r17,lo8(9)
 201 0038 C0E0      		ldi r28,lo8(SENSOR_DATA_VALUE)
 202 003a D0E0      		ldi r29,hi8(SENSOR_DATA_VALUE)
 203               	.L9:
  52:adc_sensor.c  ****   uint8_t loopnum=0;
  53:adc_sensor.c  ****   while (loopnum<10)
  54:adc_sensor.c  ****   {
  55:adc_sensor.c  ****   
  56:adc_sensor.c  ****   SENSOR_DATA_VALUE[loopnum]=0;
 205               	.LM13:
 206 003c 1882      		st Y,__zero_reg__
 207 003e 1982      		std Y+1,__zero_reg__
 208               	.LBB4:
  57:adc_sensor.c  ****   { os_atomic_t _nesc_atomic = os_atomic_start();
 210               	.LM14:
 211 0040 0E94 0000 		call os_atomic_start
  58:adc_sensor.c  **** 
  59:adc_sensor.c  ****     {
  60:adc_sensor.c  ****      //设置ADMUX寄存器
  61:adc_sensor.c  ****          ADMUX |=0x01;  
 213               	.LM15:
 214 0044 389A      		sbi 39-0x20,0
  62:adc_sensor.c  ****      //AD使能开始AD转换
  63:adc_sensor.c  ****          ADCSRA |=0xe7; 
 216               	.LM16:
 217 0046 96B1      		in r25,38-0x20
 218 0048 976E      		ori r25,lo8(-25)
 219 004a 96B9      		out 38-0x20,r25
  64:adc_sensor.c  ****      }
  65:adc_sensor.c  **** 
  66:adc_sensor.c  ****     os_atomic_end(_nesc_atomic); }       
 221               	.LM17:
 222 004c 0E94 0000 		call os_atomic_end
 223               	.LBE4:
  67:adc_sensor.c  **** 
  68:adc_sensor.c  ****      //查询ADCSRA中断,
  69:adc_sensor.c  ****   
  70:adc_sensor.c  ****    while(ADC_INTERRUPT_FLAG==0)
  71:adc_sensor.c  ****    	{    
  72:adc_sensor.c  ****    	      ADC_INTERRUPT_FLAG=(ADCSRA&0x10);
 225               	.LM18:
 226 0050 8091 0000 		lds r24,ADC_INTERRUPT_FLAG
 227 0054 8823      		tst r24
 228 0056 39F4      		brne .L13
 229               	.L8:
 230 0058 86B1      		in r24,38-0x20
 231 005a 982F      		mov r25,r24
 232 005c 9071      		andi r25,lo8(16)
 233 005e 84FF      		sbrs r24,4
 234 0060 FBCF      		rjmp .L8
 235 0062 9093 0000 		sts ADC_INTERRUPT_FLAG,r25
 236               	.L13:
  73:adc_sensor.c  ****    	}
  74:adc_sensor.c  ****   
  75:adc_sensor.c  ****     //读取ADCH和ADCL
  76:adc_sensor.c  ****     
  77:adc_sensor.c  ****     SENSOR_DATA_VALUE[loopnum]=ADCL;
 238               	.LM19:
 239 0066 84B1      		in r24,36-0x20
 240 0068 282F      		mov r18,r24
 241 006a 3327      		clr r19
 242 006c 2883      		st Y,r18
 243 006e 3983      		std Y+1,r19
  78:adc_sensor.c  ****     SENSOR_DATA_VALUE[loopnum]+=(ADCH<<8);
 245               	.LM20:
 246 0070 85B1      		in r24,37-0x20
 247 0072 9927      		clr r25
 248 0074 982F      		mov r25,r24
 249 0076 8827      		clr r24
 250 0078 820F      		add r24,r18
 251 007a 931F      		adc r25,r19
 252 007c 8993      		st Y+,r24
 253 007e 9993      		st Y+,r25
  79:adc_sensor.c  ****     printf("sensor is %04x\n",SENSOR_DATA_VALUE[loopnum]);
 255               	.LM21:
 256 0080 9F93      		push r25
 257 0082 8F93      		push r24
 258 0084 80E0      		ldi r24,lo8(.LC0)
 259 0086 90E0      		ldi r25,hi8(.LC0)
 260 0088 9F93      		push r25
 261 008a 8F93      		push r24
 262 008c 0E94 0000 		call printf
 263               	.LBB5:
  80:adc_sensor.c  ****   { os_atomic_t _nesc_atomic = os_atomic_start();
 265               	.LM22:
 266 0090 0E94 0000 		call os_atomic_start
  81:adc_sensor.c  **** 
  82:adc_sensor.c  ****     {
  83:adc_sensor.c  ****      //清除ADC中断标志
  84:adc_sensor.c  ****           ADCSRA |=0x10;
 268               	.LM23:
 269 0094 349A      		sbi 38-0x20,4
  85:adc_sensor.c  ****      //关闭ADC转换使能
  86:adc_sensor.c  ****           //ADCSRA &=0x7f;
  87:adc_sensor.c  ****     	}
  88:adc_sensor.c  ****       os_atomic_end(_nesc_atomic); }  
 271               	.LM24:
 272 0096 0E94 0000 		call os_atomic_end
 273               	.LBE5:
  89:adc_sensor.c  **** 	  
  90:adc_sensor.c  ****    //printf("sensor is %04x\n",SENSOR_DATA_VALUE);
  91:adc_sensor.c  ****   // SENSOR_DATA_VALUE=0;
  92:adc_sensor.c  ****    adc_init();
 275               	.LM25:
 276 009a 0E94 0000 		call adc_init
  93:adc_sensor.c  ****    //
  94:adc_sensor.c  ****    //OS_CLR_INT1_PIN();
  95:adc_sensor.c  ****    ADC_INTERRUPT_FLAG=0;
 278               	.LM26:
 279 009e 1092 0000 		sts ADC_INTERRUPT_FLAG,__zero_reg__
  96:adc_sensor.c  ****    //sensor_init();
  97:adc_sensor.c  **** loopnum++;
 281               	.LM27:
 282 00a2 1150      		subi r17,lo8(-(-1))
 283 00a4 0F90      		pop __tmp_reg__
 284 00a6 0F90      		pop __tmp_reg__
 285 00a8 0F90      		pop __tmp_reg__
 286 00aa 0F90      		pop __tmp_reg__
 287 00ac 17FF      		sbrs r17,7
 288 00ae C6CF      		rjmp .L9
 289               	/* epilogue: frame size=0 */
 290 00b0 DF91      		pop r29
 291 00b2 CF91      		pop r28
 292 00b4 1F91      		pop r17
 293 00b6 0895      		ret
 294               	/* epilogue end (size=4) */
 295               	/* function read_data_task size 68 (61) */
 298               		.comm payload,2,1
 299               		.comm rssi,1003,1
 300               		.comm isready,1,1
 301               		.comm testnum,1,1
 302               		.comm pagenum,2,1
 303               		.comm prssi,2,1
 304               		.comm test,264,1
 305               		.comm tend,2,1
 306               		.comm OS_queue,16,1
 307               		.comm OS_sched_full,1,1
 308               		.comm OS_sched_free,1,1
 309               		.comm Timer3_set_flag,1,1
 310               		.comm Timer3_mscale,1,1
 311               		.comm Timer3_nextScale,1,1
 312               		.comm Timer3_minterval,2,1
 313               		.comm cc2420_bramspi,1,1
 314               		.comm cc2420_rambuf,2,1
 315               		.comm cc2420_ramlen,1,1
 316               		.comm cc2420_ramaddr,2,1
 317               		.comm cc2420fifo_bspi,1,1
 318               		.comm cc2420fifo_txbuf,2,1
 319               		.comm cc2420fifo_txlength,1,1
 320               		.comm cc2420_rxbuf,4,1
 321               		.comm cc2420_rxlength,1,1
 322               		.comm cc2420_rxbuf_now,2,1
 323               		.comm cc2420_rxlength_now,1,1
 324               		.comm cc2420_rxbufuse,1,1
 325               		.comm rfpackernum,1,1
 326               		.comm cc2420_rxflag,1,1
 327               		.comm cc2420_currentparameters,28,1
 328               		.comm demopacket,2,1
 329               		.comm cc2420_stateRadio,1,1
 330               		.comm cc2420_LocalAddr,2,1
 331               		.comm ieee_address,8,1
 332               		.comm flash_busy,1,1
 333               		.comm SENSOR_DATA_VALUE,20,1
 334               		.comm ADC_INTERRUPT_FLAG,1,1
 372               		.text
 374               	Letext:
 375               	/* File "adc_sensor.c": code   92 = 0x005c (  81), prologues   4, epilogues   7 */
DEFINED SYMBOLS
                            *ABS*:00000000 adc_sensor.c
                            *ABS*:0000003f __SREG__
                            *ABS*:0000003e __SP_H__
                            *ABS*:0000003d __SP_L__
                            *ABS*:00000000 __tmp_reg__
                            *ABS*:00000001 __zero_reg__
C:\DOCUME~1\bt\LOCALS~1\Temp/cckdbaaa.s:122    .text:00000000 adc_init
                            *COM*:00000001 ADC_INTERRUPT_FLAG
C:\DOCUME~1\bt\LOCALS~1\Temp/cckdbaaa.s:154    .text:00000016 sensor_init
C:\DOCUME~1\bt\LOCALS~1\Temp/cckdbaaa.s:192    .text:00000030 read_data_task
                            *COM*:00000014 SENSOR_DATA_VALUE
                            *COM*:00000002 payload
                            *COM*:000003eb rssi
                            *COM*:00000001 isready
                            *COM*:00000001 testnum
                            *COM*:00000002 pagenum
                            *COM*:00000002 prssi
                            *COM*:00000108 test
                            *COM*:00000002 tend
                            *COM*:00000010 OS_queue
                            *COM*:00000001 OS_sched_full
                            *COM*:00000001 OS_sched_free
                            *COM*:00000001 Timer3_set_flag
                            *COM*:00000001 Timer3_mscale
                            *COM*:00000001 Timer3_nextScale
                            *COM*:00000002 Timer3_minterval
                            *COM*:00000001 cc2420_bramspi
                            *COM*:00000002 cc2420_rambuf
                            *COM*:00000001 cc2420_ramlen
                            *COM*:00000002 cc2420_ramaddr
                            *COM*:00000001 cc2420fifo_bspi
                            *COM*:00000002 cc2420fifo_txbuf
                            *COM*:00000001 cc2420fifo_txlength
                            *COM*:00000004 cc2420_rxbuf
                            *COM*:00000001 cc2420_rxlength
                            *COM*:00000002 cc2420_rxbuf_now
                            *COM*:00000001 cc2420_rxlength_now
                            *COM*:00000001 cc2420_rxbufuse
                            *COM*:00000001 rfpackernum
                            *COM*:00000001 cc2420_rxflag
                            *COM*:0000001c cc2420_currentparameters
                            *COM*:00000002 demopacket
                            *COM*:00000001 cc2420_stateRadio
                            *COM*:00000002 cc2420_LocalAddr
                            *COM*:00000008 ieee_address
                            *COM*:00000001 flash_busy
C:\DOCUME~1\bt\LOCALS~1\Temp/cckdbaaa.s:374    .text:000000b8 Letext

UNDEFINED SYMBOLS
__do_copy_data
__do_clear_bss
os_atomic_start
os_atomic_end
OS_MAKE_INT1_OUTPUT
OS_SET_INT1_PIN
printf

⌨️ 快捷键说明

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