[ZLG-ARM] 请教下用sed1335控制液晶得问题

[复制链接]
3688|12
 楼主| hpqhpq 发表于 2007-3-29 21:43 | 显示全部楼层 |阅读模式
最近在EASY2200上调液晶,用自带得液晶跑得通,项目需要,换了款基于1335控制器得液晶,用得是总线方式,调了好久也没弄通,程序如下:<br />程序说明:程序中有些中间调试过程,看了不少帖子,说是加延时或读忙状态,都还是不行<br /><br />其中BCFG3&nbsp;=&nbsp;0x1000FFEF都不行<br /><br />还有个很奇怪得问题:把CS直接接地,液晶就能初始化成功,但显示得乱七八糟得,想想可能和RAM访问有关(程序在RAM中运行得)<br />还有接线得时候偷懒了一下,直接就基本上接在以前得液晶接口上得,只是调节了一下线得位置,兼容性好像还不赖<br /><br />各位帮帮忙哈~~~~~<br /><br />#include&nbsp;&quot;config.h&quot;<br /><br />TCOLOR&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;gui_disp_buf[GUI_LCM_YMAX][GUI_LCM_XMAX/8];&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;声明GUI显示缓冲区<br /><br />/*&nbsp;定义LCM地址&nbsp;*/<br />#define&nbsp;&nbsp;TG240128_COM&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(*((volatile&nbsp;unsigned&nbsp;short&nbsp;*)&nbsp;0x83000002))<br />#define&nbsp;&nbsp;TG240128_DAT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(*((volatile&nbsp;unsigned&nbsp;short&nbsp;*)&nbsp;0x83000000))<br /><br /><br />#define&nbsp;&nbsp;Busy&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0x40<br /><br /><br />#define&nbsp;Wait_For_Busy()&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;while&nbsp;(LCD_ReadState()&&nbsp;Busy);<br />#define&nbsp;delay(x)&nbsp;&nbsp;&nbsp;{unsigned&nbsp;char&nbsp;i=x;&nbsp;while(i--);}<br />/**********************************************************************<br />*&nbsp;名称:LCD_ReadState()<br />*&nbsp;功能:读取状态字子程序。<br />*&nbsp;入口参数:无<br />*&nbsp;出口参数:返回值即为读出的状态字<br />*&nbsp;说明:函数会设置LCD数据总线为输入方式<br />***********************************************************************/<br />#define&nbsp;LCD_ReadState()&nbsp;&nbsp;TG240128_COM<br />/**********************************************************************<br />*&nbsp;名称:LCD_WriteCommand()<br />*&nbsp;功能:写命令子程序。(发送命令前,不检查液晶模块的状态)<br />*&nbsp;入口参数:command&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;要写入LCD的命令字<br />*&nbsp;出口参数:无<br />*&nbsp;说明:函数会设置LCD数据总线为输出方式<br />***********************************************************************/<br />#define&nbsp;&nbsp;&nbsp;LCD_WriteCommand(command)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{/*Wait_For_Busy();*/TG240128_COM&nbsp;=&nbsp;(unsigned&nbsp;short)(command);/*&nbsp;delay(15);*/&nbsp;}<br />/**********************************************************************<br />*&nbsp;名称:LCD_WriteData()<br />*&nbsp;功能:写数据子程序。(发送数据前,不检查液晶模块的状态)<br />*&nbsp;入口参数:dat&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;要写入LCD的数据<br />*&nbsp;出口参数:无<br />*&nbsp;说明:函数会设置LCD数据总线为输出方式<br />***********************************************************************/<br />#define&nbsp;LCD_WriteData(dat)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{/*Wait_For_Busy();*/TG240128_DAT&nbsp;=&nbsp;(unsigned&nbsp;short)(dat);/*delay(100);*/}<br /><br /><br />/*&nbsp;SED1335&nbsp;命令定义&nbsp;*/<br />#define&nbsp;LCD_SYS_SET&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0x40&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/*&nbsp;初始化,显示窗口设置&nbsp;参数8个&nbsp;*/<br />#define&nbsp;LCD_SLEEP_IN&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0x53&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/*&nbsp;空闲操作&nbsp;参数0个&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*/<br /><br />#define&nbsp;LCD_DIS_ON&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0x59&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/*&nbsp;显示开&nbsp;参数1个&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*/<br />#define&nbsp;LCD_DIS_OFF&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0x58&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/*&nbsp;显示关&nbsp;参数1个&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*/<br />#define&nbsp;LCD_SCR_OLL&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0x44&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/*&nbsp;设置显示区域,卷动&nbsp;参数10个&nbsp;*/<br />#define&nbsp;LCD_CSR_FOM&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0x5D&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/*&nbsp;设置光标形状&nbsp;参数2个&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*/<br />#define&nbsp;LCD_CGR_ADD&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0x50&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/*&nbsp;设置CGRAM起始地址&nbsp;参数2个&nbsp;&nbsp;&nbsp;*/<br />#define&nbsp;LCD_CSR_DIR&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0x4C&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/*&nbsp;设置光标移动方向&nbsp;参数0个&nbsp;&nbsp;&nbsp;*/<br />#define&nbsp;LCD_DOT_DIR&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0x5A&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/*&nbsp;设置点单元卷动位置&nbsp;参数1个&nbsp;&nbsp;&nbsp;*/<br />#define&nbsp;LCD_DIS_OVR&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0x5B&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/*&nbsp;设置合成显示方式&nbsp;参数1个&nbsp;&nbsp;&nbsp;*/<br /><br />#define&nbsp;LCD_CSR_WR&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0x46&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/*&nbsp;设置光标位置&nbsp;参数2个&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*/<br />#define&nbsp;LCD_CSR_RD&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0x47&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/*&nbsp;读出光标位置&nbsp;参数2个&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*/<br /><br />#define&nbsp;LCD_MEM_WR&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0x42&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/*&nbsp;写入显示缓冲区&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*/<br />#define&nbsp;LCD_MEM_RD&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0x43&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/*&nbsp;从显示缓冲区读出&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*/<br /><br />#define&nbsp;GET_LOW_BYTE(DAT)&nbsp;&nbsp;&nbsp;&nbsp;((unsigned&nbsp;short)((DAT)&0xff))&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/*取DAT的低8位*/<br />#define&nbsp;GET_HIG_BYTE(DAT)&nbsp;&nbsp;&nbsp;&nbsp;((unsigned&nbsp;short)((DAT)&gt&gt8))&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/*取DAT的高8位*/<br /><br />unsigned&nbsp;char&nbsp;&nbsp;DCB_HEX_TAB[8]&nbsp;=&nbsp;{0x80,&nbsp;0x40,&nbsp;0x20,&nbsp;0x10,&nbsp;0x08,0x04,&nbsp;0x02,&nbsp;0x01};<br />unsigned&nbsp;char&nbsp;&nbsp;SYS_INIT_DAT[8]&nbsp;=&nbsp;{0x30,&nbsp;0x87,&nbsp;0x07,&nbsp;0x27,&nbsp;0x42,0xef,&nbsp;0x28,&nbsp;0x00};//{0x30,&nbsp;0x87,&nbsp;0x07,&nbsp;0x27,&nbsp;0x2F,0xef,&nbsp;0x28,&nbsp;0x00};<br />unsigned&nbsp;char&nbsp;&nbsp;SCROLL_DAT[10]&nbsp;=&nbsp;{0x00,&nbsp;0x00,&nbsp;0xf0,&nbsp;0x80,&nbsp;0x25,&nbsp;0xF0,&nbsp;0x80,&nbsp;0x50,0x00,0x60};//{0x00,&nbsp;0x00,&nbsp;0xF0,&nbsp;0xb0,&nbsp;0x04,&nbsp;0xf0,&nbsp;0x80,&nbsp;0x50,0x00,0x60};<br /><br />/****************************************************************************<br />*&nbsp;名称:DelayNS()<br />*&nbsp;功能:长软件延时<br />*&nbsp;入口参数:dly&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;延时参数,值越大,延时越久<br />*&nbsp;出口参数:无<br />****************************************************************************/<br />void&nbsp;&nbsp;DelayS(uint16&nbsp;&nbsp;dly)<br />{&nbsp;&nbsp;uint32&nbsp;&nbsp;ii;<br />&nbsp;&nbsp;&nbsp;for(ii=0;&nbsp;ii&ltdly;&nbsp;ii++);<br />}<br /><br />void&nbsp;&nbsp;GUI_Initialize(void)<br />{&nbsp;<br />&nbsp;&nbsp;unsigned&nbsp;char&nbsp;i;<br />&nbsp;&nbsp;LCD_WriteCommand(LCD_SYS_SET);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;<br />&nbsp;&nbsp;DelayS(15);<br />&nbsp;&nbsp;for(i=0&nbsp;;&nbsp;i&nbsp;&lt&nbsp;8&nbsp;;&nbsp;i++)<br />&nbsp;&nbsp;&nbsp;&nbsp;{LCD_WriteData(SYS_INIT_DAT);<br />&nbsp;&nbsp;&nbsp;&nbsp;DelayS(15);<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br /><br />&nbsp;&nbsp;LCD_WriteCommand(LCD_SCR_OLL);&nbsp;DelayS(15);&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;<br />&nbsp;&nbsp;for(i=0&nbsp;;&nbsp;i&nbsp;&lt&nbsp;10&nbsp;;&nbsp;i++)<br />&nbsp;&nbsp;&nbsp;&nbsp;{LCD_WriteData(SCROLL_DAT);DelayS(15);}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;LCD_WriteCommand(LCD_DOT_DIR);DelayS(15);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;<br />&nbsp;&nbsp;LCD_WriteData(0x00);&nbsp;&nbsp;&nbsp;DelayS(15);<br />&nbsp;&nbsp;LCD_WriteCommand(LCD_DIS_OVR);&nbsp;DelayS(15);&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;<br />&nbsp;&nbsp;LCD_WriteData(0x0C);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DelayS(15);<br />&nbsp;&nbsp;LCD_WriteCommand(LCD_DIS_ON);&nbsp;DelayS(15);&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;<br />&nbsp;&nbsp;LCD_WriteData(0x04);DelayS(15);<br />&nbsp;&nbsp;LCD_WriteCommand(LCD_CSR_WR);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;<br />&nbsp;&nbsp;LCD_WriteData(0x00);&nbsp;<br />&nbsp;&nbsp;LCD_WriteData(0x00);<br />&nbsp;&nbsp;LCD_WriteCommand(LCD_CSR_DIR);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;<br />&nbsp;&nbsp;LCD_FillAll(0);<br />&nbsp;&nbsp;<br />}<br />
foyyof 发表于 2007-3-30 08:56 | 显示全部楼层

