[关闭]
@leaveye 2017-03-21T02:45:29.000000Z 字数 1783 阅读 1417

液晶与按键接口设计

液晶 按键 接口 文档



关于测试、demo 代码

按键

液晶

本段是 demo 代码与测试代码的说明,已废弃,保留仅为参考。

测试代码中看出 demo 中的操作:

  • ioctl:Init() 初始化什么内容?什么情况下需要?必要性是否可以移除?什么情况下限制执行?使用什么公共资源,可能产生什么冲突?是否可多实例同时初始化?是否可以驱动程序加载后就自动进入 load 画面,等待应用层初始化才清屏待用?
  • ioctl:FillRam(u8) 是将全屏填写一个固定的字节?描述的是模板、图案还是什么?
    • ioctl:GeDot(u8) 间隔点显示,是什么模板?输入参数字节如何决定图案?
    • ioctl:Hang(u8) 间隔行显示,是什么模板?输入参数字节如何决定图案?
  • ioctl:Biang() 是矩形边框?
  • write(type, x, y, buf) 调用一次写入一个字符,中文或英文。每次需要完整传输点阵字模,且长度按中文长度计算。可认为接口是这样两个:
    • write:chinize(x, y, bitmap16x16)
    • write:char(x, y, bitmap8x16)

按键接口实现建议

驱动层

其他底层指令酌情添加。

应用层封装

关于文字

效率来说,显示文字的操作放到底层效率会更高,但对驱动程序实现上增加复杂度。比如:

抑或更高效的方式:

以及:

这种情况下,系统 I/O 调用负责传递的就只是有效文本。

相关类型定义

  1. typedef struct {
  2. u16 count;
  3. u8 *bitmaps;
  4. } charlib_t;
  1. typedef struct {
  2. u16 w, h;
  3. u8 *bitmap;
  4. } bitmap_t;
添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注