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

📄 yc_play.lst

📁 AVRX实时操作无线遥控LED变化控制完整源码
💻 LST
📖 第 1 页 / 共 3 页
字号:
   1               		.file	"YC_Play.c"
   2               		.arch atmega8
   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:
  77               	.global	bCurPlayIdx
  78               		.data
  81               	bCurPlayIdx:
  82 0000 01        		.byte	1
  83               	.global	WASHVAL
  86               	WASHVAL:
  87 0001 0008      		.word	2048
  88               		.text
  93               	.global	PlayStaticAsh
  95               	PlayStaticAsh:
   1:YC_Play.c     **** /*===========================================================================
   2:YC_Play.c     **** 	【项目名】:		遥控渐变选色程序
   3:YC_Play.c     **** 	【文件名】: 	YC_Play
   4:YC_Play.c     **** 	【名  称】:		主文件
   5:YC_Play.c     **** 	【版  本】:		1.0
   6:YC_Play.c     **** 	【组  织】:		深圳市红绿蓝光电科技有限公司研发中心
   7:YC_Play.c     **** 	【作  者】:		周盛志
   8:YC_Play.c     **** 	【E-mail】:		zhounanxu@163.com
   9:YC_Play.c     **** ===========================================================================*/
  10:YC_Play.c     **** #include <avrx/avrx.h>
  11:YC_Play.c     **** #include <avr/eeprom.h>
  12:YC_Play.c     **** 
  13:YC_Play.c     **** #include "YC_MainFile.h"
  14:YC_Play.c     **** #include "Hardware.h"
  15:YC_Play.c     **** #include "YC_Play.h"
  16:YC_Play.c     **** 
  17:YC_Play.c     **** BYTE bLastPlayIdx EEPROM;
  18:YC_Play.c     **** WORD bColorAsh[5][3] EEPROM;
  19:YC_Play.c     **** 
  20:YC_Play.c     **** WORD WASHVAL=2048;     //灰度值
  21:YC_Play.c     **** WORD wCurRedAsh, wCurGreAsh, wCurBluAsh;
  22:YC_Play.c     **** WORD wCurRedAshVal, wCurGreAshVal, wCurBluAshVal;
  23:YC_Play.c     **** BYTE bCurPlayIdx = 1;
  24:YC_Play.c     **** 
  25:YC_Play.c     **** struct WORKFLAG 
  26:YC_Play.c     ****     {  
  27:YC_Play.c     ****     BYTE bColseWork;    //关机标志,1=关机,0=开机;
  28:YC_Play.c     ****     BYTE bKeyUpt;       //按键状态标志,1=有键按下,0=无键按下;
  29:YC_Play.c     **** 	BYTE bAshExit;      //灰度播放快速退出标志,1=有效,0=无效;
  30:YC_Play.c     ****     BYTE bSaveKeyC;     //保存按键C按下标记,1=有效,0=无效;
  31:YC_Play.c     ****     BYTE bPlayAshOld;   //上一节目是否灰度播放标志.
  32:YC_Play.c     ****     }WorkFlag;  
  33:YC_Play.c     **** 
  34:YC_Play.c     **** /*=====================================================================
  35:YC_Play.c     **** 【功  能】:	重迭1/2周期RGB三角波渐变.
  36:YC_Play.c     **** 【名  称】:	Play_Gradual(BYTE bGradSpeeds)
  37:YC_Play.c     **** 【日  期】:	2006年8月30日
  38:YC_Play.c     **** =====================================================================*/
  39:YC_Play.c     **** void  Play_Gradual(BYTE bGradSpeeds)
  40:YC_Play.c     **** {
  41:YC_Play.c     ****     WORD wi, wj;
  42:YC_Play.c     ****     WorkFlag.bPlayAshOld = 1; 
  43:YC_Play.c     ****     for(wi = 0; wi < WASHVAL; wi++)
  44:YC_Play.c     ****    	    {
  45:YC_Play.c     ****         if(WorkFlag.bAshExit == 1)
  46:YC_Play.c     **** 	        {WorkFlag.bAshExit = 0;return;}
  47:YC_Play.c     ****    	    for(wj=0; wj<bGradSpeeds; wj++)
  48:YC_Play.c     ****    		    {
  49:YC_Play.c     **** 		    wCurRedAsh = wi;
  50:YC_Play.c     **** 		    wCurGreAsh = WASHVAL-wi;
  51:YC_Play.c     **** 		    wCurBluAsh = 0;
  52:YC_Play.c     **** 		    PlayStaticAsh(wCurRedAsh, wCurGreAsh, wCurBluAsh);
  53:YC_Play.c     ****    		    }
  54:YC_Play.c     ****    	    }
  55:YC_Play.c     ****      
  56:YC_Play.c     ****     for(wi=0; wi<WASHVAL; wi++)
  57:YC_Play.c     ****    	    {
  58:YC_Play.c     **** 	    if(WorkFlag.bAshExit == 1)
  59:YC_Play.c     **** 	        {WorkFlag.bAshExit = 0;return;}
  60:YC_Play.c     ****    	    for(wj=0; wj<bGradSpeeds; wj++)
  61:YC_Play.c     ****    		    {
  62:YC_Play.c     **** 		    wCurRedAsh = WASHVAL-wi;
  63:YC_Play.c     **** 		    wCurGreAsh = 0;
  64:YC_Play.c     **** 		    wCurBluAsh = wi;
  65:YC_Play.c     **** 		    PlayStaticAsh(wCurRedAsh, wCurGreAsh, wCurBluAsh);
  66:YC_Play.c     ****    		    }
  67:YC_Play.c     ****    	    }
  68:YC_Play.c     ****   
  69:YC_Play.c     ****     for(wi=0; wi<WASHVAL; wi++)
  70:YC_Play.c     ****    	    {
  71:YC_Play.c     ****         if(WorkFlag.bAshExit == 1)
  72:YC_Play.c     **** 	        {WorkFlag.bAshExit = 0;return;} 
  73:YC_Play.c     ****    	for(wj=0; wj<bGradSpeeds; wj++)
  74:YC_Play.c     ****    		{
  75:YC_Play.c     **** 		wCurRedAsh = 0;
  76:YC_Play.c     **** 		wCurGreAsh = wi;
  77:YC_Play.c     **** 		wCurBluAsh = WASHVAL-wi;
  78:YC_Play.c     **** 		PlayStaticAsh(wCurRedAsh, wCurGreAsh, wCurBluAsh);
  79:YC_Play.c     ****    		}
  80:YC_Play.c     ****    	}
  81:YC_Play.c     **** }
  82:YC_Play.c     **** 
  83:YC_Play.c     **** /*=====================================================================
  84:YC_Play.c     **** 【功  能】:	播放某一RGB灰度颜色
  85:YC_Play.c     **** 【名  称】:	PlayStaticAsh(BYTE bRedAsh, BYTE bGreenAsh, BYTE bBlueAsh)
  86:YC_Play.c     **** 【日  期】:	2006年8月30日
  87:YC_Play.c     **** =====================================================================*/
  88:YC_Play.c     **** void  PlayStaticAsh(WORD wRedAsh, WORD wGreenAsh, WORD wBlueAsh)
  89:YC_Play.c     **** {
  97               	.LM1:
  98               	/* prologue: frame size=0 */
  99               	/* prologue end (size=0) */
  90:YC_Play.c     ****     WORD wi;
  91:YC_Play.c     ****     for(wi=0; wi<WASHVAL; wi++)
 101               	.LM2:
 102 0000 20E0      		ldi r18,lo8(0)
 103 0002 30E0      		ldi r19,hi8(0)
 104 0004 E091 0000 		lds r30,WASHVAL
 105 0008 F091 0000 		lds r31,(WASHVAL)+1
 106               	.L14:
 108               	.LM3:
 109 000c 2E17      		cp r18,r30
 110 000e 3F07      		cpc r19,r31
 111 0010 A8F4      		brsh .L13
  92:YC_Play.c     ****         {	
  93:YC_Play.c     ****         if(wi < wRedAsh)
 113               	.LM4:
 114 0012 2817      		cp r18,r24
 115 0014 3907      		cpc r19,r25
 116 0016 10F4      		brsh .L5
  94:YC_Play.c     ****             ON_Red();
 118               	.LM5:
 119 0018 9598      		cbi 50-0x20,5
 120 001a 01C0      		rjmp .L6
 121               	.L5:
  95:YC_Play.c     ****         else
  96:YC_Play.c     ****             OFF_Red();
 123               	.LM6:
 124 001c 959A      		sbi 50-0x20,5
 125               	.L6:
  97:YC_Play.c     **** 
  98:YC_Play.c     ****         if(wi < wGreenAsh)
 127               	.LM7:
 128 001e 2617      		cp r18,r22
 129 0020 3707      		cpc r19,r23
 130 0022 10F4      		brsh .L7
  99:YC_Play.c     ****             ON_Gre();
 132               	.LM8:
 133 0024 9698      		cbi 50-0x20,6
 134 0026 01C0      		rjmp .L8
 135               	.L7:
 100:YC_Play.c     ****         else
 101:YC_Play.c     ****             OFF_Gre();
 137               	.LM9:
 138 0028 969A      		sbi 50-0x20,6
 139               	.L8:
 102:YC_Play.c     **** 
 103:YC_Play.c     ****         if(wi < wBlueAsh) 
 141               	.LM10:
 142 002a 2417      		cp r18,r20
 143 002c 3507      		cpc r19,r21
 144 002e 10F4      		brsh .L9
 104:YC_Play.c     ****             ON_Blu();	
 146               	.LM11:
 147 0030 9798      		cbi 50-0x20,7
 148 0032 01C0      		rjmp .L4
 149               	.L9:
 105:YC_Play.c     ****         else
 106:YC_Play.c     ****             OFF_Blu();
 151               	.LM12:
 152 0034 979A      		sbi 50-0x20,7
 153               	.L4:
 155               	.LM13:
 156 0036 2F5F      		subi r18,lo8(-(1))
 157 0038 3F4F      		sbci r19,hi8(-(1))
 158 003a E8CF      		rjmp .L14
 159               	.L13:
 160 003c 0895      		ret
 161               	/* epilogue: frame size=0 */
 162               	/* epilogue: noreturn */
 163               	/* epilogue end (size=0) */
 164               	/* function PlayStaticAsh size 31 (31) */
 169               	.Lscope0:
 172               	.global	Play_Gradual
 174               	Play_Gradual:
 176               	.LM14:
 177               	/* prologue: frame size=0 */
 178 003e FF92      		push r15
 179 0040 0F93      		push r16
 180 0042 1F93      		push r17
 181 0044 CF93      		push r28
 182 0046 DF93      		push r29
 183               	/* prologue end (size=5) */
 184 0048 F82E      		mov r15,r24
 186               	.LM15:
 187 004a 81E0      		ldi r24,lo8(1)
 188 004c 8093 0000 		sts WorkFlag+4,r24
 190               	.LM16:
 191 0050 00E0      		ldi r16,lo8(0)
 192 0052 10E0      		ldi r17,hi8(0)
 193               	.L54:
 195               	.LM17:
 196 0054 8091 0000 		lds r24,WASHVAL
 197 0058 9091 0000 		lds r25,(WASHVAL)+1
 198 005c 0817      		cp r16,r24
 199 005e 1907      		cpc r17,r25
 200 0060 30F5      		brsh .L44
 202               	.LM18:
 203 0062 8091 0000 		lds r24,WorkFlag+2
 204 0066 8130      		cpi r24,lo8(1)
 205 0068 09F4      		brne .+2
 206 006a 5BC0      		rjmp .L56
 208               	.LM19:
 209 006c 8F2D      		mov r24,r15
 210 006e 9927      		clr r25
 211 0070 0097      		sbiw r24,0
 212 0072 D1F0      		breq .L46
 213 0074 EC01      		movw r28,r24
 214               	.L23:
 216               	.LM20:
 217 0076 1093 0000 		sts (wCurRedAsh)+1,r17
 218 007a 0093 0000 		sts wCurRedAsh,r16
 220               	.LM21:
 221 007e 8091 0000 		lds r24,WASHVAL
 222 0082 9091 0000 		lds r25,(WASHVAL)+1
 223 0086 801B      		sub r24,r16
 224 0088 910B      		sbc r25,r17
 225 008a 9093 0000 		sts (wCurGreAsh)+1,r25
 226 008e 8093 0000 		sts wCurGreAsh,r24
 228               	.LM22:
 229 0092 1092 0000 		sts (wCurBluAsh)+1,__zero_reg__
 230 0096 1092 0000 		sts wCurBluAsh,__zero_reg__
 232               	.LM23:
 233 009a 40E0      		ldi r20,lo8(0)
 234 009c 50E0      		ldi r21,hi8(0)
 235 009e BC01      		movw r22,r24
 236 00a0 C801      		movw r24,r16
 237 00a2 AEDF      		rcall PlayStaticAsh
 239               	.LM24:
 240 00a4 2197      		sbiw r28,1
 241 00a6 39F7      		brne .L23
 242               	.L46:
 244               	.LM25:
 245 00a8 0F5F      		subi r16,lo8(-(1))
 246 00aa 1F4F      		sbci r17,hi8(-(1))
 247 00ac D3CF      		rjmp .L54
 248               	.L44:
 250               	.LM26:
 251 00ae 00E0      		ldi r16,lo8(0)
 252 00b0 10E0      		ldi r17,hi8(0)
 253               	.L55:
 254 00b2 8091 0000 		lds r24,WASHVAL
 255 00b6 9091 0000 		lds r25,(WASHVAL)+1
 256 00ba 0817      		cp r16,r24
 257 00bc 1907      		cpc r17,r25
 258 00be 20F5      		brsh .L48
 260               	.LM27:
 261 00c0 8091 0000 		lds r24,WorkFlag+2
 262 00c4 8130      		cpi r24,lo8(1)
 263 00c6 69F1      		breq .L56
 265               	.LM28:
 266 00c8 8F2D      		mov r24,r15
 267 00ca 9927      		clr r25
 268 00cc 0097      		sbiw r24,0
 269 00ce C9F0      		breq .L50
 270 00d0 EC01      		movw r28,r24
 271               	.L32:
 273               	.LM29:
 274 00d2 8091 0000 		lds r24,WASHVAL
 275 00d6 9091 0000 		lds r25,(WASHVAL)+1
 276 00da 801B      		sub r24,r16
 277 00dc 910B      		sbc r25,r17
 278 00de 9093 0000 		sts (wCurRedAsh)+1,r25
 279 00e2 8093 0000 		sts wCurRedAsh,r24
 281               	.LM30:
 282 00e6 1092 0000 		sts (wCurGreAsh)+1,__zero_reg__
 283 00ea 1092 0000 		sts wCurGreAsh,__zero_reg__
 285               	.LM31:
 286 00ee 1093 0000 		sts (wCurBluAsh)+1,r17
 287 00f2 0093 0000 		sts wCurBluAsh,r16
 289               	.LM32:
 290 00f6 A801      		movw r20,r16
 291 00f8 60E0      		ldi r22,lo8(0)
 292 00fa 70E0      		ldi r23,hi8(0)
 293 00fc 81DF      		rcall PlayStaticAsh
 295               	.LM33:
 296 00fe 2197      		sbiw r28,1
 297 0100 41F7      		brne .L32
 298               	.L50:
 300               	.LM34:
 301 0102 0F5F      		subi r16,lo8(-(1))
 302 0104 1F4F      		sbci r17,hi8(-(1))
 303 0106 D5CF      		rjmp .L55
 304               	.L48:
 306               	.LM35:
 307 0108 00E0      		ldi r16,lo8(0)
 308 010a 10E0      		ldi r17,hi8(0)
 309 010c 8091 0000 		lds r24,WASHVAL
 310 0110 9091 0000 		lds r25,(WASHVAL)+1
 311 0114 0817      		cp r16,r24
 312 0116 1907      		cpc r17,r25
 313 0118 70F5      		brsh .L15
 314               	.L42:
 316               	.LM36:
 317 011a 8091 0000 		lds r24,WorkFlag+2
 318 011e 8130      		cpi r24,lo8(1)
 319 0120 19F4      		brne .L37
 320               	.L56:
 322               	.LM37:

⌨️ 快捷键说明

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