Копать нужно в эту сторону http://compcar.ru/forum/showthread.p...l=1#post110401
http://compcar.ru/forum/showthread.p...l=1#post110395
http://compcar.ru/forum/showthread.p...ll=1#post91484
Вытащил из либы функции, с которыми нужно разбираться
	PHP код:
	
uint8_t S65Display::drawChar(uint8_t x, uint8_t y, char c, uint8_t size, uint16_t color, uint16_t bg_color) 
{ 
  uint8_t ret, h, w; // h,w sind Laufvariablen für Höhe und Weite 
#if FONT_WIDTH <= 8 
  uint8_t data; 
#elif FONT_WIDTH <= 16 
  uint16_t data; 
#elif FONT_WIDTH <= 32 
  uint32_t data; 
#endif 
  uint8_t i, j, width, height; 
  const prog_uint8_t *ptr, *ptr_tmp; 
  i      = (uint8_t)c; 
#if FONT_WIDTH <= 8 
  ptr    = &font_PGM[(i-FONT_START)*(8*FONT_HEIGHT/8)]; 
#elif FONT_WIDTH <= 16 
  ptr    = &font_PGM[(i-FONT_START)*(16*FONT_HEIGHT/8)]; 
#elif FONT_WIDTH <= 32 
  ptr    = &font_PGM[(i-FONT_START)*(32*FONT_HEIGHT/8)]; 
#endif 
  width  = FONT_WIDTH; 
  height = FONT_HEIGHT; 
  if(size <= 1) 
  { 
    ret = x+width; 
    if(ret > S65_WIDTH) 
    { 
      return S65_WIDTH+1; 
    } 
    setArea(x, y, (x+width-1), (y+height-1)); 
    s65_drawStart(); 
    ptr_tmp = ptr; 
    for(w=width; w!=0; w--) //  
    { 
    ptr    = ptr_tmp; 
    //Serial.print("w="); Serial.println(w); delay(50); 
    for(h= height; h!=0; h--)  
    { 
    #if FONT_WIDTH <= 8 
        data = pgm_read_byte(ptr); ptr+=1; 
    #elif FONT_WIDTH <= 16 
        data = pgm_read_word(ptr); ptr+=2; 
    #elif FONT_WIDTH <= 32 
        data = pgm_read_dword(ptr); ptr+=4; 
    #endif 
     
        if(CHECK_BIT(data,w)) // hier Sprung in die Funktion CHECK_BIT(var,pos)  
                              // die ist in S6%Dislay.h angelegt 
                              // und sieht so aus: 
                              // #define CHECK_BIT(var,pos) ((var & (1 << pos)) == (1 << pos)) 
            { 
            s65_draw(color); 
            } 
            else 
            { 
            s65_draw(bg_color); 
            } 
        } 
    } 
    s65_drawStop(); 
  } 
  else 
  { 
    ret = x+(width*size); 
    if(ret > S65_WIDTH) 
    { 
      return S65_WIDTH+1; 
    } 
    s65_setArea(x, y, (x+(width*size)-1), (y+(height*size)-1)); 
    s65_drawStart(); 
      ptr_tmp = ptr; 
    for(w=width; w!=0; w--) //  
    { 
    ptr    = ptr_tmp; 
    //Serial.print("w="); Serial.println(w); delay(50); 
    for(h= height; h!=0; h--) 
    { 
    #if FONT_WIDTH <= 8 
      data = pgm_read_byte(ptr); ptr+=1; 
    #elif FONT_WIDTH <= 16 
      data = pgm_read_word(ptr); ptr+=2; 
    #elif FONT_WIDTH <= 32 
      data = pgm_read_dword(ptr); ptr+=4; 
    #endif 
     
     
          if(CHECK_BIT(data,w)) 
          { 
            for(j=size; j!=0; j--) 
            { 
              s65_draw(color); 
            } 
          } 
          else 
          { 
            for(j=size; j!=0; j--) 
            { 
              s65_draw(bg_color); 
            } 
            } 
            } 
          
    } 
    s65_drawStop(); 
  } 
  return ret; 
} 
uint8_t S65Display::drawText(uint8_t x, uint8_t y, char *s, uint8_t size, uint16_t color, uint16_t bg_color) 
{ 
  while(*s != 0) 
  { 
    x = drawChar(x, y, *s++, size, color, bg_color); 
    if(x > S65_WIDTH) 
    { 
      break; 
    } 
  } 
  return x; 
} 
 Я бы поправил, но без дисплея это просто не возможно