mr_smit писал(а):Немного переделал функцию put_char, теперь можно выводить текст с масштабированием от 1 до 4.![]()
Код: Выделить всё
// поместить символ в графическую память дисплея
// m - масштаб текста. 1-самый маленький
void put_char(char x, char y, char c, unsigned int color, char m) {
char h,ch,p,mask,tt;
x=DISP_H - CHAR_H - x;
WRCMD(0xEF90);
WRCMD(0x0504);
WRCMD(0x0800+y);
WRCMD(0x0A00+x);
WRCMD(0x0900+y+CHAR_H*m-1);
WRCMD(0x0B00+x+CHAR_W*m-1);
for (h=CHAR_H; h>0; h--) { // every column of the character
for(tt=0;tt<m;tt++) {
ch=ascii_tab[ c-32 ][CHAR_H-h];
mask=0x01;
for (p=0; p<CHAR_W; p++) { // write the pixels
if (ch&mask) {
WRDATA(color);
if(m==2) {
WRDATA(color);
}
if (m==3) {
WRDATA(color);
WRDATA(color);
}
if (m==4) {
WRDATA(color);
WRDATA(color);
WRDATA(color);
}
}
else {
WRDATA(bgcolor);
if(m==2) {
WRDATA(bgcolor);
}
if (m==3) {
WRDATA(bgcolor);
WRDATA(bgcolor);
}
if (m==4) {
WRDATA(bgcolor);
WRDATA(bgcolor);
WRDATA(bgcolor);
}
}
mask=mask*2;
}
}
}
}
А для LPH8836 можно такое сделать? Вот код put_char.


