C代码集系列_0B10呼吸灯

本文介绍了C代码实现呼吸灯的详细过程,包括宏定义、变量定义和函数声明。呼吸灯功能可配置呼吸时间,支持单次峰值呼吸停止和定色。虽然在高亮度时有加速,整体呼吸效果仍有提升空间,作者期待更多指导来完善代码风格。
摘要由CSDN通过智能技术生成

C代码集系列:0B10
**

呼吸灯

**

直接开始干货

宏定义&变量定义

//---呼吸灯------------------------------
#if EFFECTS_LED_LIFE
#define EFFECTS_MOVE 		1 		// 条件编译:呼吸灯&波形灯(亮度)
#define LED_EFFE  			0     	// 条件编译:灯点有效值 高&低
#define LED_LIFE_WIDE_MAX  	300   	// 呼吸份数
#define LIFE_WIDE_ADD  		170   	// 加速呼吸
#define LIFE_MIN  			2      	// 呼吸份数最小(最暗)
#define LIFE_MAX  			297   	// 呼吸份数最大(最亮)
u16 life_wide1 	= 0;              	// 呼吸灯实时份数
u8 life_time1 	= 0;               	// 呼吸灯一次时间
u8 move_time1 	= 0;               	// 呼吸份数移动计数
u8 life_flag 	= 0;              	// 呼吸标志
__sbit life_en1 		= life_flag : 0;// 灯1波形控制使能
__sbit life_move1 		= life_flag : 1;// 灯1呼吸使能
__sbit life_stop1 		= life_flag : 2;// 灯1峰值暂停使能
__sbit life_brea_out1 	= life_flag : 3;// 灯1呼吸选择
__sbit life_en2 		= life_flag : 4;// 灯2波形控制使能
__sbit life_move2 		= life_flag : 5;// 灯2呼吸使能
__sbit life_stop2 		= life_flag : 6;// 灯2峰值暂停使能
__sbit life_brea_out2 	= life_flag : 7;// 灯2呼吸选择
#endif

函数声明

#if EFFECTS_MOVE
void LedLifeMove(void);
void 
关于呼吸灯C语言编程Options 1,0,0 // Target 'Target 1' Device (AT89C51) Vendor (Atmel) Cpu (IRAM(0-0x7F) IROM(0-0xFFF) CLOCK(24000000)) FlashUt () StupF ("LIB\STARTUP.A51" ("Standard 8051 Startup Code")) FlashDR () DevID (2976) Rgf (REGX51.H) Mem () C () A () RL () OH () DBC_IFX () DBC_CMS () DBC_AMS () DBC_LMS () UseEnv=0 EnvBin () EnvInc () EnvLib () EnvReg (Atmel\) OrgReg (Atmel\) TgStat=16 OutDir (.\) OutName (a9) GenApp=1 GenLib=0 GenHex=1 Debug=1 Browse=1 LstDir (.\) HexSel=0 MG32K=0 TGMORE=0 RunUsr 0 0 RunUsr 1 0 BrunUsr 0 0 BrunUsr 1 0 SVCSID MODEL5=0 RTOS5=0 ROMSZ5=2 DHOLD5=0 XHOLD5=0 T51FL=80 XT51FL=0 CBANKS5=0 XBANKS5=0 RCB51 { 0,0,0,0,0,0,0,1,0 } RXB51 { 0,0,0,0,0,0,0,0,0 } OCM51 { 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 } OCR51 { 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 } IRO51 { 1,0,0,0,0,0,16,0,0 } IRA51 { 0,0,0,0,0,128,0,0,0 } XRA51 { 0,0,0,0,0,0,0,0,0 } XRA512 { 0,0,0,0,0,0,0,0,0 } IROM512 { 0,0,0,0,0,0,0,0,0 } C51FL=21630224 C51VA=0 C51MSC () C51DEF () C51UDF () INCC5 () AX51FL=4 AX51MSC () AX51SET () AX51RST () INCA5 () PropFld { 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 } IncBld=1 AlwaysBuild=0 GenAsm=0 AsmAsm=0 PublicsOnly=0 StopCode=3 CustArgs () LibMods () BankNo=65535 LX51FL=292 LX51OVL () LX51MSC () LX51DWN () LX51LFI () LX51ASN () LX51RES () LX51CCL () LX51UCL () LX51CSC () LX51UCS () LX51COB () LX51XDB () LX51PDB () LX51BIB () LX51DAB () LX51IDB () LX51PRC () LX51STK () LX51COS () LX51XDS () LX51BIS () LX51DAS () LX51IDS () OPTDL (S8051.DLL)()(DP51.DLL)(-p51)(S8051.DLL)()(TP51.DLL)(-p51) OPTDBG 48125,-1,()()()()()()()()()() ()()()() FLASH1 { 0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0 } FLASH2 () FLASH3 () FLASH4 () EndOpt
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值