Мне нужно написать низкоуровневый драйвер для управления tft-дисплеем встроенного устройства. Устройство питается от PIC24, 64 КБ оперативной памяти и около 128 КБ программной памяти.
Я намерен написать общую графическую библиотеку, в которую я помещу все примитивные графические функции и драйвер для отправки команд и данных для отображения.
Графическая библиотека использует драйвер для доступа к дисплею, но технология отображения может измениться, поэтому драйвер должен быть легко перереализуемым.
Как лучше всего написать повторно используемый код в таком сценарии?
----------------- ---------------
| | | |
| | | |
| GFX_LIB | =====> | DRIVER | ====> DISPLAY
| | | |
| | | |
----------------- -----/----\----
/ \
/ \
---------- ----------
| | | |
| TYPE A | | TYPE B |
| | | |
---------- ----------
Подробнее
Это фрагмент кода моей библиотеки gfx.
#include "Graphics.h"
void gfx_Init(uint16_t width, uint16_t height, uint8_t rotation){
gfx_displayWidth=width;
gfx_displayHeight=height;
gfx_rotation=rotation;
displayDriverInit();
}
void gfx_setPixel(uint16_t x, uint16_t y, uint32_t color){
displayDriverSendCommand(CHANGE_COORDINATE);
displayDriverSendData(x);
displayDriverSendData(y);
displayDriverSendCommand(SET_COLOR);
displayDriverSendData(color);
}
Это гипотетическая реализация моей графической библиотеки.
Теперь, если я сменю драйвер, я буду очень рад, если смогу повторно использовать свою библиотеку gfx и переписать только подпрограммы драйвера дисплея. Каков наилучший способ добиться этого?
Спасибо.