在以前的帖子里搜索 S1D1335,有很多!

++++
 楼主| hpqhpq 发表于 2007-3-30 09:30 | 显示全部楼层

搜过,但还是没解决~~~~

不知道是啥问题
 楼主| hpqhpq 发表于 2007-3-30 10:03 | 显示全部楼层

兄弟们,帮帮忙哦,调好久了

能不能把BCFG得参数说一下,应该是大一点好把?
 楼主| hpqhpq 发表于 2007-3-30 13:38 | 显示全部楼层

是啊

是呀,就是320×240得,哪里有问题哦~<br />以前在单片机上用得就是那种初始化参数哦<br />没什么问题得呀
 楼主| hpqhpq 发表于 2007-3-30 13:55 | 显示全部楼层

楼上得蝈蝈能不能给个例子

  
 楼主| hpqhpq 发表于 2007-3-30 14:06 | 显示全部楼层

自己说一下,我已经把总线得时序设成最宽了~

还加了延时,还是不行
xwj 发表于 2007-3-30 14:29 | 显示全部楼层

呵呵,谁在玩蝈蝈啊?好抓吗?

  
leishasha 发表于 2007-3-30 16:00 | 显示全部楼层

try

在&nbsp;lcmdrv.h中有个定义,不知道改了没<br /><br />/*&nbsp;定义LCM像素数宏&nbsp;*/<br />#define&nbsp;&nbsp;GUI_LCM_XMAX&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;128&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/*&nbsp;定义液晶x轴的像素数&nbsp;*/<br />#define&nbsp;&nbsp;GUI_LCM_YMAX&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;64&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/*&nbsp;定义液晶y轴的像素数&nbsp;*/
 楼主| hpqhpq 发表于 2007-3-30 16:22 | 显示全部楼层

改了得呀,都还是没反应

  
 楼主| hpqhpq 发表于 2007-3-30 16:32 | 显示全部楼层

有没有兄弟们是直接在EASYARM2200上调sed1335呢?

  
leishasha 发表于 2007-3-30 16:39 | 显示全部楼层

可能情况

你最好再看看液晶芯片的资料,也不知道你是不是用图形方式显示,如果ok,则是不需要把数据送到CGRAM中,而是直接送的
 楼主| hpqhpq 发表于 2007-3-30 17:09 | 显示全部楼层

我以前在单片机上调通过得,液晶得初始化程序应该没啥问

  
您需要登录后才可以回帖 登录 | 注册

本版积分规则

3

主题

17

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部