博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Uboot LCD 添加进度条功能
阅读量:4040 次
发布时间:2019-05-24

本文共 1810 字,大约阅读时间需要 6 分钟。

使用Uboot自动烧写镜像时,通常会在LCD屏幕上显示当前工作的进度条,下面给出一种画进度条的方法(仅支持32位和16位LCD):

1. 宏定义声明

#define PROBAR_WIDTH    600 //进度条宽度  #define PROBAR_HEIGHT   30  //进度条高度  #define PROBAR__PIEXL   2   //边框像素    #define EDGING_COLOR    CONSOLE_COLOR_WHITE //边框颜色  #define PROBAR_COLOR    CONSOLE_COLOR_GREEN //进度条颜色    #define BACKGD_COLOR    CONSOLE_COLOR_BLACK //背景颜色

1. 画进度条边框函数

/*画进度条边框*/void LCD_draw_pb_edging(ushort x,ushort y) {       int  i, j;    uchar *lcd_base, *dest;#if (LCD_BPP == LCD_COLOR32)    uint *tmp;#else    ushort *tmp;#endif     lcd_get_size(&lcd_line_length);      lcd_base = map_sysmem(gd->fb_base, 0);          dest = (uchar *)( lcd_base + y * lcd_line_length + x * sizeof(*tmp));        for(i=0; i
= (PROBAR_HEIGHT - PROBAR_PIEXL)) || (j < PROBAR_PIEXL) || (j >= (PROBAR_WIDTH - PROBAR_PIEXL))) *tmp = EDGING_COLOR; tmp++; } dest += lcd_line_length; } }

2.画进度条

/*画进度条*/void LCD_draw_progress_bar(ushort x,ushort y,int percent_age) {       int  i, j;    int current_bar_width, current_bar_color;    uchar *lcd_base, dest;#if (LCD_BPP == LCD_COLOR32)    uint *tmp;#else    ushort *tmp;#endif     lcd_get_size(&lcd_line_length);      lcd_width = lcd_get_pixel_eidth();    lcd_base = map_sysmem(gd->fb_base, 0);          dest = (uchar *)( lcd_base + (y + PROBAR__PIEXL + 1) * lcd_line_length  \           + (x + PROBAR__PIEXL + 1)* sizeof(*tmp));        if(percent_age == 0)    {        current_bar_width = PROBAR_WIDTH - PG_PIEXL - 1;        current_bar_color = BACKGD_COLOR;    }        else    {           current_bar_width = (PROBAR_WIDTH - PG_PIEXL - 1) * percent_age / 100;        current_bar_color = PROBAR_COLOR;     }      for(i=0; i<(PROBAR_HEIGHT - PROBAR_PIEXL - 1); i++)     {          tmp = dest;          for(j=0; j

 

转载地址:http://kkadi.baihongyu.com/

你可能感兴趣的文章
Java高并发,如何解决,什么方式解决
查看>>
深入理解分布式事务,高并发下分布式事务的解决方案
查看>>
分布式事务一些总结与思考
查看>>
Spring Cloud微服务架构实践与经验总结
查看>>
Spring Boot入门篇
查看>>
spring cloud服务的注册与发现(Eureka)
查看>>
Java IO流
查看>>
多线程
查看>>
互联网产品设计:产品即服务
查看>>
UrlreWirte的使用
查看>>
使用js定位到页面某个位子
查看>>
java获取客户端真实ip
查看>>
SWFUPLOAD的使用(java版)
查看>>
Memcached的使用(基于java)
查看>>
java ee中的乱码问题及解决方案
查看>>
从技术到管理:思维转变是关键
查看>>
spring2.5.6下配置定时器
查看>>
为什么很多程序员都选择跳槽?
查看>>
mongdb介绍
查看>>
mongdb安装使用
查看>>