亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? lcd_grph.c

?? NXP LPC2378 LCD Demo
?? C
?? 第 1 頁 / 共 2 頁
字號:
/*****************************************************************************
 *   lcd_graph.c:  Graphic C file for NXP LPC24xx Family Microprocessors
 *
 *   Copyright (c) 2006 Embedded Artists AB
 *   All rights reserved.
 *
 *   History
 *   2007.01.11  ver 1.00    Prelimnary version, first Release
 *
*****************************************************************************/#include "LPC23xx.h"
#include "type.h"
#include "irq.h"
#include "target.h"
#include "lcd_hw.h"
#include "lcd_grph.h"
#include "font5x7.h"
static lcd_color_t  foregroundColor = WHITE;
static lcd_color_t  backgroundColor = BLACK;
static BYTE const  font_mask[8] = {0x80, 0x40, 0x20, 0x10, 0x08, 0x04, 0x02, 0x01};
/******************************************************************************
** Function name:		hLine		
**
** Descriptions:		Draw a horizontal line from x0 to x1 on y0.		
**
** parameters:			x0, y0, x1, color
** Returned value:		None
** 
******************************************************************************/
static void hLine(WORD x0, WORD y0, WORD x1, lcd_color_t color) 
{
  WORD bak;

  if (x0 > x1) 						
  {
    bak = x1;
    x1 = x0;
    x0 = bak;
  }
  lcd_point(x0, y0, color);
  x0++;
   
  while(x1 >= x0)
  {
    LCD_DATA = color;
    x0++;
  }
  return;
}

/******************************************************************************
** Function name:		vLine
**
** Descriptions:		Draw a vertical line from y0 to y1 on x0.
**
** parameters:			x0, y0, y1, color
** Returned value:		None
** 
******************************************************************************/
static void vLine(WORD x0, WORD y0, WORD y1, lcd_color_t color)
{
  WORD bak;

  if(y0 > y1) 						
  {
    bak = y1;
    y1 = y0;
    y0 = bak;
  }
  while(y1 >= y0)
  {
    lcd_point(x0, y0, color);
    y0++;
  }
  return;
}

/******************************************************************************
** Function name:		lcd_movePen
**
** Descriptions:		Move the pen to a particular location.		
**
** parameters:			pixel x and y
** Returned value:		None
** 
******************************************************************************/
void lcd_movePen(WORD x, WORD y)
{
  LCD_COMMAND = 0x4200 | (x & 0xff);	  	/* x start address */
  LCD_COMMAND = 0x4300 | ((y>>8) & 0xff);	/* y start address MSB */
  LCD_COMMAND = 0x4400 | (y & 0xff);		/* y start address LSB */
  return;
}

/******************************************************************************
** Function name:		lcd_setWindow
**
** Descriptions:		Set the window area without filling the color		
**
** parameters:			x0, y0, x1, y1
** Returned value:		If the range is not set correctly, e.g. x1 <= x0
**				y1 <= y0, return false, the window will not be set.
** 
******************************************************************************/
DWORD lcd_setWindow(WORD x0, WORD y0, WORD x1, WORD y1)  
{
  if (x1 > DISPLAY_WIDTH-1) 
  {  
    x1 = DISPLAY_WIDTH-1;
  }  
  if (y1 > DISPLAY_HEIGHT-1)
  {
    y1 = DISPLAY_HEIGHT-1;
  }  
  if ((x1 <= x0) || (y1 <= y0))
  {
    return( FALSE );
  }
  /* TODO x and y values aren't used below. 240x320 (239x319) is always used */
  LCD_COMMAND = 0x4500; /* X-start address */
  LCD_COMMAND = 0x46EF; /* X-end address */
  LCD_COMMAND = 0x4700; /* Y-start address MSB */
  LCD_COMMAND = 0x4800; /* Y-start address LSB */
  LCD_COMMAND = 0x4901; /* Y-end address MSB */
  LCD_COMMAND = 0x4A3F; /* Y-end address LSB */
  return( TRUE );
}

/******************************************************************************
** Function name:		lcd_fillScreen
**
** Descriptions:		Fill the LCD screen with color		
**
** parameters:			Color
** Returned value:		None
** 
******************************************************************************/
void lcd_fillScreen(lcd_color_t color)
{
  WORD i = 0;  WORD j = 0;
 
  lcd_setWindow(0, 0, DISPLAY_WIDTH-1, DISPLAY_HEIGHT-1); 
  lcd_movePen(0, 0);
  for(i=0; i < DISPLAY_HEIGHT; i++)
  {
    for(j=0; j<DISPLAY_WIDTH; j++)
    {
	  LCD_DATA = color;
    }
  }
  return;
}

