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

📄 lcdinit.c

📁 IARSOURCECODE是基于LPC2478嵌入式软件IAR EWARM V4.42的应用实例代码
💻 C
字号:
#include "LPC23xx.h"
#include "type.h"
#include "target.h"
#include "timer.h"
#include "LCD.h"
#include "irq.h"

volatile DWORD DMA_SRC;

//函数名称:lcd_configure_gpio
//功能:初始化LPC24XX 对应LCD的IO口
//参数:无
//返回值:无
//修改历史:
//版本 	日期	作者	改动内容及原因
//V1.0 2008.1.11	MAGICOE 基本功能完成
void lcd_configure_gpio( void)
{
	PINSEL10 &= 0xFFFFFFF7;
	PINSEL11 |= 0x0000000F;
	PINSEL0  |= 0x00055500;
	//PINSEL1 = 0x00000000;
	//PINSEL2 = 0x00000000;

	PINSEL3  |= 0x05555500;
	PINSEL4  |= 0x054FFFFF;
	//PINSEL5 = 0x00000000;
	//PINSEL6 = 0x00000000;
	//PINSEL7 = 0x00000000;
	//PINSEL8 = 0x00000000;
	
	PINSEL9  |= 0x0A000000;
    
	PINSEL10 &= 0xFFFFFFF7;
	PINSEL11 |= 0x0000000F;
		
}

void LCD_Disp_Config( void)
{
	PCONP |= 0x00100000;//使能LCD Controller

	//以下寄存器参看LPC24XX用户手册,LCD一章。结合SHARP LQ043液晶参数进行设置
	LCD_CTRL = 0x00;

	LCD_CFG = 0x07;

	LCD_CTRL = (0x01 << 5)|(0x05 << 1);
																		   
	LCD_TIMH = (0x01 << 24)|(0x01  << 16)|(0x28 << 8 )|(0x1D << 2);
	
	LCD_TIMV = (0x02 << 24)|(0x02  << 16)|(0x09 << 10)|(0x10F);

    LCD_POL  = (0x01 << 26)|(0x1DF << 16)|(0x00 << 14)|(0x01 << 13)|(0x01 << 12)|(0x01 << 11)|(0x14);
	
	LCD_CTRL |= 0x01;
	delayMs(0,50);
	LCD_CTRL |= (0x01 << 11);
}

/******************************************************************************
** Function name:		DMAHandler
**
** Descriptions:		DMA interrupt handler
**
** parameters:			None
** Returned value:		None
** 
******************************************************************************/
__irq __arm void DMAHandler (void) 
{
  DWORD regVal;

  //IENABLE;				/* handles nested interrupt */
  regVal = LCD_INTSTAT;
  if ( (regVal&0x00000002) == 0x00000002 )  //FUFMIS
  {
	LCD_INTCLR |= 0x00000002;
  } 

  //LNBUIC
  if ( (regVal&0x00000004) == 0x00000004 ) 
  {
	LCD_INTCLR |= 0x00000004;
  } 
  //VCompMIS
  if ( (regVal&0x00000008) == 0x00000008 ) 
  {
	LCD_INTCLR |= 0x00000008;
  }
  //BERRAW
  if ( (regVal&0x00000010) == 0x00000010 ) 
  {
	LCD_INTCLR |= 0x00000010;
  }
  //IDISABLE;	 
  VICVectAddr = 0;		/* Acknowledge Interrupt */
}

/******************************************************************************
** Function name:		DMA_Init
**
** Descriptions:		
**
** parameters:			
** Returned value:		
** 
******************************************************************************/
DWORD DMA_Init( void)
{

  LCD_INTMSK |= (0x01 << 4)|(0x01 << 3)|(0x01 << 2)|(0x01 << 1);
   
	
  if ( install_irq( EINT2_INT, (void *)DMAHandler, HIGHEST_PRIORITY ) == FALSE )
  {
	return ( FALSE );
  }		 
  return (TRUE);
}

/******************************************************************************
**                            End Of File
******************************************************************************/

⌨️ 快捷键说明

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