关于德州仪器z80与64k系列屏幕的问题
我看到他们的介绍贴都写了可实现16阶灰度可是我在使用过程中并没有感觉到屏幕像大黑那样可以灰度。而是像Casio98系列那样非黑即白 68k自身basic不带,c 及汇编都轻松实现。来个熟人给个例子?我有一个晚上给你 z80不关注。 68K, Z80和9860实现灰度的方式都是一样的,就是通过控制屏幕的刷新速率来实现的 本帖最后由 jiage嘉哥 于 2014-4-25 11:46 编辑
直径菌提到过: http://www.cncalc.org/thread-7795-1-1.html
然后实现方式就是楼上说的了...
引用nbzwt的一段解释好了...
3# diameter 作为一个灰度屏幕控+单片机玩家,我来解释一下。目前所有的黑白屏灰度技术,实质上都是通过抖动来实现的,正规的实现方法有两种,FRC和PWM。FRC是通过屏幕的控制器来实现的,而PWM是屏幕的驱动器来实现的。因为LCD的结构原因,使得其必须不断地刷新,如果在前后帧改变黑白情况,黑和白快速地在几帧中快速交替显示,那么就有了灰度效果。PWM和FRC都属于硬件实现的方法,相对低功耗。Ti-Nspire用的就是FRC技术来实现的灰度。但是Ti-89的LCD控制器和驱动器都不支持灰度,那么怎么办呢?只能用CPU软件来实现快速地刷新,导致十分费电,而且由于同步等原因,效果并不好。这就是为什么Ti-nspire的UI是灰度的,而Ti-89的却是纯黑白的这种靠cpu刷新的灰度其实在函数机ti-36xpro又一次异常弄出过四级灰度,其实就是同屏幕反色不断闪动实现的四级灰度 //ti-68K C
// Grayscale test program for TIGCC
#define USE_TI89
#define USE_TI92PLUS
#define USE_V200
#define MIN_AMS 100
#define SAVE_SCREEN
#include <tigcclib.h>
void _main(void)
{
if (!GrayOn ())
return;
GraySetAMSPlane (LIGHT_PLANE);
ClrScr ();
ScrRectFill (&(SCR_RECT){{20,20,40,40}}, ScrRect, A_NORMAL);
ScrRectFill (&(SCR_RECT){{80,20,100,40}}, ScrRect, A_NORMAL);
GraySetAMSPlane (DARK_PLANE);
ClrScr ();
ScrRectFill (&(SCR_RECT){{50,20,70,40}}, ScrRect, A_NORMAL);
ScrRectFill (&(SCR_RECT){{80,20,100,40}}, ScrRect, A_NORMAL);
ngetchx ();
GrayOff ();
}
朔雪X忆 发表于 2014-4-25 11:33
68K, Z80和9860实现灰度的方式都是一样的,就是通过控制屏幕的刷新速率来实现的
那不是很费电...那大黑那种就是真灰度了咯 V200在灰度程序中的系统截图。验证前辈们的结论
再如,俄罗斯方块TETRIS 本来是灰度变化的 549597890 发表于 2014-4-25 22:18
再如,俄罗斯方块TETRIS 本来是灰度变化的
感觉不到有灰度啊……… rourou_Jun 发表于 2014-4-25 22:58 static/image/common/back.gif
感觉不到有灰度啊………
因为截图是一瞬间的线条
其实根本不存在真正的灰度黑白屏...
只有单色屏...实现灰度的区别是软件抖动还是硬件抖动
NS是硬件抖动 (LCD带灰度控制器),
Z80, 68K是软件抖动
Z80原理没研究, 68K应该是定时器中断实现的
我当年在文曲星抖16级灰度来着
页:
[1]