⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 hw_lcdctrl.h

📁 瑞星微公司RK27XX系列芯片的SDK开发包
💻 H
字号:
/******************************************************************/
/*   Copyright (C) 2007 ROCK-CHIPS FUZHOU . All Rights Reserved.  */
/*******************************************************************
File :  hw_Lcdcontrol.h
Desc :  LCD Controler 的寄存器定义

Author :  nzy
Date :
Notes :

$Log :
*********************************************************************/

#ifndef _HW_LCDCONTROL_H_
#define _HW_LCDCONTROL_H_

#include "hw_memmap.h"


#define LCDCtrlBase  (unsigned int)AHB1_LCDC_BASE

#define RegLCDC_ctrl    LCDCtrlBase+0x00
#define RegLCDC_mcu_ctrl   LCDCtrlBase+0x04
#define RegLCDC_hor_period   LCDCtrlBase+0x08
#define RegLCDC_vert_period   LCDCtrlBase+0x0c
#define RegLCDC_horpw    LCDCtrlBase+0x10
#define RegLCDC_vertpw    LCDCtrlBase+0x14
#define RegLCDC_horact    LCDCtrlBase+0x18
#define RegLCDC_vertact    LCDCtrlBase+0x1C
#define RegLCDC_horbp    LCDCtrlBase+0x20
#define RegLCDC_vertbp    LCDCtrlBase+0x24
#define RegLCDC_line0yaddr   LCDCtrlBase+0x28
#define RegLCDC_line0uvaddr   LCDCtrlBase+0x2c
#define RegLCDC_line1yaddr   LCDCtrlBase+0x30
#define RegLCDC_line1uvaddr   LCDCtrlBase+0x34
#define RegLCDC_line2yaddr   LCDCtrlBase+0x38
#define RegLCDC_line2uvaddr   LCDCtrlBase+0x3c
#define RegLCDC_line3yaddr   LCDCtrlBase+0x40
#define RegLCDC_line3uvaddr   LCDCtrlBase+0x44
#define RegLCDC_StartX    LCDCtrlBase+0x48
#define RegLCDC_StartY    LCDCtrlBase+0x4C
#define RegLCDC_DeltaX    LCDCtrlBase+0x50
#define RegLCDC_DeltaY    LCDCtrlBase+0x54
#define RegLCDC_intrmask   LCDCtrlBase+0x58
#define RegLCDC_alpALeftX   LCDCtrlBase+0x5C
#define RegLCDC_alpATopY   LCDCtrlBase+0x60
#define RegLCDC_alpARightX   LCDCtrlBase+0x64
#define RegLCDC_alpABottomY   LCDCtrlBase+0x68
#define RegLCDC_alpBLeftX   LCDCtrlBase+0x6C
#define RegLCDC_alpBTopY   LCDCtrlBase+0x70
#define RegLCDC_alpBRightX   LCDCtrlBase+0x74
#define RegLCDC_alpBBottomY   LCDCtrlBase+0x78
#define RegLCDC_lcdcsta    LCDCtrlBase+0x7c

#ifdef RS_HI      //RS 有效电平高
#define RegLCDC_CMD     LCDCtrlBase+0x2004
#define RegLCDC_DAT     LCDCtrlBase+0x2000
#else
#define RegLCDC_CMD     LCDCtrlBase+0x2000
#define RegLCDC_DAT     LCDCtrlBase+0x2004
#endif

#define RegLCDC_BUF                 LCDCtrlBase+0x2000
#define RegLCDC_LCDCFIFO(Offset)    LCDCtrlBase+(Offset+0x40)*64


//一些微操作和位操作
#define HWLCDC_SetAlp24bit()    SetRegBit32(RegLCDC_ctrl, 13)
#define HWLCDC_SetAlp16bit()    ClrRegBit32(RegLCDC_ctrl, 13)

