2018年2月9日 下午8:36
注:代码是009_div_017_010这节的内容
回答几个关键问题:
- 这个问题由几个部分组成?
- 第一部分:给lcd控制器中的寄存器初始化
- Lcd.c团体
- lcd_controller.c团体
- 第二部分:从配置好的寄存器中查出LCD屏的性质,然后编程实现具体内容的输出到LCD屏幕上。
- 第一部分:给lcd控制器中的寄存器初始化
- 当前情况的特点?
- lcd.c团体代表的是值,lcd_controller.c团体代表是方法
- lcd.c团体有点像是javaEE中的实体这个概念
- 需要的角色,以及各个角色的作用
- 【程序的最终目的】:用具体的数值去赋值给lcd控制器的寄存器
- 【采用面向对象设计模式的作用目的】:两个团体最主要的目的是实现扩展性,将值与赋值给寄存器两个部分分开,否则根本分不需要分两个团体
- 由扩展性带来的问题:
- 如何能让多个lcd屏幕(参数),多个lcd控制器(寄存器)有统一的接口
- .h文件用来限制。类似于javaEE中的抽象类和接口的作用。
- 区别是:一个用结构体保存变量,一个用结构体保存函数指针
- 必然每个有各自的管理者,各自管理者要有怎样的功能?。在这里我们分别是lcd.c和lcd_controller.c。
- lcd.c

- lcd_controller.c

- 注:上面的两幅图可以说是整体的一个精华。我一开始就不太理解
- 这其中蕴含着一种思考方法🤔:从上层和下层两个方面来思考。
- 这种类似于提供接口式的思考方式,可以说是面向对象设计的一个关键点
- 在这种注册机制中,有一点要注意:管理者提供了注册方法,这个方法是小弟去调用完成注册的,而不是管理者进行注册!这个问题容易忽略
- lcd.c
- 如何能让多个lcd屏幕(参数),多个lcd控制器(寄存器)有统一的接口
代码:
lcd_test.c
1 | lcd_test.c |
lcd.c
1 | lcd.c |
Lcd.h
1 | lcd.h |
lcd_4.3.c
1 | lcd_4.3.c |
Lcd_controller.c
1 | lcd_controller.c |
Lcd_controller.h
1 | Lcd_controller.h |
s3c2440_lcd_controller.c
1 | s3c2440_lcd_controller.c |