MBedderтерминатор (18.02.2016 00:28 - 00:39, просмотров: 182) ответил General на Дайте совет. Хочу чб заставку (несколько кадров подряд) на маленьком ЖКИ 68x64. Предложите столбовой путь преобразования GIF или BMP картинки в код программы.
В ассемблере GCC есть замечательная директива .incbin, позволяющая поместить бинарный файл прямо в секцию кода. Вот как я с ее помощью вывожу 4-х битный серый BMP 256х64 на OLED-дисплей 256х64 (3 строчки на АСМ, остальное на С): logo.h:
#ifndef LOGO_H
#define	LOGO_H
#include "global.h"
#include "ssd1322.h"
#include "Graphics/Primitive.h"
#include "Graphics/DisplayDriver.h"
#define LOGO_COLOR GRAY008
__attribute__((section(".romdata"), space(prog) )) extern FLASH_BYTE img_logo[];
extern void PutLogo4BPP(FLASH_BYTE *);
#endif	// LOGO_H
logo.c:
#include "logo.h"
asm (
".global _img_logo \n"
"_img_logo: \n"
".incbin \"logo4BPP.bmp\""
);
void PutLogo4BPP(FLASH_BYTE *image) {
    FLASH_BYTE *flashAddress = image + image[10]; // Move pointer to a bitmap 1st byte
	SetColumn(0,(256 >> 2)-1);	// Display controller Set_Column_Address command
	SetRow(0,0 + 64);		// Display controller Set_Row_Address command
	SetWriteRAM();			// Display controller RAM_Write_Enable command
	s16 x, y;
	for(y=63; y>=0; --y) {
		flashAddress = image + image[10] + 256/2*y;
		for(x=0; x<256/2; x++) {
			DeviceWrite(*flashAddress);	// Write a byte from Flash to display controller's RAM
			flashAddress++;
		}
	}
}