移植ucgui源码时, ucgui源码中LCD_COLORINDEX不能引用

2019-07-21 00:29发布

本帖最后由 guobo123 于 2015-12-29 15:08 编辑

[img]file:///C:UsersliuguoboAppDataRoamingTencentUsers695313559QQWinTempRichOle[TC134SNBVL@QB[DS@V)EL9.png[/img]

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
7条回答
yuanxinfei
1楼-- · 2019-07-21 01:45
这个参数应该是颜 {MOD},是不是没有定义这个颜 {MOD},你可以自己定义一下颜 {MOD}参数,就不会报错了
如果你是带UCGUI的话,在前面加一个#include "GUI_Private.h",里面有定义LCD_COLORINDEX的
guobo123
2楼-- · 2019-07-21 04:54
 精彩回答 2  元偷偷看……
yuanxinfei
3楼-- · 2019-07-21 06:29
guobo123 发表于 2015-12-29 15:36
我已经加过#include "GUI_Private.h"这个头文件

你把文件发出来看吧
guobo123
4楼-- · 2019-07-21 11:02
 精彩回答 2  元偷偷看……
yuanxinfei
5楼-- · 2019-07-21 11:22
guobo123 发表于 2015-12-29 15:50
#include "LCD_Private.h"      /* private modul definitions & config */
#include "GUI_Private.h"
#i ...

GUI_Line这个函数发出来看看呢
guobo123
6楼-- · 2019-07-21 17:06
我是参考别人的移植的,这个跟这个函数应该没关,我整个工程都给你吧,我发你邮箱,邮箱请说下,我的qq:695313559
void GUI_Line(u16 x0, u16 y0, u16 x1, u16 y1,u16 color)
{
        u16 x,y;
        u16 dx;// = abs(x1 - x0);
        u16 dy;// = abs(y1 - y0);

        if(y0==y1)
        {
                if(x0<=x1)
                {
                        x=x0;
                }
                else
                {
                        x=x1;
                        x1=x0;
                }
                  while(x <= x1)
                  {
                           LCD_DrawPoint1(x,y0,color);
                           x++;
                  }
                  return;
        }
        else if(y0>y1)
        {
                dy=y0-y1;
        }
        else
        {
                dy=y1-y0;
        }

        if(x0==x1)
        {
                if(y0<=y1)
                {
                        y=y0;
                }
                else
                {
                        y=y1;
                        y1=y0;
                }
                  while(y <= y1)
                  {
                           LCD_DrawPoint1(x0,y,color);
                           y++;
                  }
                  return;
        }
        else if(x0 > x1)
        {
                dx=x0-x1;
                  x = x1;
                  x1 = x0;
                  y = y1;
                  y1 = y0;
        }
        else
        {
                dx=x1-x0;
                  x = x0;
                  y = y0;
        }

        if(dx == dy)
        {
                  while(x <= x1)
                  {

                           x++;
                        if(y>y1)
                        {
                                y--;
                        }
                        else
                        {
                                   y++;
                        }
                           LCD_DrawPoint1(x,y,color);
                  }
        }
        else
        {
                LCD_DrawPoint1(x, y, color);
                  if(y < y1)
                  {
                           if(dx > dy)
                           {
                            s16 p = dy * 2 - dx;
                            s16 twoDy = 2 * dy;
                            s16 twoDyMinusDx = 2 * (dy - dx);
                            while(x < x1)
                            {
                                     x++;
                                     if(p < 0)
                                     {
                                              p += twoDy;
                                     }
                                     else
                                     {
                                              y++;
                                              p += twoDyMinusDx;
                                     }
                                     LCD_DrawPoint1(x, y,color);
                            }
                           }
                           else
                           {
                            s16 p = dx * 2 - dy;
                            s16 twoDx = 2 * dx;
                            s16 twoDxMinusDy = 2 * (dx - dy);
                            while(y < y1)
                            {
                                     y++;
                                     if(p < 0)
                                     {
                                              p += twoDx;
                                     }
                                     else
                                     {
                                              x++;
                                              p+= twoDxMinusDy;
                                     }
                                     LCD_DrawPoint1(x, y, color);
                            }
                           }
                  }
                  else
                  {
                           if(dx > dy)
                           {
                            s16 p = dy * 2 - dx;
                            s16 twoDy = 2 * dy;
                            s16 twoDyMinusDx = 2 * (dy - dx);
                            while(x < x1)
                            {
                                     x++;
                                     if(p < 0)
                                     {
                                              p += twoDy;
                                     }
                                     else
                                     {
                                              y--;
                                              p += twoDyMinusDx;
                                     }
                                     LCD_DrawPoint1(x, y,color);
                            }
                           }
                           else
                           {
                            s16 p = dx * 2 - dy;
                            s16 twoDx = 2 * dx;
                            s16 twoDxMinusDy = 2 * (dx - dy);
                            while(y1 < y)
                            {
                                     y--;
                                     if(p < 0)
                                     {
                                              p += twoDx;
                                     }
                                     else
                                     {
                                              x++;
                                              p+= twoDxMinusDy;
                                     }
                                     LCD_DrawPoint1(x, y,color);
                            }
                           }
                  }
        }
}

一周热门 更多>