易码技术论坛

 找回密码
 加入易码
搜索
楼主: dragon_

最终版Tc808硬件4灰度驱动程序 附重要资料:SPLD803B的DATASHEET

[复制链接]
发表于 2006-11-21 22:44:15 | 显示全部楼层
引用第39楼dragon_2006-11-21 21:18发表的“”:
可是SPLD803的芯片是设定好了的160*80的行列数啊。而且为什么会在灰度模式下把同一套显存数据用两遍呢?
呀,对了我突然想到一个情况,等我再试试……
唉,刚才看错了,试了还是不行。

错!
灰度模式的160相当于黑白模式的320,所以你设成160就错了,应该是320
发表于 2006-11-22 00:54:02 | 显示全部楼层
lee,可能你没看明白他的意思,他$19c0-$1fff的内容被使用了两次的意思是说,本来照理看屏幕第一行的显存是$19c0-$19e7,然后第二行是$19e8-$1a10...但是现在的情况明显是第一行显存是$19c0-$19e7,然后第二行却是$19d4-$19fb...所以实际上现在的显存是$19c0-$2013,而不是想像中的$19c0-$263f,所以显示上就成了左右双屏了.
不知道有没有越说越乱...
我看到datasheet里边说到一个地址
6). Address (11)h: Flag of n-raster-row selected:default value(xxx00000)

Address (11)h B7 X B6 X B5 NW5 B4 NW4

IBM_DRAGON B3 NW3 B2 NW2 B1 NW1 B0 NW0

NW5 - 0: Specify the number of raster-rows n that will alternate at the C-pattern waveform. NW5 - 0 alternate for every set (n + 1) raster-row, and the first to the 64th raster-rows can be selected. Example: [NW5:0] = [0 0 1 1 0 1] will alternate every 14th raster-rows at the C-pattern waveform.
难道和这个地址有关?但是我设置过之后好像没有用...
发表于 2006-11-22 09:30:58 | 显示全部楼层
错!
按我说的去做。应该可以的
发表于 2006-11-22 09:32:35 | 显示全部楼层
绝对是行宽设置的错误
发表于 2006-11-22 09:40:41 | 显示全部楼层
我再仔细的说明一下:
所谓行宽,其实不是一行的点数,而是一行的数据bit数
当然,在黑白模式下,行宽=点数
但是,当切换为4灰度模式,行宽=点数*2,这时如果仍设行宽为160bit,实际上一行就只有80点了。
发表于 2006-11-22 12:28:18 | 显示全部楼层
哈哈,datasheet终于弄到了,好好研究去了!
发表于 2006-11-22 12:39:20 | 显示全部楼层
好强.
 楼主| 发表于 2006-11-22 22:26:35 | 显示全部楼层
引用第45楼leesoft2006-11-22 09:40发表的“”:
我再仔细的说明一下:
所谓行宽,其实不是一行的点数,而是一行的数据bit数
当然,在黑白模式下,行宽=点数
但是,当切换为4灰度模式,行宽=点数*2,这时如果仍设行宽为160bit,实际上一行就只有80点了。
lee,我完全理解你的意思,但是现在还没有找到解决的办法。
另外,我还是不明白,DATASHEET里并没有显存开始地址的选项,显存数据的输入是通过四条线D0~D3来进行的,那么,驱动芯片是怎样对显存进行操作的呢?
我看到DATASHEET最后有一个电路应用,上面spld803还接了另外一个芯片,并不是直接与6502cpu相连的。是不是通过那个芯片来完成的呢?
发表于 2006-11-22 22:53:26 | 显示全部楼层
那你就慢慢找解决的办法吧
不要把问题想的太复杂了,那样会引入歧途
发表于 2006-11-22 23:02:00 | 显示全部楼层
0x06,0x0d这两个io对设置lcd有作用,你可以试一下
发表于 2006-11-23 10:29:59 | 显示全部楼层
只想问一下
对NC2600C是否有用?
发表于 2006-11-23 10:56:38 | 显示全部楼层
你试一下就知道了
理论上是通用的
发表于 2006-11-23 11:19:53 | 显示全部楼层
引用第50楼leesoft2006-11-22 23:02发表的“”:
0x06,0x0d这两个io对设置lcd有作用,你可以试一下
怎么用啊??提示一下啊,拜托~~
发表于 2006-11-23 11:31:37 | 显示全部楼层
试一下就知道了,好久没碰6502了,记不太清楚用法了
一个是设lcd起事地址,一个是设屏宽
都要改
lcd起事地址需要在黑白的基础上减去1600个字节,屏宽需加倍
发表于 2006-11-23 11:35:17 | 显示全部楼层
我这里没有硬件环境,所以只能提供遥控指导了
你可以把这两个io的数据读出来,我帮你看看怎么改
发表于 2006-11-23 11:36:47 | 显示全部楼层
好的,==
发表于 2006-11-23 11:39:09 | 显示全部楼层
0x06是$01
0x0d是$14
不过不确定,嘿嘿,猜的!
发表于 2006-11-23 11:49:34 | 显示全部楼层
0x0d是$14,那么就是行宽了,20个字节,试着加倍看看效果
我的记忆是nc2000的资料,不见得适用,试试吧
0x06可以多试几个值,看显示缓冲有无变化
发表于 2006-11-23 11:51:14 | 显示全部楼层
好的,试试~~
发表于 2006-11-23 17:43:29 | 显示全部楼层
NC3K的错误好象是下标越界,什么负址之类的.
您需要登录后才可以回帖 登录 | 加入易码

本版积分规则

Archiver|手机版|小黑屋|EMAX Studio

GMT+8, 2024-4-23 18:16 , Processed in 0.011800 second(s), 16 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表