1
我正在研究嵌入式设备的GLCD库。这个想法是将它分成高级和低级部分。这允许“用户”只为他的显示控制器编写低级函数,并且使用高级函数,如行,cricle,字符串绘制等,而不用重写这些函数。使用#ifdef自定义驱动程序
为了让事情变得简单,我决定,图书馆的用户只是必须做到以下几点,例如使用与SSD1289控制器的显示,在他的main.c:
#define LCD_USE_SSD1289
示例文件ssd1289_lld .H:
#ifdef LCD_USE_SSD1289
lld_lcdInit(void);
#endif
示例文件ssd1289_lld.c:
lld_lcdInit(void) {
// do some stuff for this controller
}
实施例文件■ 6d1121_lld.h:
#ifdef LCD_USE_S6D1121
lld_lcdInit(void);
#endif
示例文件s6d1121_lld.c:
lld_lcdInit(void) {
// do some stuff for this controller
}
内部高级别文件,我只是做:
#include "drivers/ssd1289_lld.h"
#include "drivers/s6d1121_lld.h"
void lcdInit(void) {
lld_lcdInit();
}
但这有点不工作:
- 当我没有做任何#define LCD_USE_SSD1289它做es工作没有任何问题
- 为不同类型的控制器添加第二个驱动程序后,它仍然工作,没有定义任何类型,它也适用于我定义错误的控制器类型。
我在做什么错?
确实有帮助。非常感谢你! –