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

📄 tddrv.c

📁 使用三星ARM7芯片S3C44B0
💻 C
字号:
/**
 * tddrv.c - Tie dian memory's driver
 */

#include "tddrv.h"
#include "status.h"
#include "presel.h"


#define LCD_CONTROL 0x4200000
#define LCD_RAM		0x4200001
#define REG_WLCR	0
#define REG_MISC	1

extern __packed struct device_context *G_Device_Context;  //现场参数(关键)
extern 	__packed struct channel_para channel;
extern 	__packed struct lockout_freq lockoutfreq;
extern const U16 IFBW_DATA[22];
extern	struct LockOutInfo *pLockInfo;
extern unsigned char presel[1000];
extern U16 PS[100][2];
extern U8 dBTable[50][2];
int write_TD(U32 offset, U8 *pdat, U32 size)
{
	U32 i;
	U8 *pdst;
	
	
	pdst = (U8 *)(offset);
	for (i = 0; i < size; i++)
	{
		*pdst++ = *pdat++;
	}
	
	return TRUE;
}

int read_TD(U32 offset, U8 *pbuf, U32 size)
{
	U32 i;
	U8 *psrc;
	
	
	psrc = (U8 *)(offset);
	for (i = 0; i < size; i++)
	{
		*pbuf++ = *psrc++;
	}
	
	return TRUE;
}

void __irq LCD_ISR(void)
{
    rI_ISPC=BIT_EINT0;

}

int check_lcdbusy()
{
	int a;
	a = rPDATD&1;
	return a;
}

void lcd_writeram(U8 addr,U8 dat)
{
//	while(check_lcdbusy());
//	*(U8 *)LCD_RAM = addr;
	*(U8 *)LCD_RAM = dat;
	delay(10);
}

U8 lcd_readram(U8 addr)
{
	U8 a;
//	while(check_lcdbusy());
//	*(U8 *)LCD_RAM = addr;
	a = *(U8 *)LCD_RAM;
	delay(10);
	return a;
}


void lcd_writereg(U8 addr,U8 dat)
{
	*(U8 *)LCD_CONTROL = addr;
	*(U8 *)LCD_CONTROL = dat;
	delay(10);
}

U8 lcd_readreg(U8 addr)
{
	U8 a;
	*(U8 *)LCD_CONTROL = addr;
	delay(10);
	a = *(U8 *)LCD_CONTROL;
	return a;
}

void gotoxy(U8 x,U8 y) 
{                                
  lcd_writereg(0x60,x); 
  lcd_writereg(0x70,y); 
}

void lcdclear()
{
  lcd_writereg(0xe0,0); 
   lcd_writereg(0xf0,0xa8); 
   lcd_writereg(0xf0,0xa0); 

}

void test()
{
	U8 a,i;
	a= 0;
	for (i=0;i<50;i++)
	{
		*(U8 *)LCD_CONTROL = i;
		a = *(U8 *)LCD_CONTROL;
		delay(1);	
	
	}

}

void lcd_init()
{
  lcd_writereg(0x00,0xcc); // lcd控制寄存器:       正常文字模式
  lcd_writereg(0x01,0xf2); // 中断与忙碌寄存器:    8M的晶振高电平触发
  lcd_writereg(0x02,0x10); // ORM、RAM寄存器:      字体大小,水平一倍,垂直2倍
  lcd_writereg(0x03,0x80); // 光标显示寄存器:      光标平移动、不自动
  lcd_writereg(0x10,0x7f); // 光标指针寄存器:      自动移位。正常字体显示
  lcd_writereg(0x11,0x00); // 光标高度与宽度:      默认
  lcd_writereg(0x12,0x11); // 图形显示寄存器:      先水平后垂直

//窗口大小改动

  lcd_writereg(0x21,0x13); // 窗口显示寄存器:      右边位置(320*240)=(320/8)-1=39=27H
  lcd_writereg(0x31,0xef); // 窗口显示寄存器:      底边位置(320*240)=240-1=239=EFH
  lcd_writereg(0x41,0x00); // 窗口显示寄存器:      左边位置
  lcd_writereg(0x51,0x00); // 窗口显示寄存器:      顶边位置   

  lcd_writereg(0x20,0x13); // 工作窗口显示寄存器:  右边 (320*240)=(320/8)-1=39=27H
  lcd_writereg(0x30,0xef); // 工作窗口显示寄存器:  底边(320*240)=240-1=239=EFH
  lcd_writereg(0x40,0x00); // 工作窗口显示寄存器:  左边
  lcd_writereg(0x50,0x00); // 工作窗口显示寄存器:  顶边
  lcd_writereg(0x60,0x00); // 光标地址移位寄存器:  CPXR=00H          
  lcd_writereg(0x61,0x00); // begin segment position register(bgsg)
  lcd_writereg(0x70,0x00); // 光标地址移位寄存器:  CPYR=00H 
  lcd_writereg(0x71,0x00); // 光标滚动其始地址:    00H
  lcd_writereg(0x72,0xef); // 光标滚动结束地址:    EFH
  lcd_writereg(0xf1,0x0f); 
/*
  lcd_writereg(0x80,0xaa); // 光标闪烁时间设定:=Bit[7....0]*1/Frame_Rate
  lcd_writereg(0x81,0x00); // 保留:设定00H
  //lcd_writereg(0x81,0x0c); // 保留:设定00H
  lcd_writereg(0x91,0x00); // 保留:设定00H
  lcd_writereg(0x90,0x06); // 屏幕周期更新设定:SCCR=(SCLK*DBW)/(Column*ROW*FRS)
                                               //   =(8MHz*4)/(320*240*70)            
  lcd_writereg(0xa0,0x0); // 中断寄存器:
  lcd_writereg(0xa1,0x00); // key scan control register(kscr)            
  lcd_writereg(0xa2,0x00); // key scan data register(ksdr)
  lcd_writereg(0xa3,0x00); // key scan data expand register(kser)
  lcd_writereg(0xb0,0x27); // 中断缓存器(intx)与CPXR相同发生中断
  lcd_writereg(0xb1,0xef); // 中断缓存器(inty)与CPYR相同发生中断
  lcd_writereg(0xc0,0x00); // 触摸功能寄存器(C0):
  lcd_writereg(0xc1,0x0a); 
  lcd_writereg(0xc8,0x80); 
  lcd_writereg(0xc9,0x80); 
  lcd_writereg(0xca,0x00); 
  lcd_writereg(0xd0,0x80); 

  lcd_writereg(0xe0,0x0); 
   lcd_writereg(0xf0,0xa8); 
  lcd_writereg(0xf1,0x0f); 
*/
}

⌨️ 快捷键说明

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