#define HWLCDC_SetMCU8086IF()    SetRegBit32(RegLCDC_ctrl, 7)
#define HWLCDC_SelectAlpFactor()   SetRegBit32(RegLCDC_ctrl, 13)

#define HWLCDC_SetRGB24bit()    SetRegBit32(RegLCDC_ctrl, 6)
#define HWLCDC_SetRGB16bit()    ClrRegBit32(RegLCDC_ctrl, 6)

#define HWLCDC_StartEven()     SetRegBit32(RegLCDC_ctrl, 5)
#define HWLCDC_StopRGBFrame()    ClrRegBit32(RegLCDC_ctrl, 0)

#define HWLCDC_EnRGBMode()     SetRegBit32(RegLCDC_ctrl, 1)
#define HWLCDC_DisRGBMode()     ClrRegBit32(RegLCDC_ctrl, 1)

#define HWLCDC_EnAlpBuffer()    SetRegBit32(RegLCDC_mcu_ctrl, 6)
#define HWLCDC_DisAlpBuffer()    ClrRegBit32(RegLCDC_mcu_ctrl, 6)

#define HWLCDC_SetRS()      SetRegBit32(RegLCDC_mcu_ctrl, 5)
#define HWLCDC_ClrRS()      ClrRegBit32(RegLCDC_mcu_ctrl, 5)

#define HWLCDC_StartMcuBuf()    SetRegBit32(RegLCDC_mcu_ctrl, 1)
#define HWLCDC_EnMcuBufIntr()    SetRegBit32(RegLCDC_intrmask, 2)
#define HWLCDC_DisMcuBufIntr()    ClrRegBit32(RegLCDC_intrmask, 2)


#define HWLCDC_McuBypassMode()    SetRegBit32(RegLCDC_mcu_ctrl, 0)
#define HWLCDC_McuBufferMode()    ClrRegBit32(RegLCDC_mcu_ctrl, 0)


#define HWLCDC_GetMcuIdleState()    GetRegBit32(RegLCDC_lcdcsta,4)
#define HWLCDC_GetHactiveState()   GetRegBit32(RegLCDC_lcdcsta,0)
#define HWLCDC_GetVactiveState()   GetRegBit32(RegLCDC_lcdcsta,1)
#define HWLCDC_GetEvenLineState()   GetRegBit32(RegLCDC_lcdcsta,2)



#define BitEnLCDC 1
#define BitMcu  7
#define BitBypass 0



/**************************************************************
*LCDC register
**************************************************************/
#define  LCDC_BASE   LCDCtrlBase

#define   LCDC_CTRL   ((LCDC_BASE +0*4 ))
#define         b_DCLK_INVERTED     (1<<14)
#define   b_ALPHA_24B         (1<<13)
#define   b_ALPHA_16B         (0<<13)
#define 		b_UVExchange        (1<<12)
#define   b_ALPHA(factor)     (factor<<9)
#define   b_Y_MIX       (1<<8)
#define   b_MCU_MODE   (1<<7)
#define   b_RGB_24B   (1<<6)
#define   b_RGB_16B   (0<<6)
#define   b_START_EVEN  (1<<5)
#define   b_EVEN_EN   (1<<4)
#define   b_RGB_DUMMY0  (0<<2)
#define   b_RGB_DUMMY2  (2<<2)
#define   b_RGB_DUMMY3  (3<<2)
#define   b_RGB_DUMMY(Dummy)  (Dummy<<2)
#define   b_LCDC_EN   (1<<1)
#define   b_LCDC_STOP   (1<<0)

#define   BUFF_CTRL   ((LCDC_BASE +1*4 ))
#define   b_ALPHA_BASE(Addr)  (Addr<<8)
#define   b_LCDC_FIFOEN     (1<<6)
#define   b_RS_HIGH      (1<<5)
#define   b_BUFF_LINE3     (3<<3)
#define   b_BUFF_LINE2     (2<<3)
#define   b_BUFF_LINE1     (1<<3)
#define   b_BUFF_LINE0     (0<<3)
#define   b_BUFF_WRITE     (1<<2)
#define   b_BUFF_START     (1<<1)
#define   b_MCU_BYPASS     (1<<0)

