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

📄 sensor.lst

📁 adhoc信息节点程序源代码(点对多点)——for atmega128
💻 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:
  83               	.global	SensorTempStdControlInit
  85               	SensorTempStdControlInit:
   1:sensor.c      **** /*
   2:sensor.c      **** ****************************************************************************                       
   3:sensor.c      **** *                        宁波市科技园区创业大厦六楼
   4:sensor.c      **** *              宁波中科集成电路设计中心  版权所有 Copyright 2005
   5:sensor.c      **** *
   6:sensor.c      **** *文件名:  sensor.c
   7:sensor.c      **** *程序员:
   8:sensor.c      **** *主要内容:光传感,温度传感
   9:sensor.c      **** *完成日期:2005.3.28
  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      **** #include "app.h"
  17:sensor.c      **** 
  18:sensor.c      **** int PhotoTempM_state;
  19:sensor.c      **** 
  20:sensor.c      **** result_t SensorTempStdControlInit(void)
  21:sensor.c      **** {
  87               	.LM1:
  88               	/* prologue: frame size=0 */
  89               	/* prologue end (size=0) */
  22:sensor.c      **** 	ADCBindPort(OS_ADC_TEMP_PORT, OSH_ACTUAL_TEMP_PORT);
  91               	.LM2:
  92 0000 61E0      		ldi r22,lo8(1)
  93 0002 82E0      		ldi r24,lo8(2)
  94 0004 0E94 0000 		call ADCBindPort
  95               	.LBB2:
  23:sensor.c      **** 	{ uint8_t atomicState = AtomicStart();
  97               	.LM3:
  98 0008 0E94 0000 		call AtomicStart
  24:sensor.c      ****     {
  25:sensor.c      **** 		PhotoTempM_state = PhotoTempM_IDLE;
 100               	.LM4:
 101 000c 21E0      		ldi r18,lo8(1)
 102 000e 30E0      		ldi r19,hi8(1)
 103 0010 3093 0000 		sts (PhotoTempM_state)+1,r19
 104 0014 2093 0000 		sts PhotoTempM_state,r18
  26:sensor.c      ****     }
  27:sensor.c      ****     AtomicEnd(atomicState); }
 106               	.LM5:
 107 0018 0E94 0000 		call AtomicEnd
 108               	.LBE2:
  28:sensor.c      **** 	return ADCControlInit();
 110               	.LM6:
 111 001c 0E94 0000 		call ADCControlInit
  29:sensor.c      **** }
 113               	.LM7:
 114 0020 9927      		clr r25
 115               	/* epilogue: frame size=0 */
 116 0022 0895      		ret
 117               	/* epilogue end (size=1) */
 118               	/* function SensorTempStdControlInit size 18 (17) */
 121               	.global	OSH_MAKE_INT1_OUTPUT
 123               	OSH_MAKE_INT1_OUTPUT:
  30:sensor.c      **** 
  31:sensor.c      **** void OSH_MAKE_INT1_OUTPUT(void)
  32:sensor.c      **** {
 125               	.LM8:
 126               	/* prologue: frame size=0 */
 127               	/* prologue end (size=0) */
  33:sensor.c      **** 	* (volatile unsigned char *)(0x02 + 0x20) |= 1 << 5;
 129               	.LM9:
 130 0024 159A      		sbi 34-0x20,5
 131               	/* epilogue: frame size=0 */
 132 0026 0895      		ret
 133               	/* epilogue end (size=1) */
 134               	/* function OSH_MAKE_INT1_OUTPUT size 2 (1) */
 137               	.global	OSH_MAKE_PHOTO_CTL_OUTPUT
 139               	OSH_MAKE_PHOTO_CTL_OUTPUT:
  34:sensor.c      **** }
  35:sensor.c      **** 
  36:sensor.c      **** void OSH_MAKE_PHOTO_CTL_OUTPUT(void)
  37:sensor.c      **** {
 141               	.LM10:
 142               	/* prologue: frame size=0 */
 143               	/* prologue end (size=0) */
  38:sensor.c      **** 	OSH_MAKE_INT1_OUTPUT();
 145               	.LM11:
 146 0028 0E94 0000 		call OSH_MAKE_INT1_OUTPUT
 147               	/* epilogue: frame size=0 */
 148 002c 0895      		ret
 149               	/* epilogue end (size=1) */
 150               	/* function OSH_MAKE_PHOTO_CTL_OUTPUT size 3 (2) */
 153               	.global	OSH_SET_INT1_PIN
 155               	OSH_SET_INT1_PIN:
  39:sensor.c      **** }
  40:sensor.c      **** 
  41:sensor.c      **** void OSH_SET_INT1_PIN(void)
  42:sensor.c      **** {
 157               	.LM12:
 158               	/* prologue: frame size=0 */
 159               	/* prologue end (size=0) */
  43:sensor.c      **** 	* (volatile unsigned char *)(0x03 + 0x20) |= 1 << 5;
 161               	.LM13:
 162 002e 1D9A      		sbi 35-0x20,5
 163               	/* epilogue: frame size=0 */
 164 0030 0895      		ret
 165               	/* epilogue end (size=1) */
 166               	/* function OSH_SET_INT1_PIN size 2 (1) */
 169               	.global	OSH_SET_PHOTO_CTL_PIN
 171               	OSH_SET_PHOTO_CTL_PIN:
  44:sensor.c      **** }
  45:sensor.c      **** 
  46:sensor.c      **** void OSH_SET_PHOTO_CTL_PIN(void)
  47:sensor.c      **** {
 173               	.LM14:
 174               	/* prologue: frame size=0 */
 175               	/* prologue end (size=0) */
  48:sensor.c      **** 	OSH_SET_INT1_PIN();
 177               	.LM15:
 178 0032 0E94 0000 		call OSH_SET_INT1_PIN
 179               	/* epilogue: frame size=0 */
 180 0036 0895      		ret
 181               	/* epilogue end (size=1) */
 182               	/* function OSH_SET_PHOTO_CTL_PIN size 3 (2) */
 185               	.global	OSH_MAKE_INT2_OUTPUT
 187               	OSH_MAKE_INT2_OUTPUT:
  49:sensor.c      **** }
  50:sensor.c      **** 
  51:sensor.c      **** void OSH_MAKE_INT2_OUTPUT(void)
  52:sensor.c      **** {
 189               	.LM16:
 190               	/* prologue: frame size=0 */
 191               	/* prologue end (size=0) */
  53:sensor.c      **** 	* (volatile unsigned char *)(0x02 + 0x20) |= 1 << 6;
 193               	.LM17:
 194 0038 169A      		sbi 34-0x20,6
 195               	/* epilogue: frame size=0 */
 196 003a 0895      		ret
 197               	/* epilogue end (size=1) */
 198               	/* function OSH_MAKE_INT2_OUTPUT size 2 (1) */
 201               	.global	OSH_MAKE_TEMP_CTL_OUTPUT
 203               	OSH_MAKE_TEMP_CTL_OUTPUT:
  54:sensor.c      **** }
  55:sensor.c      **** 
  56:sensor.c      **** void OSH_MAKE_TEMP_CTL_OUTPUT(void)
  57:sensor.c      **** {
 205               	.LM18:
 206               	/* prologue: frame size=0 */
 207               	/* prologue end (size=0) */
  58:sensor.c      **** 	OSH_MAKE_INT2_OUTPUT();
 209               	.LM19:
 210 003c 0E94 0000 		call OSH_MAKE_INT2_OUTPUT
 211               	/* epilogue: frame size=0 */
 212 0040 0895      		ret
 213               	/* epilogue end (size=1) */
 214               	/* function OSH_MAKE_TEMP_CTL_OUTPUT size 3 (2) */
 217               	.global	OSH_SET_INT2_PIN
 219               	OSH_SET_INT2_PIN:
  59:sensor.c      **** }
  60:sensor.c      **** 
  61:sensor.c      **** void OSH_SET_INT2_PIN(void)
  62:sensor.c      **** {
 221               	.LM20:
 222               	/* prologue: frame size=0 */
 223               	/* prologue end (size=0) */
  63:sensor.c      **** 	* (volatile unsigned char *)(0x03 + 0x20) |= 1 << 6;
 225               	.LM21:
 226 0042 1E9A      		sbi 35-0x20,6
 227               	/* epilogue: frame size=0 */
 228 0044 0895      		ret
 229               	/* epilogue end (size=1) */
 230               	/* function OSH_SET_INT2_PIN size 2 (1) */
 233               	.global	OSH_SET_TEMP_CTL_PIN
 235               	OSH_SET_TEMP_CTL_PIN:
  64:sensor.c      **** }
  65:sensor.c      **** 
  66:sensor.c      **** void OSH_SET_TEMP_CTL_PIN(void)
  67:sensor.c      **** {
 237               	.LM22:
 238               	/* prologue: frame size=0 */
 239               	/* prologue end (size=0) */
  68:sensor.c      **** 	OSH_SET_INT2_PIN();
 241               	.LM23:
 242 0046 0E94 0000 		call OSH_SET_INT2_PIN
 243               	/* epilogue: frame size=0 */
 244 004a 0895      		ret
 245               	/* epilogue end (size=1) */
 246               	/* function OSH_SET_TEMP_CTL_PIN size 3 (2) */
 249               	.global	SensorTempStdControlStart
 251               	SensorTempStdControlStart:
  69:sensor.c      **** }
  70:sensor.c      **** 
  71:sensor.c      **** result_t SensorTempStdControlStart(void)
  72:sensor.c      **** {
 253               	.LM24:
 254               	/* prologue: frame size=0 */
 255 004c 1F93      		push r17
 256               	/* prologue end (size=1) */
 257               	.LBB3:
  73:sensor.c      **** 	{ uint8_t atomicState = AtomicStart();
 259               	.LM25:
 260 004e 0E94 0000 		call AtomicStart
 261 0052 182F      		mov r17,r24
  74:sensor.c      ****     {
  75:sensor.c      **** 		OSH_SET_TEMP_CTL_PIN();
 263               	.LM26:
 264 0054 0E94 0000 		call OSH_SET_TEMP_CTL_PIN
  76:sensor.c      **** 		OSH_MAKE_TEMP_CTL_OUTPUT();
 266               	.LM27:
 267 0058 0E94 0000 		call OSH_MAKE_TEMP_CTL_OUTPUT
  77:sensor.c      ****     }
  78:sensor.c      ****     AtomicEnd(atomicState); }
 269               	.LM28:
 270 005c 812F      		mov r24,r17
 271 005e 0E94 0000 		call AtomicEnd
 272               	.LBE3:
  79:sensor.c      **** 	return SUCCESS;
  80:sensor.c      **** }
 274               	.LM29:
 275 0062 81E0      		ldi r24,lo8(1)
 276 0064 90E0      		ldi r25,hi8(1)
 277               	/* epilogue: frame size=0 */
 278 0066 1F91      		pop r17
 279 0068 0895      		ret
 280               	/* epilogue end (size=2) */
 281               	/* function SensorTempStdControlStart size 15 (12) */
 287               	.global	SensorInternalTempADCGetData
 289               	SensorInternalTempADCGetData:
  81:sensor.c      **** 
  82:sensor.c      **** result_t SensorInternalTempADCGetData(void)
  83:sensor.c      **** {
 291               	.LM30:
 292               	/* prologue: frame size=0 */
 293               	/* prologue end (size=0) */
  84:sensor.c      **** 	unsigned char result;
  85:sensor.c      **** 	result = ADCGetData(OS_ADC_TEMP_PORT);
 295               	.LM31:
 296 006a 82E0      		ldi r24,lo8(2)
 297 006c 0E94 0000 		call ADCGetData
  86:sensor.c      **** 	
  87:sensor.c      **** 	return result;
  88:sensor.c      **** }
 299               	.LM32:
 300 0070 9927      		clr r25
 301               	/* epilogue: frame size=0 */
 302 0072 0895      		ret
 303               	/* epilogue end (size=1) */
 304               	/* function SensorInternalTempADCGetData size 5 (4) */
 307               	.global	OSH_MAKE_INT2_INPUT
 309               	OSH_MAKE_INT2_INPUT:
  89:sensor.c      **** 
  90:sensor.c      **** void OSH_MAKE_INT2_INPUT(void)
  91:sensor.c      **** {
 311               	.LM33:
 312               	/* prologue: frame size=0 */
 313               	/* prologue end (size=0) */
  92:sensor.c      **** 	* (volatile unsigned char *)(0x02 + 0x20) &= ~(1 << 6);
 315               	.LM34:
 316 0074 1698      		cbi 34-0x20,6
 317               	/* epilogue: frame size=0 */
 318 0076 0895      		ret
 319               	/* epilogue end (size=1) */
 320               	/* function OSH_MAKE_INT2_INPUT size 2 (1) */
 323               	.global	OSH_MAKE_TEMP_CTL_INPUT
 325               	OSH_MAKE_TEMP_CTL_INPUT:
  93:sensor.c      **** }
  94:sensor.c      **** 
  95:sensor.c      **** void OSH_MAKE_TEMP_CTL_INPUT(void)
  96:sensor.c      **** {
 327               	.LM35:
 328               	/* prologue: frame size=0 */
 329               	/* prologue end (size=0) */
  97:sensor.c      **** 	OSH_MAKE_INT2_INPUT();
 331               	.LM36:
 332 0078 0E94 0000 		call OSH_MAKE_INT2_INPUT
 333               	/* epilogue: frame size=0 */
 334 007c 0895      		ret
 335               	/* epilogue end (size=1) */
 336               	/* function OSH_MAKE_TEMP_CTL_INPUT size 3 (2) */
 339               	.global	OSH_CLR_INT2_PIN
 341               	OSH_CLR_INT2_PIN:
  98:sensor.c      **** }
  99:sensor.c      **** 
 100:sensor.c      **** void OSH_CLR_INT2_PIN(void)
 101:sensor.c      **** {
 343               	.LM37:
 344               	/* prologue: frame size=0 */
 345               	/* prologue end (size=0) */
 102:sensor.c      **** 	* (volatile unsigned char *)(0x03 + 0x20) &= ~(1 << 6);
 347               	.LM38:
 348 007e 1E98      		cbi 35-0x20,6
 349               	/* epilogue: frame size=0 */
 350 0080 0895      		ret
 351               	/* epilogue end (size=1) */
 352               	/* function OSH_CLR_INT2_PIN size 2 (1) */
 355               	.global	OSH_CLR_TEMP_CTL_PIN
 357               	OSH_CLR_TEMP_CTL_PIN:
 103:sensor.c      **** }
 104:sensor.c      **** 
 105:sensor.c      **** void OSH_CLR_TEMP_CTL_PIN(void)
 106:sensor.c      **** {
 359               	.LM39:
 360               	/* prologue: frame size=0 */
 361               	/* prologue end (size=0) */
 107:sensor.c      **** 	OSH_CLR_INT2_PIN();
 363               	.LM40:
 364 0082 0E94 0000 		call OSH_CLR_INT2_PIN
 365               	/* epilogue: frame size=0 */
 366 0086 0895      		ret
 367               	/* epilogue end (size=1) */
 368               	/* function OSH_CLR_TEMP_CTL_PIN size 3 (2) */
 371               	.global	OSH_MAKE_INT1_INPUT
 373               	OSH_MAKE_INT1_INPUT:
 108:sensor.c      **** }
 109:sensor.c      **** 
 110:sensor.c      **** void OSH_MAKE_INT1_INPUT(void)
 111:sensor.c      **** {

⌨️ 快捷键说明

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