/******************************************************************************
** Function name:		lcd_point
**
** Descriptions:		Draw a point at {x0, y0} on the LCD		
**						if {x0,y0} is out of range, display nothing.
** parameters:			x0, y0, color
** Returned value:		None
** 
******************************************************************************/
void lcd_point(WORD x, WORD y, lcd_color_t color)
{
  if( x >= DISPLAY_WIDTH )  
  {
    return;
  }  
  if(y >= DISPLAY_HEIGHT)
  {
    return;
  }
  lcd_movePen(x, y);
  LCD_DATA = color;
  return;
}
/******************************************************************************
** Function name:		lcd_movePen
**
** Descriptions:		
**
** parameters:			None
** Returned value:		None
** 
******************************************************************************/
void lcd_drawRect(WORD x0, WORD y0, WORD x1, WORD y1, lcd_color_t color)
{  
  hLine(x0, y0, x1, color);
  hLine(x0, y1, x1, color);
  vLine(x0, y0, y1, color);
  vLine(x1, y0, y1, color);
  return;
}

/******************************************************************************
** Function name:		lcd_fillRect
**
** Descriptions:		Fill a rectangle with color, the area is
**						{x0, y0, x1, y1 }
**
** parameters:			x0, y0, x1, y1, color
** Returned value:		None
** 
******************************************************************************/
void lcd_fillRect(WORD x0, WORD y0, WORD x1, WORD y1, lcd_color_t color)
{  
  WORD i = 0;
  
  if(x0 > x1)
  {   
    i  = x0;
    x0 = x1;
    x1 = i;
  }
  if(y0 > y1)
  {   
    i  = y0;
    y0 = y1;
    y1 = i;
  }
   
  if(y0 == y1) 
  {  
    hLine(x0, y0, x1, color);
    return;
  }
  if(x0 == x1) 
  {  
    vLine(x0, y0, y1, color);
    return;
  }

  while(y0 <= y1)						
  {  
    hLine(x0, y0, x1, color);
    y0++;
  }
  return;
}

