📄 hw_lcdctrl.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 + -