lcd程序框架:

为了让程序更好的扩展,介绍面向对象编程:

比如抽象出lcd_3.5和lcd_4.3的共同点:

当我想使用3.5寸的lcd时,只需让lo指向lcd_3.5_opr即可。同样,当我想使用4.3寸的lcd时,只需让lo指向lcd_4.3_opr.

还可以进一步封装

使用者可以不接触lcd_3.5.c和lcd_4.3.c中的函数,可以直接调用lcd.c中的函数,进而操作lcd。

将lcd_3.5_opr和lcd_4.4_opr这些结构体注册到lcd.c这个文件中,将结构体放入某个数组(其实驱动程序中很多都是这么搞的),以后可以根据name来选择使用哪款lcd。

同样对于lcd控制器,我们也可以利用这种面向对象以及分层的思想。

当我想使用s3c2440的控制器的时,只需让lc指向lco_2440即可。同样,当我想使用ti的控制器时,只需让lc指向lco_ti即可.

使用者可以不接触S3C2440_lcd_controller.c和ti_lcd_controller.c中的函数,可以直接调用lcd_controller.c中的函数,进而操作lcd控制器。

将lco_2440和lco_ti这些结构体注册到lcd_controller.c这个文件中,将结构体放入某个数组(其实驱动程序中很多都是这么搞的),以后可以根据name来选择使用哪款lcd控制器。

最新文章

  1. 读书笔记--SQL必知必会05--高级数据过滤
  2. 有关Javascript的length()函数
  3. WebForm基础--2016年12月27日
  4. Retrieving Out Params From a Stored Procedure With Python
  5. HNOI2016(BZOJ4542) 大数
  6. KindEditor提交用jquery获取不到数据的解决方法
  7. 黄聪:360浏览器如何使用插件实现解除网页禁用右键复制的限制(Enable Copy)
  8. poj3671
  9. maven项目 打可执行jar包
  10. new date() 函数在浏览器中的兼容问题!!
  11. Codeforces Round #264 (Div. 2) C Gargari and Bishops 【暴力】
  12. 集群部署及测试SolrCloud-5
  13. [数据挖掘] - 聚类算法:K-means算法理解及SparkCore实现
  14. python pygame--倒计时
  15. Android Context讲解(转)
  16. Git代码管理
  17. vue 定义全局函数,监听android返回键事件
  18. C# 封装微信的模板消息
  19. bat如何实现自动创建文件夹(以当前时间命名)
  20. python(3):文件操作/os库

热门文章

  1. Asp.Net Core 减少Controller获取重复注入对象
  2. 比较两个jar包的版本号
  3. 教你查阅Java API 英文文档(JDK 11)
  4. 可以在shell脚本中使用哪些类型的变量?
  5. Ubuntu安装微信、钉钉等各种windows软件
  6. [转载]3.4 UiPath键盘操作的介绍和使用
  7. boolean 属性的定义规范
  8. 【2019年07月22日】A股最便宜的股票
  9. SWIG 3 中文手册——3. Windows 上使用 SWIG
  10. 通过四个问题了解HTTP协议基础