sitronix7*彩色LCDdriver的困惑

[复制链接]
2521|0
 楼主| Wizzy 发表于 2008-3-31 00:58 | 显示全部楼层 |阅读模式
第一次使用Sitronix的彩色LCD&nbsp;driver,开发故事书,电子书及数码相框,遇到了以下问题,请大虾们指教:<br /><br />环境:使用的是LCD厂家成品LCD(ST7669),8bit&nbsp;parallet接口<br />1)初始化程序调用资料上的(Initial_ST7669();56k颜色),基本没改,改了对比度参数,应该控制到了,很多命令的响应正确。<br />2)然后希望得到红绿蓝条纹,程序如下,有条纹,颜色错<br />void&nbsp;main()<br />{<br />&nbsp;&nbsp;&nbsp;...<br />&nbsp;&nbsp;&nbsp;Initial_ST7669();<br />&nbsp;&nbsp;&nbsp;...<br /><br />&nbsp;&nbsp;&nbsp;WP7(LC,0x2c);<br />&nbsp;&nbsp;&nbsp;j=0xf800;<br />&nbsp;&nbsp;&nbsp;for&nbsp;(i=0;i&lt0x1000;i++)<br />&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;WP7(LD,j&gt&gt8);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;WP7(LD,j&0xff);<br />&nbsp;&nbsp;&nbsp;}<br /><br />&nbsp;&nbsp;&nbsp;j=0xffff;<br />&nbsp;&nbsp;&nbsp;for&nbsp;(i=0;i&lt0x1000;i++)<br />&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;WP7(LD,j&gt&gt8);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;WP7(LD,j&0xff);<br />&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;j=0x7e0;<br />&nbsp;&nbsp;&nbsp;for&nbsp;(i=0;i&lt0x1000;i++)<br />&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;WP7(LD,j&gt&gt8);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;WP7(LD,j&0xff);<br />&nbsp;&nbsp;&nbsp;}<br /><br />&nbsp;&nbsp;&nbsp;j=0xffff;<br />&nbsp;&nbsp;&nbsp;for&nbsp;(i=0;i&lt0x1000;i++)<br />&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;WP7(LD,j&gt&gt8);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;WP7(LD,j&0xff);<br />&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;j=0x1f;<br />&nbsp;&nbsp;&nbsp;for&nbsp;(i=0;i&lt0x1000;i++)<br />&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;WP7(LD,j&gt&gt8);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;WP7(LD,j&0xff);<br />&nbsp;&nbsp;&nbsp;}<br /><br />&nbsp;&nbsp;&nbsp;WP7(LC,0x29);<br />&nbsp;&nbsp;&nbsp;while(1);<br />}<br />3)测试读写数据:<br />&nbsp;&nbsp;&nbsp;...<br />&nbsp;&nbsp;&nbsp;Initial_ST7669();<br />&nbsp;&nbsp;&nbsp;...<br />&nbsp;&nbsp;&nbsp;WP7(LC,0x2c);<br />&nbsp;&nbsp;&nbsp;for&nbsp;(i=0;i&lt0xa000;i++)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;WP7(LD,0xff);<br />&nbsp;&nbsp;&nbsp;WP7(LC,0x2e);<br />&nbsp;&nbsp;&nbsp;for&nbsp;(i=0;i&lt0x100;i++)<br />&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;j=RFlashByte(CS3Offset+1);//这个是根据我系统需要的一个外部存储器读子程序,地址设置肯定没错<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TxHex(j);<br />&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;//通过232得到数据:0x00,0xfc,0xfc,0xfc.....<br />&nbsp;&nbsp;&nbsp;for&nbsp;(i=0;i&lt0xa000;i++)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;WP7(LD,0x00);<br />&nbsp;&nbsp;&nbsp;WP7(LC,0x2e);<br />&nbsp;&nbsp;&nbsp;for&nbsp;(i=0;i&lt0x100;i++)<br />&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;j=RFlashByte(CS3Offset+1);//这个是根据我系统需要的一个外部存储器读子程序,地址设置肯定没错<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TxHex(j);<br />&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;//通过232得到数据:00&nbsp;FC&nbsp;1C&nbsp;C0&nbsp;FC&nbsp;1C&nbsp;C0&nbsp;FC&nbsp;1C&nbsp;C0&nbsp;...<br />&nbsp;&nbsp;&nbsp;<br />3)显示RAM全部写0时,得到的好像是黑屏,全写0xff时,得到的是反而是白屏,因为颜色控制一直没调通<br />4)初始化程序<br />void&nbsp;Initial_ST7669()<br />{<br />&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;//*****disable&nbsp;autoread&nbsp;+&nbsp;Manual&nbsp;read&nbsp;once<br />&nbsp;&nbsp;&nbsp;Write7669(LcdCmd,0xd7);&nbsp;//Auto&nbsp;Load&nbsp;Set<br />&nbsp;&nbsp;&nbsp;Write7669(LcdDat,0xdf);&nbsp;//Auto&nbsp;Load&nbsp;Disable<br /><br />&nbsp;&nbsp;&nbsp;Write7669(LcdCmd,0xE0);&nbsp;//EE&nbsp;Read/write&nbsp;mode<br />&nbsp;&nbsp;&nbsp;Write7669(LcdDat,0x00);&nbsp;//Set&nbsp;read&nbsp;mode<br /><br />&nbsp;&nbsp;&nbsp;Delay1ms(10);<br />&nbsp;&nbsp;&nbsp;Write7669(LcdCmd,0xE3);&nbsp;//Read&nbsp;active<br />&nbsp;&nbsp;&nbsp;Delay1ms(20);<br />&nbsp;&nbsp;&nbsp;Write7669(LcdCmd,0xE1);&nbsp;//Cancel&nbsp;control<br />&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;//*****Sleep&nbsp;OUT<br />&nbsp;&nbsp;&nbsp;Write7669(LcdCmd,0x11);&nbsp;//Sleep&nbsp;Out<br />&nbsp;&nbsp;&nbsp;Write7669(LcdCmd,0x28);&nbsp;//Display&nbsp;OFF<br />&nbsp;&nbsp;&nbsp;Delay1ms(50);<br />&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;//*****Vop&nbsp;setting<br />&nbsp;&nbsp;&nbsp;Write7669(LcdCmd,0xC0);&nbsp;//Set&nbsp;Vop&nbsp;by&nbsp;initial&nbsp;Module<br />&nbsp;&nbsp;&nbsp;Write7669(LcdDat,0x04);&nbsp;//Vop&nbsp;=&nbsp;14V<br />&nbsp;&nbsp;&nbsp;Write7669(LcdDat,0x01);&nbsp;//base&nbsp;on&nbsp;Module<br />&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;//*****Set&nbsp;Register<br />&nbsp;&nbsp;&nbsp;Write7669(LcdCmd,0xC3);&nbsp;//Bias&nbsp;select<br />&nbsp;&nbsp;&nbsp;Write7669(LcdDat,0x05);&nbsp;//1/9&nbsp;Bias,base&nbsp;on&nbsp;Module<br />&nbsp;&nbsp;&nbsp;Write7669(LcdCmd,0xC4);&nbsp;//Setting&nbsp;Booster&nbsp;times<br />&nbsp;&nbsp;&nbsp;Write7669(LcdDat,0x07);&nbsp;//Booster&nbsp;X&nbsp;8<br />&nbsp;&nbsp;&nbsp;Write7669(LcdCmd,0xC5);&nbsp;//Booster&nbsp;eff<br />&nbsp;&nbsp;&nbsp;Write7669(LcdDat,0x21);&nbsp;//BE&nbsp;=&nbsp;0x01&nbsp;(Level&nbsp;2)<br />&nbsp;&nbsp;&nbsp;Write7669(LcdCmd,0xCB);&nbsp;//Vg&nbsp;with&nbsp;booster&nbsp;x2&nbsp;control<br />&nbsp;&nbsp;&nbsp;Write7669(LcdDat,0x01);&nbsp;//Vg&nbsp;from&nbsp;Vdd2<br />&nbsp;&nbsp;&nbsp;Write7669(LcdCmd,0xCC);&nbsp;//ID1&nbsp;=&nbsp;00<br />&nbsp;&nbsp;&nbsp;Write7669(LcdDat,0x00);&nbsp;//<br />&nbsp;&nbsp;&nbsp;Write7669(LcdCmd,0xCE);&nbsp;//ID3&nbsp;=&nbsp;00<br />&nbsp;&nbsp;&nbsp;Write7669(LcdDat,0x00);<br /><br />&nbsp;&nbsp;&nbsp;Write7669(LcdCmd,0xB7);&nbsp;//COM/SEG&nbsp;Direction&nbsp;for&nbsp;glass&nbsp;//<br />&nbsp;&nbsp;&nbsp;Write7669(LcdDat,0x48);&nbsp;//Setting&nbsp;by&nbsp;LCD&nbsp;module<br /><br />&nbsp;&nbsp;&nbsp;Write7669(LcdCmd,0xD0);&nbsp;//Analog&nbsp;circuit&nbsp;setting<br />&nbsp;&nbsp;&nbsp;Write7669(LcdDat,0x1D);&nbsp;//<br /><br />&nbsp;&nbsp;&nbsp;Write7669(LcdCmd,0xB5);&nbsp;//NLine<br />&nbsp;&nbsp;&nbsp;Write7669(LcdDat,0x8D);&nbsp;//NonRST,14line&nbsp;inversion<br /><br />&nbsp;&nbsp;&nbsp;Write7669(LcdCmd,0xD7);&nbsp;//Auto&nbsp;read&nbsp;Set<br />&nbsp;&nbsp;&nbsp;Write7669(LcdDat,0x9F);&nbsp;//OTP&nbsp;Disable<br /><br />&nbsp;&nbsp;&nbsp;Write7669(LcdCmd,0xB4);&nbsp;//PTL&nbsp;Mode&nbsp;Select<br />&nbsp;&nbsp;&nbsp;Write7669(LcdDat,0x18);&nbsp;//PTLMOD&nbsp;à&nbsp;Normal&nbsp;Mode<br /><br />&nbsp;&nbsp;&nbsp;Write7669(LcdCmd,0x38);&nbsp;//Color&nbsp;mode&nbsp;=&nbsp;65k<br /><br />&nbsp;&nbsp;&nbsp;Write7669(LcdCmd,0x3A);&nbsp;//Color&nbsp;mode&nbsp;=&nbsp;65k<br />&nbsp;&nbsp;&nbsp;Write7669(LcdDat,0x05);&nbsp;//<br /><br />&nbsp;&nbsp;&nbsp;Write7669(LcdCmd,0x25);&nbsp;//Contrast<br />&nbsp;&nbsp;&nbsp;Write7669(LcdCmd,0x60);<br /><br />&nbsp;&nbsp;&nbsp;Write7669(LcdCmd,0x36);&nbsp;//Memory&nbsp;Access&nbsp;Control&nbsp;//<br />&nbsp;&nbsp;&nbsp;//Write7669(LcdDat,0xC8);&nbsp;//Setting&nbsp;by&nbsp;LCD&nbsp;module<br />&nbsp;&nbsp;&nbsp;Write7669(LcdDat,0x00);&nbsp;//Setting&nbsp;by&nbsp;LCD&nbsp;module<br /><br />&nbsp;&nbsp;&nbsp;Write7669(LcdCmd,0xB0);&nbsp;//Duty&nbsp;=&nbsp;160&nbsp;duty<br />&nbsp;&nbsp;&nbsp;Write7669(LcdDat,0x9F);<br /><br />&nbsp;&nbsp;&nbsp;Write7669(LcdCmd,0x20);&nbsp;//Display&nbsp;Inversion&nbsp;OFF<br />&nbsp;&nbsp;&nbsp;//Write7669(LcdCmd,0x21);&nbsp;//Display&nbsp;Inversion&nbsp;ON<br /><br />&nbsp;&nbsp;&nbsp;Write7669(LcdCmd,0xF7);&nbsp;//command&nbsp;for&nbsp;temp&nbsp;sensitivity.<br />&nbsp;&nbsp;&nbsp;Write7669(LcdCmd,0x06);&nbsp;//<br />&nbsp;&nbsp;&nbsp;Write7669(LcdCmd,0x2A);&nbsp;//COL//<br />&nbsp;&nbsp;&nbsp;Write7669(LcdDat,0x00);&nbsp;//0~127<br />&nbsp;&nbsp;&nbsp;Write7669(LcdDat,0x00);<br />&nbsp;&nbsp;&nbsp;Write7669(LcdDat,0x00);<br />&nbsp;&nbsp;&nbsp;Write7669(LcdDat,0x7F);<br />&nbsp;&nbsp;&nbsp;Write7669(LcdCmd,0x2B);&nbsp;//Page&nbsp;//<br />&nbsp;&nbsp;&nbsp;Write7669(LcdDat,0x00);&nbsp;//0~159<br />&nbsp;&nbsp;&nbsp;Write7669(LcdDat,0x00);<br />&nbsp;&nbsp;&nbsp;Write7669(LcdDat,0x00);<br />&nbsp;&nbsp;&nbsp;Write7669(LcdDat,0x9F);<br />}<br />
您需要登录后才可以回帖 登录 | 注册

本版积分规则

4

主题

19

帖子

0

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