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

📄 ledeffect.c

📁 是一个键盘测试程序
💻 C
字号:
#include "ledeffect.h"int u2_len(unsigned short* str) {	unsigned short * cur = str;	while(*cur) {		cur ++;	}	return cur - str;}void from_right2left(ledrv_t* drv, unsigned short* text, int step) {	unsigned short buffer[512];	int i,pos;	int text_len;	int nextpos;	memset(buffer,0,sizeof(buffer));	unsigned short * cur_text = buffer;	text_len = u2_len(text);	memcpy(buffer, text, text_len*sizeof(unsigned short));	//buffer[0] = buffer[1] = buffer[2] = buffer[3] = buffer[4] = buffer[5] = 0x3000;	//while(*cur_text) 	for(i=0;1;i+=step)	{		ledrv_clear(drv);		pos = draw_text(drv,0, -1*i+96, cur_text,&nextpos);	   ledrv_flush(drv);		sleep(1);		if(drv->bStop_show)			break;		if((pos >= text_len) && (nextpos < 0)){			//printf("pos=%d;text_len=%d",pos,text_len);			break;		}		//cur_text++;	}	//clean the screen	ledrv_clear(drv);	ledrv_flush(drv);}void from_left2right(ledrv_t* drv, unsigned short* text, int step) {	unsigned short buffer[512];	int i,pos;	int text_len,draw_len;	int nextpos;	memset(buffer,0,sizeof(buffer));	unsigned short * cur_text = buffer;	text_len = u2_len(text);	draw_len = get_text_draw_length(drv, text); 	memcpy(buffer, text, text_len*sizeof(unsigned short)); 	for(i=0;1;i+=step)	{		ledrv_clear(drv);		pos = draw_text(drv,0, -1*draw_len+i, cur_text, &nextpos);	   ledrv_flush(drv);		sleep(1);		if(drv->bStop_show)			break;		if((pos <= 0) && (nextpos > 96)){			break;		}		//cur_text++;	}	//clean the screen	ledrv_clear(drv);	ledrv_flush(drv);}void from_top2bottom(ledrv_t* drv, unsigned short* text,int step) {	unsigned short buffer[512];	int i,pos;	int text_len,draw_len;	int nextpos;	memset(buffer,0,sizeof(buffer));	unsigned short * cur_text = buffer;	text_len = u2_len(text);	draw_len = get_text_draw_length(drv, text); 	memcpy(buffer, text, text_len*sizeof(unsigned short)); 	for(i=0;1;i+=step)	{		ledrv_clear(drv);		pos = draw_text(drv,i*step-16, 0, cur_text, &nextpos);	   ledrv_flush(drv);		sleep(1);				if(drv->bStop_show)			break;		if(i*step > 32){			break;		}		//cur_text++;	}	//clean the screen	ledrv_clear(drv);	ledrv_flush(drv);}void from_bottom2top(ledrv_t* drv, unsigned short* text,int step){	unsigned short buffer[512];	int i,pos;	int text_len,draw_len;	int nextpos;	memset(buffer,0,sizeof(buffer));	unsigned short * cur_text = buffer;	text_len = u2_len(text);	draw_len = get_text_draw_length(drv, text); 	memcpy(buffer, text, text_len*sizeof(unsigned short)); 	for(i=0;1;i+=step)	{		ledrv_clear(drv);		pos = draw_text(drv,-1*i*step+15, 0, cur_text, &nextpos);	   ledrv_flush(drv);		sleep(1);		//printf("%d\n",-1*i*step+16);		if(drv->bStop_show)			break;		if(-1*i*step+15 < -15){			break;		}		//cur_text++;	}	//clean the screen	ledrv_clear(drv);	ledrv_flush(drv);}void static_draw(ledrv_t* drv, unsigned short* text){	unsigned short buffer[512];	int i,pos;	int text_len,draw_len;	int nextpos;	memset(buffer,0,sizeof(buffer));	unsigned short * cur_text = buffer;	text_len = u2_len(text);	draw_len = get_text_draw_length(drv, text); 	memcpy(buffer, text, text_len*sizeof(unsigned short)); 	ledrv_clear(drv);	pos = draw_text(drv,0, 0, cur_text, &nextpos);	ledrv_flush(drv);}void flash_draw(ledrv_t* drv, unsigned short* text,int times){	unsigned short buffer[512];	int i,pos;	int text_len,draw_len;	int nextpos;	memset(buffer,0,sizeof(buffer));	unsigned short * cur_text = buffer;	text_len = u2_len(text);	draw_len = get_text_draw_length(drv, text); 	memcpy(buffer, text, text_len*sizeof(unsigned short)); 	ledrv_clear(drv);		for(i = 0 ; i<times; i++) {		ledrv_clear(drv);		pos = draw_text(drv,0, 0, cur_text, &nextpos);		ledrv_flush(drv);		sleep(1);		ledrv_clear(drv);		ledrv_flush(drv);		sleep(1);	}}

⌨️ 快捷键说明

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