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

📄 adc_sensor.lst

📁 无线传感器星型网络的节点的基站程序,采用802.15.4协议
💻 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:
 223               	.global	adc_init
 225               	adc_init:
   1:adc_sensor.c  **** #include "adc_sensor.h"
   2:adc_sensor.c  **** //added by liulingyi 
   3:adc_sensor.c  **** 
   4:adc_sensor.c  **** uint8_t  adc_init(void)
   5:adc_sensor.c  **** {
 227               	.LM1:
 228               	/* prologue: frame size=0 */
 229               	/* prologue end (size=0) */
 230               	.LBB2:
   6:adc_sensor.c  ****      { 
   7:adc_sensor.c  ****            os_atomic_t _nesc_atomic = os_atomic_start();
 232               	.LM2:
 233 0000 0E94 0000 		call os_atomic_start
   8:adc_sensor.c  **** 		  {
   9:adc_sensor.c  ****            //ADC控制寄存器中ADIE位和ADSC位清零 
  10:adc_sensor.c  ****                   ADCSRA &=0x86;
 235               	.LM3:
 236 0004 96B1      		in r25,38-0x20
 237 0006 9678      		andi r25,lo8(-122)
 238 0008 96B9      		out 38-0x20,r25
  11:adc_sensor.c  ****            //设置参考电压,配置为默认情形
  12:adc_sensor.c  ****                   ADMUX=0;
 240               	.LM4:
 241 000a 17B8      		out 39-0x20,__zero_reg__
  13:adc_sensor.c  ****            	}
  14:adc_sensor.c  ****           os_atomic_end(_nesc_atomic);
 243               	.LM5:
 244 000c 0E94 0000 		call os_atomic_end
 245               	.LBE2:
  15:adc_sensor.c  ****      }
  16:adc_sensor.c  ****     ADC_INTERRUPT_FLAG=0;
 247               	.LM6:
 248 0010 1092 0000 		sts ADC_INTERRUPT_FLAG,__zero_reg__
 249               	/* epilogue: frame size=0 */
 250 0014 0895      		ret
 251               	/* epilogue end (size=1) */
 252               	/* function adc_init size 11 (10) */
 255               	.global	sensor_init
 257               	sensor_init:
  17:adc_sensor.c  **** 	 
  18:adc_sensor.c  **** }
  19:adc_sensor.c  **** 
  20:adc_sensor.c  **** uint8_t  sensor_init(void)
  21:adc_sensor.c  **** {
 259               	.LM7:
 260               	/* prologue: frame size=0 */
 261 0016 1F93      		push r17
 262               	/* prologue end (size=1) */
 263               	.LBB3:
  22:adc_sensor.c  ****   { os_atomic_t _nesc_atomic = os_atomic_start();
 265               	.LM8:
 266 0018 0E94 0000 		call os_atomic_start
 267 001c 182F      		mov r17,r24
  23:adc_sensor.c  **** 
  24:adc_sensor.c  ****     {
  25:adc_sensor.c  ****      
  26:adc_sensor.c  ****       
  27:adc_sensor.c  ****       OS_MAKE_INT1_OUTPUT();
 269               	.LM9:
 270 001e 0E94 0000 		call OS_MAKE_INT1_OUTPUT
  28:adc_sensor.c  ****       OS_SET_INT1_PIN();
 272               	.LM10:
 273 0022 0E94 0000 		call OS_SET_INT1_PIN
  29:adc_sensor.c  ****       //whether to configure  the INT2 pin???
  30:adc_sensor.c  ****     }
  31:adc_sensor.c  **** 
  32:adc_sensor.c  ****     os_atomic_end(_nesc_atomic); }           
 275               	.LM11:
 276 0026 812F      		mov r24,r17
 277 0028 0E94 0000 		call os_atomic_end
 278               	.LBE3:
 279               	/* epilogue: frame size=0 */
 280 002c 1F91      		pop r17
 281 002e 0895      		ret
 282               	/* epilogue end (size=2) */
 283               	/* function sensor_init size 13 (10) */
 289               	.global	read_data_task
 291               	read_data_task:
  33:adc_sensor.c  ****           
  34:adc_sensor.c  **** }
  35:adc_sensor.c  **** 
  36:adc_sensor.c  **** void read_data_task(void)
  37:adc_sensor.c  **** {
 293               	.LM12:
 294               	/* prologue: frame size=0 */
 295 0030 1F93      		push r17
 296 0032 CF93      		push r28
 297 0034 DF93      		push r29
 298               	/* prologue end (size=3) */
 299 0036 19E0      		ldi r17,lo8(9)
 300 0038 C0E0      		ldi r28,lo8(SENSOR_DATA_VALUE)
 301 003a D0E0      		ldi r29,hi8(SENSOR_DATA_VALUE)
 302               	.L9:
  38:adc_sensor.c  ****   uint8_t loopnum=0;
  39:adc_sensor.c  ****   while (loopnum<10)
  40:adc_sensor.c  ****   {
  41:adc_sensor.c  ****   
  42:adc_sensor.c  ****   SENSOR_DATA_VALUE[loopnum]=0;
 304               	.LM13:
 305 003c 1882      		st Y,__zero_reg__
 306 003e 1982      		std Y+1,__zero_reg__
 307               	.LBB4:
  43:adc_sensor.c  ****   { os_atomic_t _nesc_atomic = os_atomic_start();
 309               	.LM14:
 310 0040 0E94 0000 		call os_atomic_start
  44:adc_sensor.c  **** 
  45:adc_sensor.c  ****     {
  46:adc_sensor.c  ****      //设置ADMUX寄存器
  47:adc_sensor.c  ****          ADMUX |=0x01;  
 312               	.LM15:
 313 0044 389A      		sbi 39-0x20,0
  48:adc_sensor.c  ****      //AD使能开始AD转换
  49:adc_sensor.c  ****          ADCSRA |=0xe7; 
 315               	.LM16:
 316 0046 96B1      		in r25,38-0x20
 317 0048 976E      		ori r25,lo8(-25)
 318 004a 96B9      		out 38-0x20,r25
  50:adc_sensor.c  ****      }
  51:adc_sensor.c  **** 
  52:adc_sensor.c  ****     os_atomic_end(_nesc_atomic); }       
 320               	.LM17:
 321 004c 0E94 0000 		call os_atomic_end
 322               	.LBE4:
  53:adc_sensor.c  **** 
  54:adc_sensor.c  ****      //查询ADCSRA中断,
  55:adc_sensor.c  ****   
  56:adc_sensor.c  ****    while(ADC_INTERRUPT_FLAG==0)
  57:adc_sensor.c  ****    	{    
  58:adc_sensor.c  ****    	      ADC_INTERRUPT_FLAG=(ADCSRA&0x10);
 324               	.LM18:
 325 0050 8091 0000 		lds r24,ADC_INTERRUPT_FLAG
 326 0054 8823      		tst r24
 327 0056 39F4      		brne .L13
 328               	.L8:
 329 0058 86B1      		in r24,38-0x20
 330 005a 982F      		mov r25,r24
 331 005c 9071      		andi r25,lo8(16)
 332 005e 84FF      		sbrs r24,4
 333 0060 FBCF      		rjmp .L8
 334 0062 9093 0000 		sts ADC_INTERRUPT_FLAG,r25
 335               	.L13:
  59:adc_sensor.c  ****    	}
  60:adc_sensor.c  ****   
  61:adc_sensor.c  ****     //读取ADCH和ADCL
  62:adc_sensor.c  ****     
  63:adc_sensor.c  ****     SENSOR_DATA_VALUE[loopnum]=ADCL;
 337               	.LM19:
 338 0066 84B1      		in r24,36-0x20
 339 0068 282F      		mov r18,r24
 340 006a 3327      		clr r19
 341 006c 2883      		st Y,r18
 342 006e 3983      		std Y+1,r19
  64:adc_sensor.c  ****     SENSOR_DATA_VALUE[loopnum]+=(ADCH<<8);
 344               	.LM20:
 345 0070 85B1      		in r24,37-0x20
 346 0072 9927      		clr r25
 347 0074 982F      		mov r25,r24
 348 0076 8827      		clr r24
 349 0078 280F      		add r18,r24
 350 007a 391F      		adc r19,r25
 351 007c 2993      		st Y+,r18
 352 007e 3993      		st Y+,r19
 353               	.LBB5:
  65:adc_sensor.c  ****   //printf("sensor is %04x\n",SENSOR_DATA_VALUE[loopnum]);
  66:adc_sensor.c  ****   { os_atomic_t _nesc_atomic = os_atomic_start();
 355               	.LM21:
 356 0080 0E94 0000 		call os_atomic_start
  67:adc_sensor.c  **** 
  68:adc_sensor.c  ****     {
  69:adc_sensor.c  ****      //清除ADC中断标志
  70:adc_sensor.c  ****           ADCSRA |=0x10;
 358               	.LM22:
 359 0084 349A      		sbi 38-0x20,4
  71:adc_sensor.c  ****      //关闭ADC转换使能
  72:adc_sensor.c  ****           //ADCSRA &=0x7f;
  73:adc_sensor.c  ****     	}
  74:adc_sensor.c  ****       os_atomic_end(_nesc_atomic); }  
 361               	.LM23:
 362 0086 0E94 0000 		call os_atomic_end
 363               	.LBE5:
  75:adc_sensor.c  **** 	  
  76:adc_sensor.c  ****    //printf("sensor is %04x\n",SENSOR_DATA_VALUE);
  77:adc_sensor.c  ****   // SENSOR_DATA_VALUE=0;
  78:adc_sensor.c  ****    adc_init();
 365               	.LM24:
 366 008a 0E94 0000 		call adc_init
  79:adc_sensor.c  ****    //
  80:adc_sensor.c  ****    //OS_CLR_INT1_PIN();
  81:adc_sensor.c  ****    ADC_INTERRUPT_FLAG=0;
 368               	.LM25:
 369 008e 1092 0000 		sts ADC_INTERRUPT_FLAG,__zero_reg__
  82:adc_sensor.c  ****    //sensor_init();
  83:adc_sensor.c  **** loopnum++;
 371               	.LM26:
 372 0092 1150      		subi r17,lo8(-(-1))
 373 0094 17FF      		sbrs r17,7
 374 0096 D2CF      		rjmp .L9
 375               	/* epilogue: frame size=0 */
 376 0098 DF91      		pop r29
 377 009a CF91      		pop r28
 378 009c 1F91      		pop r17
 379 009e 0895      		ret
 380               	/* epilogue end (size=4) */
 381               	/* function read_data_task size 56 (49) */
 384               		.comm OS_queue,16,1
 385               		.comm OS_sched_full,1,1
 386               		.comm OS_sched_free,1,1
 387               		.comm currentTime,2,1
 388               		.comm head_of_systimer_queue,2,1
 389               		.comm timestamp_H,2,1
 390               		.comm mState,4,1
 391               		.comm setIntervalFlag,1,1
 392               		.comm mScale,1,1
 393               		.comm mInterval,1,1
 394               		.comm queue_head,1,1
 395               		.comm queue_tail,1,1
 396               		.comm queue_size,1,1
 397               		.comm queue,3,1
 398               		.comm mTimerList,33,1
 399               		.comm cc2420_bramspi,1,1
 400               		.comm cc2420_rambuf,2,1
 401               		.comm cc2420_ramlen,1,1
 402               		.comm cc2420_ramaddr,2,1
 403               		.comm cc2420fifo_bspi,1,1
 404               		.comm cc2420fifo_txbuf,2,1
 405               		.comm cc2420fifo_txlength,1,1
 406               		.comm cc2420_rxbuf,4,1
 407               		.comm cc2420_rxlength,1,1
 408               		.comm cc2420_rxbuf_now,2,1
 409               		.comm cc2420_rxlength_now,1,1
 410               		.comm cc2420_rxbufuse,1,1
 411               		.comm rfpackernum,1,1
 412               		.comm cc2420_rxflag,1,1
 413               		.comm cc2420_currentparameters,28,1
 414               		.comm receive_timestamp,4,1
 415               		.comm send_timestamp,4,1
 416               		.comm cc2420_stateRadio,1,1
 417               		.comm cc2420_LocalAddr,2,1
 418               		.comm ieee_address,8,1
 419               		.comm GTSDirectionMask,1,1
 420               		.comm phy_channel_state,1,1
 421               		.comm rxbuf_flag,1,1
 422               		.comm ppib,3,1
 423               		.comm SENSOR_DATA_VALUE,20,1
 424               		.comm ADC_INTERRUPT_FLAG,1,1
 466               		.text
 468               	Letext:
 469               	/* File "adc_sensor.c": code   80 = 0x0050 (  69), 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\ADMINI~2\LOCALS~1\Temp/ccEVaaaa.s:225    .text:00000000 adc_init
                            *COM*:00000001 ADC_INTERRUPT_FLAG
C:\DOCUME~1\ADMINI~2\LOCALS~1\Temp/ccEVaaaa.s:257    .text:00000016 sensor_init
C:\DOCUME~1\ADMINI~2\LOCALS~1\Temp/ccEVaaaa.s:291    .text:00000030 read_data_task
                            *COM*:00000014 SENSOR_DATA_VALUE
                            *COM*:00000010 OS_queue
                            *COM*:00000001 OS_sched_full
                            *COM*:00000001 OS_sched_free
                            *COM*:00000002 currentTime
                            *COM*:00000002 head_of_systimer_queue
                            *COM*:00000002 timestamp_H
                            *COM*:00000004 mState
                            *COM*:00000001 setIntervalFlag
                            *COM*:00000001 mScale
                            *COM*:00000001 mInterval
                            *COM*:00000001 queue_head
                            *COM*:00000001 queue_tail
                            *COM*:00000001 queue_size
                            *COM*:00000003 queue
                            *COM*:00000021 mTimerList
                            *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*:00000004 receive_timestamp
                            *COM*:00000004 send_timestamp
                            *COM*:00000001 cc2420_stateRadio
                            *COM*:00000002 cc2420_LocalAddr
                            *COM*:00000008 ieee_address
                            *COM*:00000001 GTSDirectionMask
                            *COM*:00000001 phy_channel_state
                            *COM*:00000001 rxbuf_flag
                            *COM*:00000003 ppib
C:\DOCUME~1\ADMINI~2\LOCALS~1\Temp/ccEVaaaa.s:468    .text:000000a0 Letext

UNDEFINED SYMBOLS
__do_copy_data
__do_clear_bss
os_atomic_start
os_atomic_end
OS_MAKE_INT1_OUTPUT
OS_SET_INT1_PIN

⌨️ 快捷键说明

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