Суть вопроса заключается в выводе кириллицы на дисплей посредством графического контроллера FT800. В
библиотеке, которую я использую, нет встроенной функции для загрузки шрифтов. Попытка самостоятельной реализации путем реверс-инжиринга кода на ардуино не увенчались успехом. Если кто то занимался подобным железом прошу помочь в решении вопроса. Заранее благодарю.
Исходный код моей реализации загрузки шрифтов в ОЗУ графического контроллера.
void cmd_inflateFont(const uint8_t* font, uint32_t ptr, int length) {
//uint16_t count;
uint16_t sizetransfered;
uint16_t getfreespace;
uint32_t length_ =0;
uint32_t i;
uint32_t length_1 =0, SizeTransfered = 0;
unsigned char cTempAddr[3];
ft800memWrite32(RAM_CMD + cli, CMD_INFLATE);
cli += 4;
ft800memWrite32(RAM_CMD + cli, ptr);
cli += 4;
do {
length_ = length;
getfree(0);
if (length_ > freespace){
length_ = freespace;
}
do{
getfree(0);
getfreespace = freespace;
} while(getfreespace < length_);
waitcmdfifo_empty();
FT800_CS_OFF; // Set chip select low
SSP_SendData ((uint8_t)((RAM_CMD)>> 16) | MEM_WRITE);
SSP_SendData ((uint8_t)((RAM_CMD) >> 8));
SSP_SendData ((uint8_t)(RAM_CMD));
cli++;
LED4_SET;
while (length_--) {
SSP_SendData (ft_pgm_read_byte_near(font)); // Send data byte
font++;
cli++;
sizetransfered++;
}
FT800_CS_ON; // Set chip select high
length_ = sizetransfered;
updatecmdfifo(cli);
waitcmdfifo_empty();
length -= length_;
} while(length > 0);
updatecmdfifo(cli);
}