/******************************************************************************
** Function name:		lcd_line
**
** Descriptions:		draw a line between {x0,y0} and {x1,y1}
**						the last parameter is the color of the line		
**
** parameters:			x0, y0, x1, y1, color
** Returned value:		None
** 
******************************************************************************/
void lcd_line(WORD x0, WORD y0, WORD x1, WORD y1, lcd_color_t color)
{  
  signed short   dx = 0, dy = 0;
  signed char    dx_sym = 0, dy_sym = 0;
  signed short   dx_x2 = 0, dy_x2 = 0;
  signed short   di = 0;
 
  dx = x1-x0;
  dy = y1-y0;
  
  if(dx == 0)			/* vertical line */ 
  {
    vLine(x0, y0, y1, color);
    return;
  }
  if(dx > 0)
  {    
    dx_sym = 1;
  }
  else
  { 
    dx_sym = -1;
  }
  if(dy == 0)			/* horizontal line */  
  {
    hLine(x0, y0, x1, color);
    return;
  }
  if(dy > 0)
  {    
    dy_sym = 1;
  }
  else
  { 
    dy_sym = -1;
  }
  dx = dx_sym*dx;
  dy = dy_sym*dy;
 
  dx_x2 = dx*2;
  dy_x2 = dy*2;
   
  if(dx >= dy)
  { 
    di = dy_x2 - dx;
    while(x0 != x1)
    {   
      lcd_point(x0, y0, color);
      x0 += dx_sym;
      if(di<0)
      {
        di += dy_x2;
      }
      else
      {
        di += dy_x2 - dx_x2;
        y0 += dy_sym;
      }
    }
    lcd_point(x0, y0, color);
  }

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
高清免费成人av| 日韩三级在线免费观看| 国产成人精品三级| 裸体歌舞表演一区二区| 免费成人美女在线观看.| 午夜国产不卡在线观看视频| 亚洲一区成人在线| 亚洲综合另类小说| 亚洲成人av在线电影| 亚洲自拍偷拍九九九| 一区二区三区在线免费视频| 亚洲精品视频在线| 亚洲无人区一区| 日韩国产欧美视频| 国产一区中文字幕| 国产成人av一区二区三区在线 | 日韩电影一区二区三区| 午夜精品福利久久久| 毛片av一区二区| 国产高清在线精品| 一本色道久久综合狠狠躁的推荐 | 欧美午夜寂寞影院| 欧美日韩精品高清| 日韩欧美一区二区久久婷婷| 久久网站最新地址| 国产精品乱人伦中文| 亚洲免费观看高清完整版在线| 亚洲国产综合人成综合网站| 丝瓜av网站精品一区二区| 久久精品72免费观看| 国产91色综合久久免费分享| 91视频com| 欧美精品在欧美一区二区少妇| 日韩美女一区二区三区四区| 国产精品美女久久福利网站 | 粉嫩av一区二区三区| 在线亚洲+欧美+日本专区| 欧美另类一区二区三区| 久久久国产午夜精品| 一区二区三区精密机械公司| 蜜臀久久久久久久| 不卡的av电影| 欧美精品自拍偷拍| 中文字幕第一页久久| 午夜精品久久久久久久久久久| 国产美女娇喘av呻吟久久| 麻豆视频观看网址久久| 美女mm1313爽爽久久久蜜臀| 国产一区二区三区久久悠悠色av| 91在线观看高清| 日韩欧美国产精品一区| 国产精品第五页| 麻豆精品精品国产自在97香蕉| 99久久er热在这里只有精品15| 欧美高清hd18日本| 一区在线播放视频| 青青青爽久久午夜综合久久午夜| 成人性生交大片免费看中文 | 一本色道亚洲精品aⅴ| 欧美成人一区二区| 亚洲综合色网站| 国产999精品久久| 日韩一区二区麻豆国产| 日韩理论片在线| 极品少妇一区二区三区精品视频| 91精品办公室少妇高潮对白| 久久久久久一级片| 奇米精品一区二区三区在线观看一| 成人国产电影网| 久久夜色精品国产噜噜av| 欧美综合一区二区| 久久看人人爽人人| 日韩不卡一二三区| 欧美性生活影院| 亚洲色图制服丝袜| 国产jizzjizz一区二区| 日韩精品一区二区在线观看| 一区二区三区中文字幕电影| 波多野结衣中文字幕一区二区三区| 日韩一级免费观看| 亚洲综合色婷婷| 色综合激情久久| 国产精品家庭影院| 国产大陆精品国产| 精品国产凹凸成av人导航| 亚洲成人av在线电影| 91精彩视频在线| 亚洲精品福利视频网站| 99视频在线精品| 国产精品国产三级国产有无不卡 | 色综合久久88色综合天天免费| 国产拍揄自揄精品视频麻豆| 久久av老司机精品网站导航| 3d成人h动漫网站入口| 偷拍一区二区三区| 欧美午夜不卡视频| 亚洲一区二区三区激情| 色一情一乱一乱一91av| 亚洲日本青草视频在线怡红院 | 日韩一级片网址| 免费精品99久久国产综合精品| 欧美日韩国产美| 亚洲va中文字幕| 欧美日韩一区二区三区四区 | 成人免费观看av| 国产日韩欧美一区二区三区乱码| 国产精品一区二区果冻传媒| 久久久久国色av免费看影院| 国产精品1024久久| 中文欧美字幕免费| 不卡欧美aaaaa| 亚洲精品中文字幕在线观看| 欧美曰成人黄网| 天天综合天天综合色| 欧美一级国产精品| 国产一区二区网址| 国产精品久久久久久久久免费桃花| 成人黄色777网| 一区二区三区免费网站| 欧美亚洲国产一区二区三区va | 亚洲国产精品自拍| 欧美日韩精品一区二区天天拍小说| 五月激情丁香一区二区三区| 日韩欧美中文字幕一区| 国产一区二区久久| 国产精品久久久一本精品| 在线视频综合导航| 捆绑调教一区二区三区| 国产网红主播福利一区二区| 99久久久无码国产精品| 一卡二卡欧美日韩| 日韩一级片在线观看| 国产99久久久国产精品潘金网站| 亚洲美女屁股眼交3| 欧美人牲a欧美精品| 久久99精品久久久久久国产越南| 日本一二三不卡| 欧美影视一区在线| 韩国毛片一区二区三区| 国产欧美精品区一区二区三区| 91美女片黄在线| 日韩av一级电影| 中文字幕av免费专区久久| 欧美性一区二区| 国产乱码精品一区二区三| 一区二区高清视频在线观看| 欧美v国产在线一区二区三区| 99综合电影在线视频| 婷婷夜色潮精品综合在线| 国产三级精品三级| 欧美高清dvd| 99视频超级精品| 日本亚洲最大的色成网站www| 国产精品美女www爽爽爽| 欧美日韩国产成人在线91| 成人理论电影网| 日韩高清在线电影| 中文字幕一区av| 精品黑人一区二区三区久久| 99re热这里只有精品视频| 久久精品国产一区二区三区免费看| 中文字幕一区二区三中文字幕 | 日韩国产在线观看一区| 国产亚洲美州欧州综合国| 欧美午夜精品免费| 国产成人午夜电影网| 日韩精品电影一区亚洲| 中文字幕色av一区二区三区| 日韩女优视频免费观看| 在线免费亚洲电影| 成人三级伦理片| 久久99热这里只有精品| 亚洲国产精品人人做人人爽| 中文字幕av一区二区三区高 | 亚洲综合自拍偷拍| 欧美极品少妇xxxxⅹ高跟鞋| 欧美一区二区三区白人| 一本色道久久综合亚洲aⅴ蜜桃| 国产精品中文字幕日韩精品| 日日夜夜一区二区| 一区二区三区四区视频精品免费 | 九一久久久久久| 五月天国产精品| 亚洲综合在线视频| 亚洲欧美偷拍三级| 亚洲国产精品t66y| 国产午夜亚洲精品理论片色戒| 91精品国产乱| 欧美久久一二区| 欧美曰成人黄网| 一本一本大道香蕉久在线精品| 成人精品免费看| 国产一区欧美二区| 精彩视频一区二区三区| 日韩高清不卡在线| 日韩主播视频在线| 亚洲高清在线视频| 夜夜揉揉日日人人青青一国产精品| 中文字幕一区二区三区蜜月| 国产欧美日韩不卡免费|