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

📄 led.lst

📁 adhoc汇聚节点程序源代码(点对多点)——for atmega128
💻 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:
  65               	.global	LedInit
  67               	LedInit:
   1:led.c         **** /*
   2:led.c         **** ****************************************************************************                       
   3:led.c         **** *                        宁波市科技园区创业大厦六楼
   4:led.c         **** *              宁波中科集成电路设计中心  版权所有 Copyright 2005
   5:led.c         **** *
   6:led.c         **** *文件名:  led.c
   7:led.c         **** *程序员:
   8:led.c         **** *主要内容:LED Control
   9:led.c         **** *完成日期:2005.3.25
  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         **** 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         **** {
  69               	.LM1:
  70               	/* prologue: frame size=0 */
  71 0000 1F93      		push r17
  72               	/* prologue end (size=1) */
  73               	.LBB2:
  27:led.c         **** 	{ uint8_t atomicState = AtomicStart();
  75               	.LM2:
  76 0002 0E94 0000 		call AtomicStart
  77 0006 182F      		mov r17,r24
  28:led.c         ****     {
  29:led.c         **** 		LedsC_ledsOn = 0;
  79               	.LM3:
  80 0008 1092 0000 		sts LedsC_ledsOn,__zero_reg__
  30:led.c         **** 		OSH_SET_RED_LED_PIN();
  82               	.LM4:
  83 000c 0E94 0000 		call OSH_SET_RED_LED_PIN
  31:led.c         **** 		OSH_SET_YELLOW_LED_PIN();
  85               	.LM5:
  86 0010 0E94 0000 		call OSH_SET_YELLOW_LED_PIN
  32:led.c         **** 		OSH_SET_GREEN_LED_PIN();
  88               	.LM6:
  89 0014 0E94 0000 		call OSH_SET_GREEN_LED_PIN
  33:led.c         ****     }
  34:led.c         ****     AtomicEnd(atomicState); }
  91               	.LM7:
  92 0018 812F      		mov r24,r17
  93 001a 0E94 0000 		call AtomicEnd
  94               	.LBE2:
  35:led.c         **** 	return SUCCESS;
  36:led.c         **** }
  96               	.LM8:
  97 001e 81E0      		ldi r24,lo8(1)
  98 0020 90E0      		ldi r25,hi8(1)
  99               	/* epilogue: frame size=0 */
 100 0022 1F91      		pop r17
 101 0024 0895      		ret
 102               	/* epilogue end (size=2) */
 103               	/* function LedInit size 19 (16) */
 109               	.global	LedYellowOn
 111               	LedYellowOn:
  37:led.c         **** 
  38:led.c         **** result_t LedYellowOn(void)
  39:led.c         **** {
 113               	.LM9:
 114               	/* prologue: frame size=0 */
 115 0026 1F93      		push r17
 116               	/* prologue end (size=1) */
 117               	.LBB3:
  40:led.c         **** 	{ uint8_t atomicState = AtomicStart();
 119               	.LM10:
 120 0028 0E94 0000 		call AtomicStart
 121 002c 182F      		mov r17,r24
  41:led.c         ****     {
  42:led.c         **** 		OSH_CLR_YELLOW_LED_PIN();
 123               	.LM11:
 124 002e 0E94 0000 		call OSH_CLR_YELLOW_LED_PIN
  43:led.c         **** 		LedsC_ledsOn |= LedsC_YELLOW_BIT;
 126               	.LM12:
 127 0032 8091 0000 		lds r24,LedsC_ledsOn
 128 0036 8460      		ori r24,lo8(4)
 129 0038 8093 0000 		sts LedsC_ledsOn,r24
  44:led.c         ****     }
  45:led.c         ****     AtomicEnd(atomicState); }
 131               	.LM13:
 132 003c 812F      		mov r24,r17
 133 003e 0E94 0000 		call AtomicEnd
 134               	.LBE3:
  46:led.c         **** 	return SUCCESS;
  47:led.c         **** }
 136               	.LM14:
 137 0042 81E0      		ldi r24,lo8(1)
 138 0044 90E0      		ldi r25,hi8(1)
 139               	/* epilogue: frame size=0 */
 140 0046 1F91      		pop r17
 141 0048 0895      		ret
 142               	/* epilogue end (size=2) */
 143               	/* function LedYellowOn size 18 (15) */
 149               	.global	LedYellowOff
 151               	LedYellowOff:
  48:led.c         **** 
  49:led.c         **** result_t LedYellowOff(void)
  50:led.c         **** {
 153               	.LM15:
 154               	/* prologue: frame size=0 */
 155 004a 1F93      		push r17
 156               	/* prologue end (size=1) */
 157               	.LBB4:
  51:led.c         **** 	{ uint8_t atomicState = AtomicStart();
 159               	.LM16:
 160 004c 0E94 0000 		call AtomicStart
 161 0050 182F      		mov r17,r24
  52:led.c         ****     {
  53:led.c         **** 		OSH_SET_YELLOW_LED_PIN();
 163               	.LM17:
 164 0052 0E94 0000 		call OSH_SET_YELLOW_LED_PIN
  54:led.c         **** 		LedsC_ledsOn &= ~LedsC_YELLOW_BIT;
 166               	.LM18:
 167 0056 8091 0000 		lds r24,LedsC_ledsOn
 168 005a 8B7F      		andi r24,lo8(-5)
 169 005c 8093 0000 		sts LedsC_ledsOn,r24
  55:led.c         ****     }
  56:led.c         ****     AtomicEnd(atomicState); }
 171               	.LM19:
 172 0060 812F      		mov r24,r17
 173 0062 0E94 0000 		call AtomicEnd
 174               	.LBE4:
  57:led.c         **** 	return SUCCESS;
  58:led.c         **** }
 176               	.LM20:
 177 0066 81E0      		ldi r24,lo8(1)
 178 0068 90E0      		ldi r25,hi8(1)
 179               	/* epilogue: frame size=0 */
 180 006a 1F91      		pop r17
 181 006c 0895      		ret
 182               	/* epilogue end (size=2) */
 183               	/* function LedYellowOff size 18 (15) */
 189               	.global	LedYellowToggle
 191               	LedYellowToggle:
  59:led.c         **** 
  60:led.c         **** result_t LedYellowToggle(void)
  61:led.c         **** {
 193               	.LM21:
 194               	/* prologue: frame size=0 */
 195 006e 1F93      		push r17
 196 0070 CF93      		push r28
 197               	/* prologue end (size=2) */
 198               	.LBB5:
  62:led.c         **** 	result_t rval;
  63:led.c         **** 	{ uint8_t atomicState = AtomicStart();
 200               	.LM22:
 201 0072 0E94 0000 		call AtomicStart
 202 0076 182F      		mov r17,r24
  64:led.c         ****     {
  65:led.c         **** 		if (LedsC_ledsOn & LedsC_YELLOW_BIT) {
 204               	.LM23:
 205 0078 8091 0000 		lds r24,LedsC_ledsOn
 206 007c 82FF      		sbrs r24,2
 207 007e 03C0      		rjmp .L5
  66:led.c         **** 			rval = LedYellowOff();
 209               	.LM24:
 210 0080 0E94 0000 		call LedYellowOff
 211 0084 02C0      		rjmp .L7
 212               	.L5:
  67:led.c         ****         }
  68:led.c         **** 		else {
  69:led.c         **** 			rval = LedYellowOn();
 214               	.LM25:
 215 0086 0E94 0000 		call LedYellowOn
 216               	.L7:
 217 008a C82F      		mov r28,r24
  70:led.c         ****         }
  71:led.c         ****     }
  72:led.c         ****     AtomicEnd(atomicState); }
 219               	.LM26:
 220 008c 812F      		mov r24,r17
 221 008e 0E94 0000 		call AtomicEnd
 222               	.LBE5:
  73:led.c         **** 	return rval;
  74:led.c         **** }
 224               	.LM27:
 225 0092 8C2F      		mov r24,r28
 226 0094 9927      		clr r25
 227               	/* epilogue: frame size=0 */
 228 0096 CF91      		pop r28
 229 0098 1F91      		pop r17
 230 009a 0895      		ret
 231               	/* epilogue end (size=3) */
 232               	/* function LedYellowToggle size 23 (18) */
 239               	.global	LedRedOff
 241               	LedRedOff:
  75:led.c         **** 
  76:led.c         **** result_t LedRedOff(void)
  77:led.c         **** {
 243               	.LM28:
 244               	/* prologue: frame size=0 */
 245 009c 1F93      		push r17
 246               	/* prologue end (size=1) */
 247               	.LBB6:
  78:led.c         **** 	{ uint8_t atomicState = AtomicStart();
 249               	.LM29:
 250 009e 0E94 0000 		call AtomicStart
 251 00a2 182F      		mov r17,r24
  79:led.c         ****     {
  80:led.c         **** 		OSH_SET_RED_LED_PIN();
 253               	.LM30:
 254 00a4 0E94 0000 		call OSH_SET_RED_LED_PIN
  81:led.c         **** 		LedsC_ledsOn &= ~LedsC_RED_BIT;
 256               	.LM31:
 257 00a8 8091 0000 		lds r24,LedsC_ledsOn
 258 00ac 8E7F      		andi r24,lo8(-2)
 259 00ae 8093 0000 		sts LedsC_ledsOn,r24
  82:led.c         ****     }
  83:led.c         ****     AtomicEnd(atomicState); }
 261               	.LM32:
 262 00b2 812F      		mov r24,r17
 263 00b4 0E94 0000 		call AtomicEnd
 264               	.LBE6:
  84:led.c         **** 	return SUCCESS;
  85:led.c         **** }
 266               	.LM33:
 267 00b8 81E0      		ldi r24,lo8(1)
 268 00ba 90E0      		ldi r25,hi8(1)
 269               	/* epilogue: frame size=0 */
 270 00bc 1F91      		pop r17
 271 00be 0895      		ret
 272               	/* epilogue end (size=2) */
 273               	/* function LedRedOff size 18 (15) */
 279               	.global	LedRedOn
 281               	LedRedOn:
  86:led.c         **** 
  87:led.c         **** result_t LedRedOn(void)
  88:led.c         **** {
 283               	.LM34:

⌨️ 快捷键说明

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