智能车制作

标题: K60 oled显示赛道程序求共享!!! [打印本页]

作者: 墨尔本丶晴    时间: 2015-3-11 18:31
标题: K60 oled显示赛道程序求共享!!!
调了一天都是花屏= =
  1. void Eighty_Sixty_Display(uint8 *img)
  2. {
  3.   //uint8 *tempimg = (uint8 *)img;
  4.    uint8 tempimg[80][60];
  5.    img_extract((uint8 *)img,(uint8 *) tempimg, 80*60/8);        //解压为灰度图像,方便发送到上位机显
  6.    uint8 i=0, j=0;
  7.    for(i=0; i<=6; i++)//7次循环完成56*80的图像区
  8.    {
  9.         LCD_Set_Pos(0,i);
  10.         for(j=0; j<80; j++)//一次循环完成一个8*60的图像去
  11.         {
  12.             uint8 x = tempimg[i*8][j]
  13.                     +tempimg[i*8+1][j]*2
  14.                             +tempimg[i*8+2][j]*4
  15.                                     +tempimg[i*8+3][j]*8
  16.                                             +tempimg[i*8+4][j]*16
  17.                                                     +tempimg[i*8+5][j]*32
  18.                                                             +tempimg[i*8+6][j]*64
  19.                                                                     +tempimg[i*8+7][j]*128;//将竖着的8个像素合并成一个字节
  20.             LCD_WrDat(x);
  21.         }
  22.     }
  23. //上面的一段程序完成了56行像素的显示,同理,下面显示剩下4行
  24.     LCD_Set_Pos(0,7);
  25.     for(j=0; j<80; j++)
  26.     {
  27.         uint8 x = tempimg[56][j]
  28.                  +tempimg[57][j]*2
  29.                         +tempimg[58][j]*4
  30.                                 +tempimg[59][j]*8;
  31.         LCD_WrDat(x);
  32.     }
  33. }
复制代码


作者: 天芒    时间: 2015-3-11 18:56
void LED_PrintImage(uchar *puc, uchar RowNum, uchar ColumnNum)
{
    uchar Data;
    uchar i,j,k,m,n;
    uchar RowTmp;

    m = RowNum >> 3;   //计算图片行数以8位为一组完整的组数
    n = RowNum % 8;    //计算分完组后剩下的行数
   
    for(i = 0; i < m; i++) //完整组行扫描
    {
     LED_zuobiao(12,(uchar)i);
        RowTmp = i << 3;    //计算当前所在行的下标                  
        for(j = 0; j < ColumnNum; j++) //列扫描        
        {
            Data = 0;
            for(k = 0; k < 8; k++) //在i组中对这8行扫描
            {
                Data = Data >> 1;
                if((puc + (RowTmp + k) * ColumnNum)[j] == LED_IMAGE_WHITE)
                {
                    Data = Data | 0x80;
                }
               
            }
            LED_WrDat(Data);
        }
    }
   
   LED_zuobiao(12,(uchar)i); //设置剩下的行显示的起始坐标
    RowTmp = i << 3;       //计算当前所在行的下标                  
    for(j = 0; j < ColumnNum; j++) //列扫描        
    {
        Data = 0;
        for(k = 0; k < n; k++) //对剩下的行扫描
        {
            Data = Data >> 1;
            if((puc + (RowTmp + k) * ColumnNum)[j] == LED_IMAGE_WHITE)
            {
                Data = Data | 0x80;
            }
            
        }
        Data = Data >> (8 - n);
        LED_WrDat(Data);
    }

    return;
}

然后调用的时候:
for(i = 0 ;.......)//自己写完整吧
{
        file:///D:\Users\Tianmang\AppData\Roaming\Tencent\Users\1515949177\QQ\WinTemp\RichOle\CX}MH2N)P9O@SCMJM)@S`]L.pngLED_PrintImage((uchar *)Image,60,100);
}

这不是我写的,随便找了一个贴的,自己再看看。







作者: liulinsheng    时间: 2015-4-4 20:48
楼上的弄出来了吗???
作者: 徐鹏    时间: 2015-12-22 14:40
liulinsheng 发表于 2015-4-4 20:48
楼上的弄出来了吗???

搞定没啊  我的也是花屏
作者: 徐鹏    时间: 2015-12-22 14:41
搞定没啊   我的也是花屏




欢迎光临 智能车制作 (http://111.231.132.190/) Powered by Discuz! X3.2