📄 ledeffect.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 + -