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