#define   HOR_PERIOD   (LCDC_BASE +2*4 )
#define   VERT_PERIOD   (LCDC_BASE +3*4 )
#define   LCD_WAIT   (LCDC_BASE +3*4 )
#define   HOR_PW    (LCDC_BASE +4*4 )
#define   VERT_PW    (LCDC_BASE +5*4 )
#define   HOR_BP    (LCDC_BASE +6*4 )
#define   VERT_BP    (LCDC_BASE +7*4 )
#define   HOR_ACT    (LCDC_BASE +8*4 )
#define   BUFF_LEN   (LCDC_BASE +8*4 )
#define   VERT_ACT   (LCDC_BASE +9*4 )

#define   LINE0_YADDR   (LCDC_BASE +10*4)
#define   b_ALPHA_EN   (1<<14)
#define   b_SCALE_EN   (1<<13)
#define   b_GBR_ORDER   (1<<12)
#define   b_YUV_SRC   (1<<11)

#define   LINE0_UVADDR  (LCDC_BASE +11*4)
#define   LINE1_YADDR   (LCDC_BASE +12*4)
#define   LINE1_UVADDR  (LCDC_BASE +13*4)
#define   LINE2_YADDR   (LCDC_BASE +14*4)
#define   LINE2_UVADDR  (LCDC_BASE +15*4)
#define   LINE3_YADDR   (LCDC_BASE +16*4)
#define   LINE3_UVADDR  (LCDC_BASE +17*4)
#define   START_X    (LCDC_BASE +18*4)
#define   START_Y    (LCDC_BASE +19*4)
#define   DELTA_X    (LCDC_BASE +20*4)
#define   DELTA_Y    (LCDC_BASE +21*4)

#define   INTR_MASK   (LCDC_BASE +22*4)
#define   b_INTR_PERLINE     (1<<3)
#define   b_INTR_EVENLINE     (0<<3)
#define   b_BUFF_INTR   (1<<2)
#define   b_VERT_INTR   (1<<1)
#define   b_HOR_INTR   (1<<0)

#define         ALPHA_ALX           (LCDC_BASE +23*4)
#define         ALPHA_ATY           (LCDC_BASE +24*4)
#define         ALPHA_ARX           (LCDC_BASE +25*4)
#define         ALPHA_ABY           (LCDC_BASE +26*4)
#define         ALPHA_BLX           (LCDC_BASE +27*4)
#define         ALPHA_BTY           (LCDC_BASE +28*4)
#define         ALPHA_BRX           (LCDC_BASE +29*4)
#define         ALPHA_BBY           (LCDC_BASE +30*4)

#define   LCDC_STA   (LCDC_BASE +31*4)
#define   b_CURR_LINE1  (1<<14)
#define   b_MCU_IDLE   (1<<12)
#define   b_VERT_ACTIVE  (1<<11)
#define   b_HOR_ACTIVE  (1<<0)

#define   LCD_DATA   (LCDC_BASE +0x1004)
#define   LCD_COMMAND   (LCDC_BASE +0x1000)


#define         LCDC_FIFO           (LCDC_BASE +0x1c00)
#define         LCDC_FIFO_DEPTH     256         //480
#define         LCDC_DWDMA_FIFO     (LCDC_BASE +0x1000)
#define         LCDC_BUFFER         (LCDC_BASE +0x2000)
#define         LCDC_DWDMA_BUFFER   (LCDC_BASE +0x2000)

#define         LCDMode_Bypass    0
#define         LCDMode_DMABypass  1
#define         LCDMode_Buffer   2



#endif/* _HW_LCDCONTROL_H_ */

/*********************************************************************
 END OF FILE
*********************************************************************/

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -