keyscan.lst

来自「cs5460a做功率表用 cs5460a做功率表用 cs5460a做功率表」· LST 代码 · 共 372 行 · 第 1/2 页

LST
372
字号
  66:driver/KeyScan.c ****             KeyCount++;            
 240               	.LM23:
 241 0098 2091 0000 		lds r18,KeyCount.2
 242 009c 822F      		mov r24,r18
 243 009e 8F5F      		subi r24,lo8(-(1))
 244 00a0 8093 0000 		sts KeyCount.2,r24
  67:driver/KeyScan.c ****             if (KeyCount >= 250)     //按键时间大于250MS吗?
 246               	.LM24:
 247 00a4 8A3F      		cpi r24,lo8(-6)
 248 00a6 B8F0      		brlo .L16
  68:driver/KeyScan.c ****               {
  69:driver/KeyScan.c ****                  if (TaskID)
 250               	.LM25:
 251 00a8 8091 0000 		lds r24,TaskID
 252 00ac 8823      		tst r24
 253 00ae 11F0      		breq .L17
  70:driver/KeyScan.c ****                    {
  71:driver/KeyScan.c ****                      SaveFunData();     //常按保存数据
 255               	.LM26:
 256 00b0 00D0      		rcall SaveFunData
 257               	.L18:
  72:driver/KeyScan.c ****                      while(1);
 259               	.LM27:
 260 00b2 FFCF      		rjmp .L18
 261               	.L17:
  73:driver/KeyScan.c ****                    }
  74:driver/KeyScan.c ****                  else
  75:driver/KeyScan.c ****                    {
  76:driver/KeyScan.c ****                      KeyVal = 6;
 263               	.LM28:
 264 00b4 86E0      		ldi r24,lo8(6)
 265 00b6 8093 0000 		sts KeyVal,r24
  77:driver/KeyScan.c ****                      KeyCount = 0;        //常按进入功能参数设定
 267               	.LM29:
 268 00ba 1092 0000 		sts KeyCount.2,__zero_reg__
  78:driver/KeyScan.c ****                      IO_HighAlarm = ON;
 270               	.LM30:
 271 00be 939A      		sbi 50-0x20,3
  79:driver/KeyScan.c **** 					 fH_Alarm = OFF;  //关闭报警		
 273               	.LM31:
 274 00c0 1092 0000 		sts fH_Alarm,__zero_reg__
  80:driver/KeyScan.c **** 					 L_Alarm  = ON;
 276               	.LM32:
 277 00c4 81E0      		ldi r24,lo8(1)
 278 00c6 90E0      		ldi r25,hi8(1)
 279 00c8 9093 0000 		sts (L_Alarm)+1,r25
 280 00cc 8093 0000 		sts L_Alarm,r24
  81:driver/KeyScan.c **** 					 fL_Alarm  = OFF;                  
 282               	.LM33:
 283 00d0 1092 0000 		sts fL_Alarm,__zero_reg__
  82:driver/KeyScan.c ****                      break;                                 
 285               	.LM34:
 286 00d4 0895      		ret
 287               	.L16:
  83:driver/KeyScan.c ****                    }
  84:driver/KeyScan.c ****                }
  85:driver/KeyScan.c ****          
  86:driver/KeyScan.c ****             else if ((KeyCount >= 15) && (OldKeyCode != 0x04))
 289               	.LM35:
 290 00d6 8F30      		cpi r24,lo8(15)
 291 00d8 70F0      		brlo .L29
 292 00da 3430      		cpi r19,lo8(4)
 293 00dc 61F0      		breq .L29
  87:driver/KeyScan.c ****               {
  88:driver/KeyScan.c ****                  WatchKeyTime.WaitTime = _60S; 
 295               	.LM36:
 296 00de 80E7      		ldi r24,lo8(6000)
 297 00e0 97E1      		ldi r25,hi8(6000)
 298 00e2 9093 0000 		sts (WatchKeyTime+1)+1,r25
 299 00e6 8093 0000 		sts WatchKeyTime+1,r24
  89:driver/KeyScan.c ****                  if (fDOKEY) 
 301               	.LM37:
 302 00ea 8091 0000 		lds r24,fDOKEY
 303 00ee 8823      		tst r24
 304 00f0 29F0      		breq .L23
  90:driver/KeyScan.c **** 				    {
  91:driver/KeyScan.c ****                        KeyCount = 0;
 306               	.LM38:
 307 00f2 1092 0000 		sts KeyCount.2,__zero_reg__
 308               	.L29:
  92:driver/KeyScan.c ****                        KeyVal = 0;
 310               	.LM39:
 311 00f6 1092 0000 		sts KeyVal,__zero_reg__
 312 00fa 0895      		ret
 313               	.L23:
  93:driver/KeyScan.c ****                     } 
  94:driver/KeyScan.c **** 			     else 
  95:driver/KeyScan.c **** 				    {
  96:driver/KeyScan.c ****                        KeyCount -= 15;
 315               	.LM40:
 316 00fc 2E50      		subi r18,lo8(-(-14))
 317 00fe 2093 0000 		sts KeyCount.2,r18
  97:driver/KeyScan.c ****                        KeyVal = OldKeyCode;
 319               	.LM41:
 320 0102 3093 0000 		sts KeyVal,r19
 321 0106 0895      		ret
 322               	.L15:
  98:driver/KeyScan.c ****                      }                
  99:driver/KeyScan.c ****                }         
 100:driver/KeyScan.c ****             else 
 101:driver/KeyScan.c **** 		      { KeyVal = 0; }
 102:driver/KeyScan.c ****           }
 103:driver/KeyScan.c ****         else 
 104:driver/KeyScan.c **** 		  {
 105:driver/KeyScan.c ****             KeyState = 0;    //按键松开
 324               	.LM42:
 325 0108 1092 0000 		sts KeyState.0,__zero_reg__
 106:driver/KeyScan.c ****             KeyCount = 0;
 327               	.LM43:
 328 010c 1092 0000 		sts KeyCount.2,__zero_reg__
 107:driver/KeyScan.c ****             fDOKEY = 0;            
 330               	.LM44:
 331 0110 1092 0000 		sts fDOKEY,__zero_reg__
 332 0114 F0CF      		rjmp .L29
 333               	/* epilogue: frame size=0 */
 334               	/* epilogue: noreturn */
 335               	/* epilogue end (size=0) */
 336               	/* function ScanKey_MainLoop size 143 (143) */
 344               	.Lscope0:
 346               	.global	WatchKey
 348               	WatchKey:
 108:driver/KeyScan.c ****             KeyVal = 0;
 109:driver/KeyScan.c ****            }         
 110:driver/KeyScan.c ****         break; 
 111:driver/KeyScan.c ****         
 112:driver/KeyScan.c ****         default:
 113:driver/KeyScan.c ****         break; 
 114:driver/KeyScan.c ****       }
 115:driver/KeyScan.c ****     }
 116:driver/KeyScan.c ****  }
 117:driver/KeyScan.c **** //--------------------------------------------------
 118:driver/KeyScan.c **** void   WatchKey(void)
 119:driver/KeyScan.c **** {
 350               	.LM45:
 351               	/* prologue: frame size=0 */
 352               	/* prologue end (size=0) */
 120:driver/KeyScan.c **** 		if ((TaskID) && (WatchKeyTime.fGetTime))
 354               	.LM46:
 355 0116 8091 0000 		lds r24,TaskID
 356 011a 8823      		tst r24
 357 011c 21F0      		breq .L31
 359               	.LM47:
 360 011e 8091 0000 		lds r24,WatchKeyTime
 361 0122 8111      		cpse r24,__zero_reg__
 362               	.L32:
 121:driver/KeyScan.c **** 		while (1);
 364               	.LM48:
 365 0124 FFCF      		rjmp .L32
 366               	.L31:
 367 0126 0895      		ret
 368               	/* epilogue: frame size=0 */
 369               	/* epilogue: noreturn */
 370               	/* epilogue end (size=0) */
 371               	/* function WatchKey size 10 (10) */
 373               	.Lscope1:
 374               		.comm KeyVal,1,1
 378               		.text
 380               	Letext:
 381               	/* File "driver/KeyScan.c": code  153 = 0x0099 ( 153), prologues   0, epilogues   0 */
DEFINED SYMBOLS
                            *ABS*:00000000 KeyScan.c
C:\DOCUME~1\zgh\LOCALS~1\Temp/ccG2aaaa.s:3      *ABS*:0000003f __SREG__
C:\DOCUME~1\zgh\LOCALS~1\Temp/ccG2aaaa.s:4      *ABS*:0000003e __SP_H__
C:\DOCUME~1\zgh\LOCALS~1\Temp/ccG2aaaa.s:5      *ABS*:0000003d __SP_L__
C:\DOCUME~1\zgh\LOCALS~1\Temp/ccG2aaaa.s:6      *ABS*:00000000 __tmp_reg__
C:\DOCUME~1\zgh\LOCALS~1\Temp/ccG2aaaa.s:7      *ABS*:00000001 __zero_reg__
C:\DOCUME~1\zgh\LOCALS~1\Temp/ccG2aaaa.s:106    .bss:00000000 WatchKeyTime
C:\DOCUME~1\zgh\LOCALS~1\Temp/ccG2aaaa.s:112    .data:00000000 KeyScan
                             .bss:00000003 KeyState.0
C:\DOCUME~1\zgh\LOCALS~1\Temp/ccG2aaaa.s:115    .bss:00000004 OldKeyCode.1
C:\DOCUME~1\zgh\LOCALS~1\Temp/ccG2aaaa.s:116    .bss:00000005 KeyCount.2
C:\DOCUME~1\zgh\LOCALS~1\Temp/ccG2aaaa.s:122    .text:00000000 ScanKey_MainLoop
                            *COM*:00000001 KeyVal
C:\DOCUME~1\zgh\LOCALS~1\Temp/ccG2aaaa.s:348    .text:00000116 WatchKey
C:\DOCUME~1\zgh\LOCALS~1\Temp/ccG2aaaa.s:380    .text:00000128 Letext

UNDEFINED SYMBOLS
__do_copy_data
__do_clear_bss
TaskID
SaveFunData
fH_Alarm
L_Alarm
fL_Alarm
fDOKEY

⌨️ 快捷键说明

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