Так надо или всёже надо со старшего? В таблице баиты (напр. для символа "А") такие:
0x7E, 0x11, 0x11, 0x11, 0x7E
Я ещё ничего в железе не делал, только разбираюсь. Запутался в конец.
Спойлер
//=========// Функция прорисовки символа на дисплее без цвета фона
//=========
void Send_Symbol_Shadow (unsigned char symbol, char x, char y, int t_color, char zoom_width, char zoom_height)
{
unsigned char temp_symbol, a, b, zw, zh, mask;
char m, n;
m=x;
n=y;
if (symbol>127) symbol-=64; //Убираем отсутствующую часть таблицы ASCII
for ( a = 0; a < 5; a++) //Перебираю 5 байт, составляющих символ
{
temp_symbol = font_5x8[symbol-32][a];
zw = 0;
while(zw != zoom_width) //Вывод байта выполняется zw раз
{
switch(rot)
{
case 0: case 180: n=y; break;
case 90: case 270: m=x; break;
}
mask=0x01;
for ( b = 0; b < 8; b++ ) //Цикл перебирания 8 бит байта
{
zh = 0; //в zoom_height раз увеличится высота символа
while(zh != zoom_height) //Вывод пикселя выполняется z раз
{
switch(rot)
{
case 0: case 180:
if (temp_symbol&mask)
{
Put_Pixel (m+zw, n+zh, t_color);
}
break;
case 90: case 270:
if (temp_symbol&mask)
{
Put_Pixel (m+zh, n+zw, t_color);
}
break; //Получить адрес начального пикселя по оси y для вывода очередного байта
}
zh++;
}
mask<<=1; //Смещаю содержимое mask на 1 бит влево;
switch(rot)
{
case 0: case 180: n=n+zoom_height; break;
case 90: case 270: m=m+zoom_height; break;
}
}
zw++;
}
switch(rot)
{
case 0: case 180: m=m+zoom_width; break;
case 90: case 270: n=n+zoom_width; break;
}
}
}
уже полный беспредел ...а че мелочится давай уж сразу 230...