|
【TI首届低功耗设计大赛】初试SHARP96记忆屏
[复制链接]
本帖最后由 qiushenghua 于 2014-10-14 17:13 编辑
之前在TI申请过样片,然后TI把信息共享给了代理商深圳新晔,他们的应用工程师和销售工程师多次来电,要求上门拜访。在电话联系中,知道了他们能提供FR5969 Launchpad和SHARP96记忆屏样品,FR5969之前中秋活动中买了一块,后来又参加活动送了一片,于是就让他们今天来的时候带上记忆屏。
他们今天真的过来了,本来以为是免费样品来的,一问才知道,需要100大洋,看外观还挺残旧,那算了,留下来借测几天,到时候归还就是了。
之前有网友也分享过记忆屏的实验,都说记忆屏就和一面镜子似的,拿到手果然如此。不过像磨砂后的镜子。连上金刚狼,从TI Resource Explorer里导入430BOOST-SHARP96 GRLib Example图形库示例代码,编译,调试,运行。
诶?怎么屏幕还是蒙蒙的一片?再换G2的示例代码试试,效果一样。反复测试发现,排线位置有些接触不良,用手压着排线才能正常显示。
示例代码的效果就没有拍照,这里拍的几张照片都是在示例代码基础上稍作修改之后拍摄的。
我们的第一个实验当然是Hello World(见下图)
关键代码:
- GrStringDrawCentered(&g_sContext,
- "Hello World!",
- AUTO_STRING_LENGTH,
- 48,
- 15,
- TRANSPARENT_TEXT);
- GrStringDrawCentered(&g_sContext,
- "你,好。World!!",
- AUTO_STRING_LENGTH,
- 48,
- 40,
- TRANSPARENT_TEXT);
- GrStringDrawCentered(&g_sContext,
- "qiushenghua",
- AUTO_STRING_LENGTH,
- 48,
- 80,
- TRANSPARENT_TEXT);
复制代码 主要测试图形库对于汉字的支持情况,发现汉字和全角符号全变成点号了,半角字符不受影响。可见SHARP96的图形库并不支持非ASCII字符。
另外,从我的名字显示还可以看出,这个图形库在处理英文字符时,如果按照小学英语中的三格写法看,所有的英文字符都被输出到上中两格里了,像字母q和g这样本来应该处于中下格的字符也不例外,导致英文字符显示有些不那么协调。
这张图是数字显示,主要用来测试屏幕幅面和每个字符占据的大小。代码就不贴上来了,全是复制粘贴实现的。
从中我们可以看出,最多可以显示12行16列。说明每个汉字是(96/16)*(96/12)=6*8的大小。
同样要用拇指压着排线才能显示。
接下来是图形处理。以及汉字的默认设置。画点画线画圆在这里不作介绍,代码示例里使用的比较明确了,这里主要看看填充和不同模式下字符之间的差异。
为了节省幅面,不贴代码,直接介绍图形的实现方式:
先输出标题“Draw Rectangles”==》画下面那个空心方框==》画上面那个实心方框==》使用“TRANSPARENT_TEXT”方式输出文字“Text Normal”(图像中只能看到半个“N”及后面的“ormal”)==》使用“OPAQUE_TEXT”模式输出文字“Opaque Text”==》切换黑白后使用“TRANSPARENT_TEXT”模式输出文字“Invert Text”(只能看到"Invert")
从这里我们可以看到,“TRANSPARENT_TEXT”模式下输出的文字背景是透明的,“OPAQUE_TEXT”模式输出文字的同时还会将背景输出,因此,“OPAQUE_TEXT”模式下输出文字不容易被遮罩。
再换了一幅图,这回先将整个屏幕用黑色填充,再输出文字,同样仅有“OPAQUE_TEXT”模式会输出背景,保持内容的完整性。另外啰嗦两句,TI这个图形库在输出文字时默认居中显示,输出的位置是文字中央坐标,而不是我们常用的首字符坐标,这点需要注意。最后,我们来看看记忆屏的局部镜面效果(分别是蓝色衣服,手指头和黑色镊子,使用火箭图标和TI标志作为反射图案):
|
|