2016年6月28日 星期二

DIY - PIC24:PIC24FJ64GA008 ILI9341 LCD 液晶屏測試程式(二十三)

DIY - PIC24PIC24FJ64GA008 ILI9341 LCD 液晶屏測試程式二十三):

測試 ILI9341 LCD 液晶屏主要是測試 LCD 液晶屏的顏色、圖案和文字。需要顯示不同的東西,祇需要更改 LCD 屏內每個點Dot Pixel的顏色,因為點是可以構成不同的圖案和文字,所以控制點的顏色便可以做出不同的圖案顯示。顯示顏色點是將顏色數據直接寫入每個點Dot Pixel內,LCD 便會顯示出每點的顏色,不同顏色的點便會變成圖案或文字。

PIC24FJ64GA008 ILI9341 LCD 液晶屏測試程式
PIC24FJ64GA008 ILI9341 LCD 液晶屏測試程式
Microchip PIC24FJ64GA008 ILI9341 LCD 液晶屏 ClearDevice 程式:
void ClearDevice(void){
DWORD     counter;

    CS_LAT_BIT = 0;
   for(counter=0; counter<(DWORD)(GetMaxX()+1)*(GetMaxY()+1); counter++){
        WriteData(_color.v[1],_color.v[0]);
    }
    CS_LAT_BIT = 1;
    MoveTo(0,0);
}

Microchip PIC24FJ64GA008 ILI9341 LCD 液晶屏 LCD_ShowString 程式
void LCD_ShowString(short x, short y, short width, short height, char size, char *p,char mode)
{        
 static short xx, yy, zz;  // Keep Memory

if (mode == 0) { zz=0;}else
if (mode == 1) { zz=1;}else
if (mode == 2) { x=xx; y=yy;zz=1;}else  // Mode 1 = Follow Continue Mode
if (mode == 3) { zz=1;}

    while((*p<='~')&&(*p>=' '))
    {     
        if(x>(SCREEN_HOR_SIZE-1)){x=0;y+=size;}
                     if(y>=(SCREEN_VER_SIZE-1)) return;
        LCD_ShowChar(x,y,width,height,size,*p,mode);
            x+=size/2;
            p++;
    } 

if (zz==1){ xx=x; yy=y;}  // Mode 1 = Continue Mode

}


Microchip PIC24FJ64GA008 ILI9341 LCD 液晶屏 LCD_ShowChar 程式
void LCD_ShowChar(short x,short y,short width, short height,char size,unsigned char num,char mode)
{ 
    char temp;
    unsigned char pos,t;
    short y0=y;

    unsigned char csize=(size/8+((size%8) ?1:0)) * (size/2);

           num=num-32;

                     for(pos=0;pos
                     {
            if(size==12)temp=asc2_1206[num][pos];
                                else
            if(size==16)temp=asc2_1608[num][pos];
            else
            temp=asc2_2412[num][pos];

            for(t=0;t< width ;t++)
                         {                 
                             if(temp&0x80)Glcd_Pixel(x,y,BLACK);
                                           else Glcd_Pixel(x,y,WHITE);        
                                           temp<<=1;
                y++;
              if ((y-y0)==size)
                 { y=y0;
                   x++;
                  }
                         }
                     }        
}


2016年 6月 28日 天氣報告
氣溫:27.9@ 21:20
相對濕度:百分之 92%
天氣:微雨

沒有留言:

張貼留言