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

📄 sensor.lst

📁 一个WSN的树状路由,对于那些学WSN路由方面的朋友应该有说帮助.
💻 LST
📖 第 1 页 / 共 3 页
字号:
   1               		.file	"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:
  90               	.global	SensorTempStdControlInit
  92               	SensorTempStdControlInit:
   1:sensor.c      **** /*
   2:sensor.c      **** ****************************************************************************
   3:sensor.c      **** *              宁波中科集成电路设计中心  版权所有 Copyright 2005
   4:sensor.c      **** *						http:\\www.nbicc.com
   5:sensor.c      **** *文件名:  sensor.c
   6:sensor.c      **** *程序员:  夏鹏	xpsonny@nbicc.com
   7:sensor.c      **** *主要内容  光传感和温度传感采集
   8:sensor.c      **** 
   9:sensor.c      **** *如有问题或BUG,请登录www.wsn.net.cn 提问或用邮件和作者联系
  10:sensor.c      **** ****************************************************************************
  11:sensor.c      **** */
  12:sensor.c      **** 
  13:sensor.c      **** #include "sensor.h"
  14:sensor.c      **** #include "os.h"
  15:sensor.c      **** #include "adc.h"
  16:sensor.c      **** 
  17:sensor.c      **** static void OSH_SET_TEMP_CTL_PIN(void);
  18:sensor.c      **** static void OSH_MAKE_TEMP_CTL_OUTPUT(void);
  19:sensor.c      **** static void OSH_CLR_PHOTO_CTL_PIN(void);
  20:sensor.c      **** static void OSH_MAKE_PHOTO_CTL_INPUT(void);
  21:sensor.c      **** 
  22:sensor.c      **** static void OSH_SET_PHOTO_CTL_PIN(void);
  23:sensor.c      **** static void OSH_MAKE_PHOTO_CTL_OUTPUT(void);
  24:sensor.c      **** static void OSH_CLR_TEMP_CTL_PIN(void);
  25:sensor.c      **** static void OSH_MAKE_TEMP_CTL_INPUT(void);
  26:sensor.c      **** 
  27:sensor.c      **** static int PhotoTempM_state;
  28:sensor.c      **** 
  29:sensor.c      **** enum PhotoTempM_state {
  30:sensor.c      ****   PhotoTempM_IDLE = 1, 
  31:sensor.c      ****   PhotoTempM_BUSY = 2, 
  32:sensor.c      ****   PhotoTempM_CONTINUOUS = 3
  33:sensor.c      **** };
  34:sensor.c      **** 
  35:sensor.c      **** result_t SensorTempStdControlInit(void)
  36:sensor.c      **** {
  94               	.LM1:
  95               	/* prologue: frame size=0 */
  96               	/* prologue end (size=0) */
  37:sensor.c      **** 	ADCBindPort(OS_ADC_TEMP_PORT, OSH_ACTUAL_TEMP_PORT);
  98               	.LM2:
  99 0000 61E0      		ldi r22,lo8(1)
 100 0002 82E0      		ldi r24,lo8(2)
 101 0004 0E94 0000 		call ADCBindPort
 102               	.LBB2:
  38:sensor.c      **** 	{ uint8_t atomicState = AtomicStart();
 104               	.LM3:
 105 0008 0E94 0000 		call AtomicStart
  39:sensor.c      ****     {
  40:sensor.c      **** 		PhotoTempM_state = PhotoTempM_IDLE;
 107               	.LM4:
 108 000c 21E0      		ldi r18,lo8(1)
 109 000e 30E0      		ldi r19,hi8(1)
 110 0010 3093 0000 		sts (PhotoTempM_state)+1,r19
 111 0014 2093 0000 		sts PhotoTempM_state,r18
  41:sensor.c      ****     }
  42:sensor.c      ****     AtomicEnd(atomicState); }
 113               	.LM5:
 114 0018 0E94 0000 		call AtomicEnd
 115               	.LBE2:
  43:sensor.c      **** 	return ADCControlInit();
 117               	.LM6:
 118 001c 0E94 0000 		call ADCControlInit
  44:sensor.c      **** }
 120               	.LM7:
 121 0020 9927      		clr r25
 122               	/* epilogue: frame size=0 */
 123 0022 0895      		ret
 124               	/* epilogue end (size=1) */
 125               	/* function SensorTempStdControlInit size 18 (17) */
 128               	.global	OSH_MAKE_INT1_OUTPUT
 130               	OSH_MAKE_INT1_OUTPUT:
  45:sensor.c      **** 
  46:sensor.c      **** void OSH_MAKE_INT1_OUTPUT(void)
  47:sensor.c      **** {
 132               	.LM8:
 133               	/* prologue: frame size=0 */
 134               	/* prologue end (size=0) */
  48:sensor.c      **** 	* (volatile unsigned char *)(0x02 + 0x20) |= 1 << 5;
 136               	.LM9:
 137 0024 159A      		sbi 34-0x20,5
 138               	/* epilogue: frame size=0 */
 139 0026 0895      		ret
 140               	/* epilogue end (size=1) */
 141               	/* function OSH_MAKE_INT1_OUTPUT size 2 (1) */
 145               	OSH_MAKE_PHOTO_CTL_OUTPUT:
  49:sensor.c      **** }
  50:sensor.c      **** 
  51:sensor.c      **** void OSH_MAKE_PHOTO_CTL_OUTPUT(void)
  52:sensor.c      **** {
 147               	.LM10:
 148               	/* prologue: frame size=0 */
 149               	/* prologue end (size=0) */
  53:sensor.c      **** 	OSH_MAKE_INT1_OUTPUT();
 151               	.LM11:
 152 0028 0E94 0000 		call OSH_MAKE_INT1_OUTPUT
 153               	/* epilogue: frame size=0 */
 154 002c 0895      		ret
 155               	/* epilogue end (size=1) */
 156               	/* function OSH_MAKE_PHOTO_CTL_OUTPUT size 3 (2) */
 159               	.global	OSH_SET_INT1_PIN
 161               	OSH_SET_INT1_PIN:
  54:sensor.c      **** }
  55:sensor.c      **** 
  56:sensor.c      **** void OSH_SET_INT1_PIN(void)
  57:sensor.c      **** {
 163               	.LM12:
 164               	/* prologue: frame size=0 */
 165               	/* prologue end (size=0) */
  58:sensor.c      **** 	* (volatile unsigned char *)(0x03 + 0x20) |= 1 << 5;
 167               	.LM13:
 168 002e 1D9A      		sbi 35-0x20,5
 169               	/* epilogue: frame size=0 */
 170 0030 0895      		ret
 171               	/* epilogue end (size=1) */
 172               	/* function OSH_SET_INT1_PIN size 2 (1) */
 176               	OSH_SET_PHOTO_CTL_PIN:
  59:sensor.c      **** }
  60:sensor.c      **** 
  61:sensor.c      **** void OSH_SET_PHOTO_CTL_PIN(void)
  62:sensor.c      **** {
 178               	.LM14:
 179               	/* prologue: frame size=0 */
 180               	/* prologue end (size=0) */
  63:sensor.c      **** 	OSH_SET_INT1_PIN();
 182               	.LM15:
 183 0032 0E94 0000 		call OSH_SET_INT1_PIN
 184               	/* epilogue: frame size=0 */
 185 0036 0895      		ret
 186               	/* epilogue end (size=1) */
 187               	/* function OSH_SET_PHOTO_CTL_PIN size 3 (2) */
 190               	.global	OSH_MAKE_INT2_OUTPUT
 192               	OSH_MAKE_INT2_OUTPUT:
  64:sensor.c      **** }
  65:sensor.c      **** 
  66:sensor.c      **** void OSH_MAKE_INT2_OUTPUT(void)
  67:sensor.c      **** {
 194               	.LM16:
 195               	/* prologue: frame size=0 */
 196               	/* prologue end (size=0) */
  68:sensor.c      **** 	* (volatile unsigned char *)(0x02 + 0x20) |= 1 << 6;
 198               	.LM17:
 199 0038 169A      		sbi 34-0x20,6
 200               	/* epilogue: frame size=0 */
 201 003a 0895      		ret
 202               	/* epilogue end (size=1) */
 203               	/* function OSH_MAKE_INT2_OUTPUT size 2 (1) */
 207               	OSH_MAKE_TEMP_CTL_OUTPUT:
  69:sensor.c      **** }
  70:sensor.c      **** 
  71:sensor.c      **** void OSH_MAKE_TEMP_CTL_OUTPUT(void)
  72:sensor.c      **** {
 209               	.LM18:
 210               	/* prologue: frame size=0 */
 211               	/* prologue end (size=0) */
  73:sensor.c      **** 	OSH_MAKE_INT2_OUTPUT();
 213               	.LM19:
 214 003c 0E94 0000 		call OSH_MAKE_INT2_OUTPUT
 215               	/* epilogue: frame size=0 */
 216 0040 0895      		ret
 217               	/* epilogue end (size=1) */
 218               	/* function OSH_MAKE_TEMP_CTL_OUTPUT size 3 (2) */
 221               	.global	OSH_SET_INT2_PIN
 223               	OSH_SET_INT2_PIN:
  74:sensor.c      **** }
  75:sensor.c      **** 
  76:sensor.c      **** void OSH_SET_INT2_PIN(void)
  77:sensor.c      **** {
 225               	.LM20:
 226               	/* prologue: frame size=0 */
 227               	/* prologue end (size=0) */
  78:sensor.c      **** 	* (volatile unsigned char *)(0x03 + 0x20) |= 1 << 6;
 229               	.LM21:
 230 0042 1E9A      		sbi 35-0x20,6
 231               	/* epilogue: frame size=0 */
 232 0044 0895      		ret
 233               	/* epilogue end (size=1) */
 234               	/* function OSH_SET_INT2_PIN size 2 (1) */
 238               	OSH_SET_TEMP_CTL_PIN:
  79:sensor.c      **** }
  80:sensor.c      **** 
  81:sensor.c      **** void OSH_SET_TEMP_CTL_PIN(void)
  82:sensor.c      **** {
 240               	.LM22:
 241               	/* prologue: frame size=0 */
 242               	/* prologue end (size=0) */
  83:sensor.c      **** 	OSH_SET_INT2_PIN();
 244               	.LM23:
 245 0046 0E94 0000 		call OSH_SET_INT2_PIN
 246               	/* epilogue: frame size=0 */
 247 004a 0895      		ret
 248               	/* epilogue end (size=1) */
 249               	/* function OSH_SET_TEMP_CTL_PIN size 3 (2) */
 252               	.global	SensorTempStdControlStart
 254               	SensorTempStdControlStart:
  84:sensor.c      **** }
  85:sensor.c      **** 
  86:sensor.c      **** result_t SensorTempStdControlStart(void)
  87:sensor.c      **** {
 256               	.LM24:
 257               	/* prologue: frame size=0 */
 258 004c 1F93      		push r17
 259               	/* prologue end (size=1) */
 260               	.LBB3:
  88:sensor.c      **** 	{ uint8_t atomicState = AtomicStart();
 262               	.LM25:
 263 004e 0E94 0000 		call AtomicStart
 264 0052 182F      		mov r17,r24
  89:sensor.c      ****     {
  90:sensor.c      **** 		OSH_SET_TEMP_CTL_PIN();
 266               	.LM26:
 267 0054 0E94 0000 		call OSH_SET_TEMP_CTL_PIN
  91:sensor.c      **** 		OSH_MAKE_TEMP_CTL_OUTPUT();
 269               	.LM27:
 270 0058 0E94 0000 		call OSH_MAKE_TEMP_CTL_OUTPUT
  92:sensor.c      ****     }
  93:sensor.c      ****     AtomicEnd(atomicState); }
 272               	.LM28:
 273 005c 812F      		mov r24,r17
 274 005e 0E94 0000 		call AtomicEnd
 275               	.LBE3:
  94:sensor.c      **** 	return SUCCESS;
  95:sensor.c      **** }
 277               	.LM29:
 278 0062 81E0      		ldi r24,lo8(1)
 279 0064 90E0      		ldi r25,hi8(1)
 280               	/* epilogue: frame size=0 */
 281 0066 1F91      		pop r17
 282 0068 0895      		ret
 283               	/* epilogue end (size=2) */
 284               	/* function SensorTempStdControlStart size 15 (12) */
 290               	.global	SensorInternalTempADCGetData
 292               	SensorInternalTempADCGetData:
  96:sensor.c      **** 
  97:sensor.c      **** result_t SensorInternalTempADCGetData(void)
  98:sensor.c      **** {
 294               	.LM30:
 295               	/* prologue: frame size=0 */
 296               	/* prologue end (size=0) */
  99:sensor.c      **** 	unsigned char result;
 100:sensor.c      **** 	result = ADCGetData(OS_ADC_TEMP_PORT);
 298               	.LM31:
 299 006a 82E0      		ldi r24,lo8(2)
 300 006c 0E94 0000 		call ADCGetData
 101:sensor.c      **** 	
 102:sensor.c      **** 	return result;
 103:sensor.c      **** }
 302               	.LM32:
 303 0070 9927      		clr r25
 304               	/* epilogue: frame size=0 */
 305 0072 0895      		ret
 306               	/* epilogue end (size=1) */
 307               	/* function SensorInternalTempADCGetData size 5 (4) */
 310               	.global	OSH_MAKE_INT2_INPUT
 312               	OSH_MAKE_INT2_INPUT:
 104:sensor.c      **** 
 105:sensor.c      **** void OSH_MAKE_INT2_INPUT(void)
 106:sensor.c      **** {
 314               	.LM33:
 315               	/* prologue: frame size=0 */
 316               	/* prologue end (size=0) */
 107:sensor.c      **** 	* (volatile unsigned char *)(0x02 + 0x20) &= ~(1 << 6);
 318               	.LM34:
 319 0074 1698      		cbi 34-0x20,6
 320               	/* epilogue: frame size=0 */
 321 0076 0895      		ret
 322               	/* epilogue end (size=1) */
 323               	/* function OSH_MAKE_INT2_INPUT size 2 (1) */
 326               	.global	OSH_CLR_INT2_PIN
 328               	OSH_CLR_INT2_PIN:
 108:sensor.c      **** }
 109:sensor.c      **** 
 110:sensor.c      **** void OSH_MAKE_TEMP_CTL_INPUT(void)
 111:sensor.c      **** {
 112:sensor.c      **** 	OSH_MAKE_INT2_INPUT();
 113:sensor.c      **** }
 114:sensor.c      **** 
 115:sensor.c      **** void OSH_CLR_INT2_PIN(void)
 116:sensor.c      **** {
 330               	.LM35:
 331               	/* prologue: frame size=0 */
 332               	/* prologue end (size=0) */
 117:sensor.c      **** 	* (volatile unsigned char *)(0x03 + 0x20) &= ~(1 << 6);
 334               	.LM36:
 335 0078 1E98      		cbi 35-0x20,6
 336               	/* epilogue: frame size=0 */
 337 007a 0895      		ret
 338               	/* epilogue end (size=1) */
 339               	/* function OSH_CLR_INT2_PIN size 2 (1) */
 342               	.global	OSH_MAKE_INT1_INPUT
 344               	OSH_MAKE_INT1_INPUT:
 118:sensor.c      **** }
 119:sensor.c      **** 
 120:sensor.c      **** void OSH_CLR_TEMP_CTL_PIN(void)
 121:sensor.c      **** {
 122:sensor.c      **** 	OSH_CLR_INT2_PIN();
 123:sensor.c      **** }
 124:sensor.c      **** 
 125:sensor.c      **** void OSH_MAKE_INT1_INPUT(void)
 126:sensor.c      **** {
 346               	.LM37:
 347               	/* prologue: frame size=0 */
 348               	/* prologue end (size=0) */
 127:sensor.c      **** 	* (volatile unsigned char *)(0x02 + 0x20) &= ~(1 << 5);
 350               	.LM38:

⌨️ 快捷键说明

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