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

📄 led.lst

📁 一个WSN的树状路由,对于那些学WSN路由方面的朋友应该有说帮助.
💻 LST
📖 第 1 页 / 共 2 页
字号:
   1               		.file	"led.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:
  84               	.global	LedInit
  86               	LedInit:
   1:led.c         **** /*
   2:led.c         **** ****************************************************************************
   3:led.c         **** *              宁波中科集成电路设计中心  版权所有 Copyright 2005
   4:led.c         **** *						http:\\www.nbicc.com
   5:led.c         **** *文件名:  led.c
   6:led.c         **** *程序员:  夏鹏		xpsonny@nbicc.com
   7:led.c         **** *主要内容:led驱动
   8:led.c         **** *
   9:led.c         **** *如有问题或BUG,请登录www.wsn.net.cn 提问或用邮件和作者联系
  10:led.c         **** ****************************************************************************
  11:led.c         **** */
  12:led.c         **** 
  13:led.c         **** #include "led.h"
  14:led.c         **** #include "os.h"
  15:led.c         **** #include "fun.h"
  16:led.c         **** 
  17:led.c         **** static uint8_t LedsC_ledsOn;
  18:led.c         **** 
  19:led.c         **** enum {
  20:led.c         **** 	LedsC_RED_BIT = 1, 
  21:led.c         **** 	LedsC_GREEN_BIT = 2, 
  22:led.c         **** 	LedsC_YELLOW_BIT = 4
  23:led.c         **** };
  24:led.c         **** 
  25:led.c         **** result_t LedInit(void)
  26:led.c         **** {
  88               	.LM1:
  89               	/* prologue: frame size=0 */
  90 0000 1F93      		push r17
  91               	/* prologue end (size=1) */
  92               	.LBB2:
  27:led.c         **** 	{ uint8_t atomicState = AtomicStart();
  94               	.LM2:
  95 0002 0E94 0000 		call AtomicStart
  96 0006 182F      		mov r17,r24
  28:led.c         ****     {
  29:led.c         **** 		LedsC_ledsOn = 0;
  98               	.LM3:
  99 0008 1092 0000 		sts LedsC_ledsOn,__zero_reg__
  30:led.c         **** 		OSH_SET_RED_LED_PIN();
 101               	.LM4:
 102 000c 0E94 0000 		call OSH_SET_RED_LED_PIN
  31:led.c         **** 		OSH_SET_YELLOW_LED_PIN();
 104               	.LM5:
 105 0010 0E94 0000 		call OSH_SET_YELLOW_LED_PIN
  32:led.c         **** 		OSH_SET_GREEN_LED_PIN();
 107               	.LM6:
 108 0014 0E94 0000 		call OSH_SET_GREEN_LED_PIN
  33:led.c         ****     }
  34:led.c         ****     AtomicEnd(atomicState); }
 110               	.LM7:
 111 0018 812F      		mov r24,r17
 112 001a 0E94 0000 		call AtomicEnd
 113               	.LBE2:
  35:led.c         **** 	return SUCCESS;
  36:led.c         **** }
 115               	.LM8:
 116 001e 81E0      		ldi r24,lo8(1)
 117 0020 90E0      		ldi r25,hi8(1)
 118               	/* epilogue: frame size=0 */
 119 0022 1F91      		pop r17
 120 0024 0895      		ret
 121               	/* epilogue end (size=2) */
 122               	/* function LedInit size 19 (16) */
 128               	.global	LedYellowOn
 130               	LedYellowOn:
  37:led.c         **** 
  38:led.c         **** result_t LedYellowOn(void)
  39:led.c         **** {
 132               	.LM9:
 133               	/* prologue: frame size=0 */
 134 0026 1F93      		push r17
 135               	/* prologue end (size=1) */
 136               	.LBB3:
  40:led.c         **** 	{ uint8_t atomicState = AtomicStart();
 138               	.LM10:
 139 0028 0E94 0000 		call AtomicStart
 140 002c 182F      		mov r17,r24
  41:led.c         ****     {
  42:led.c         **** 		OSH_CLR_YELLOW_LED_PIN();
 142               	.LM11:
 143 002e 0E94 0000 		call OSH_CLR_YELLOW_LED_PIN
  43:led.c         **** 		LedsC_ledsOn |= LedsC_YELLOW_BIT;
 145               	.LM12:
 146 0032 8091 0000 		lds r24,LedsC_ledsOn
 147 0036 8460      		ori r24,lo8(4)
 148 0038 8093 0000 		sts LedsC_ledsOn,r24
  44:led.c         ****     }
  45:led.c         ****     AtomicEnd(atomicState); }
 150               	.LM13:
 151 003c 812F      		mov r24,r17
 152 003e 0E94 0000 		call AtomicEnd
 153               	.LBE3:
  46:led.c         **** 	return SUCCESS;
  47:led.c         **** }
 155               	.LM14:
 156 0042 81E0      		ldi r24,lo8(1)
 157 0044 90E0      		ldi r25,hi8(1)
 158               	/* epilogue: frame size=0 */
 159 0046 1F91      		pop r17
 160 0048 0895      		ret
 161               	/* epilogue end (size=2) */
 162               	/* function LedYellowOn size 18 (15) */
 168               	.global	LedYellowOff
 170               	LedYellowOff:
  48:led.c         **** 
  49:led.c         **** result_t LedYellowOff(void)
  50:led.c         **** {
 172               	.LM15:
 173               	/* prologue: frame size=0 */
 174 004a 1F93      		push r17
 175               	/* prologue end (size=1) */
 176               	.LBB4:
  51:led.c         **** 	{ uint8_t atomicState = AtomicStart();
 178               	.LM16:
 179 004c 0E94 0000 		call AtomicStart
 180 0050 182F      		mov r17,r24
  52:led.c         ****     {
  53:led.c         **** 		OSH_SET_YELLOW_LED_PIN();
 182               	.LM17:
 183 0052 0E94 0000 		call OSH_SET_YELLOW_LED_PIN
  54:led.c         **** 		LedsC_ledsOn &= ~LedsC_YELLOW_BIT;
 185               	.LM18:
 186 0056 8091 0000 		lds r24,LedsC_ledsOn
 187 005a 8B7F      		andi r24,lo8(-5)
 188 005c 8093 0000 		sts LedsC_ledsOn,r24
  55:led.c         ****     }
  56:led.c         ****     AtomicEnd(atomicState); }
 190               	.LM19:
 191 0060 812F      		mov r24,r17
 192 0062 0E94 0000 		call AtomicEnd
 193               	.LBE4:
  57:led.c         **** 	return SUCCESS;
  58:led.c         **** }
 195               	.LM20:
 196 0066 81E0      		ldi r24,lo8(1)
 197 0068 90E0      		ldi r25,hi8(1)
 198               	/* epilogue: frame size=0 */
 199 006a 1F91      		pop r17
 200 006c 0895      		ret
 201               	/* epilogue end (size=2) */
 202               	/* function LedYellowOff size 18 (15) */
 208               	.global	LedYellowToggle
 210               	LedYellowToggle:
  59:led.c         **** 
  60:led.c         **** result_t LedYellowToggle(void)
  61:led.c         **** {
 212               	.LM21:
 213               	/* prologue: frame size=0 */
 214 006e 1F93      		push r17
 215 0070 CF93      		push r28
 216               	/* prologue end (size=2) */
 217               	.LBB5:
  62:led.c         **** 	result_t rval;
  63:led.c         **** 	{ uint8_t atomicState = AtomicStart();
 219               	.LM22:
 220 0072 0E94 0000 		call AtomicStart
 221 0076 182F      		mov r17,r24
  64:led.c         ****     {
  65:led.c         **** 		if (LedsC_ledsOn & LedsC_YELLOW_BIT) {
 223               	.LM23:
 224 0078 8091 0000 		lds r24,LedsC_ledsOn
 225 007c 82FF      		sbrs r24,2
 226 007e 03C0      		rjmp .L5
  66:led.c         **** 			rval = LedYellowOff();
 228               	.LM24:
 229 0080 0E94 0000 		call LedYellowOff
 230 0084 02C0      		rjmp .L7
 231               	.L5:
  67:led.c         ****         }
  68:led.c         **** 		else {
  69:led.c         **** 			rval = LedYellowOn();
 233               	.LM25:
 234 0086 0E94 0000 		call LedYellowOn
 235               	.L7:
 236 008a C82F      		mov r28,r24
  70:led.c         ****         }
  71:led.c         ****     }
  72:led.c         ****     AtomicEnd(atomicState); }
 238               	.LM26:
 239 008c 812F      		mov r24,r17
 240 008e 0E94 0000 		call AtomicEnd
 241               	.LBE5:
  73:led.c         **** 	return rval;
  74:led.c         **** }
 243               	.LM27:
 244 0092 8C2F      		mov r24,r28
 245 0094 9927      		clr r25
 246               	/* epilogue: frame size=0 */
 247 0096 CF91      		pop r28
 248 0098 1F91      		pop r17
 249 009a 0895      		ret
 250               	/* epilogue end (size=3) */
 251               	/* function LedYellowToggle size 23 (18) */
 258               	.global	LedRedOff
 260               	LedRedOff:
  75:led.c         **** 
  76:led.c         **** result_t LedRedOff(void)
  77:led.c         **** {
 262               	.LM28:
 263               	/* prologue: frame size=0 */
 264 009c 1F93      		push r17
 265               	/* prologue end (size=1) */
 266               	.LBB6:
  78:led.c         **** 	{ uint8_t atomicState = AtomicStart();
 268               	.LM29:
 269 009e 0E94 0000 		call AtomicStart
 270 00a2 182F      		mov r17,r24
  79:led.c         ****     {
  80:led.c         **** 		OSH_SET_RED_LED_PIN();
 272               	.LM30:
 273 00a4 0E94 0000 		call OSH_SET_RED_LED_PIN
  81:led.c         **** 		LedsC_ledsOn &= ~LedsC_RED_BIT;
 275               	.LM31:
 276 00a8 8091 0000 		lds r24,LedsC_ledsOn
 277 00ac 8E7F      		andi r24,lo8(-2)
 278 00ae 8093 0000 		sts LedsC_ledsOn,r24
  82:led.c         ****     }
  83:led.c         ****     AtomicEnd(atomicState); }
 280               	.LM32:
 281 00b2 812F      		mov r24,r17
 282 00b4 0E94 0000 		call AtomicEnd
 283               	.LBE6:
  84:led.c         **** 	return SUCCESS;
  85:led.c         **** }
 285               	.LM33:
 286 00b8 81E0      		ldi r24,lo8(1)
 287 00ba 90E0      		ldi r25,hi8(1)
 288               	/* epilogue: frame size=0 */
 289 00bc 1F91      		pop r17
 290 00be 0895      		ret
 291               	/* epilogue end (size=2) */
 292               	/* function LedRedOff size 18 (15) */
 298               	.global	LedRedOn
 300               	LedRedOn:
  86:led.c         **** 
  87:led.c         **** result_t LedRedOn(void)
  88:led.c         **** {
 302               	.LM34:
 303               	/* prologue: frame size=0 */

⌨️ 快捷键说明

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