Страница 10 из 12 ПерваяПервая ... 456789101112 ПоследняяПоследняя
Показано с 91 по 100 из 118
  1. #91
    Новичок
    Регистрация
    01.03.2016
    Сообщений
    7
    Вес репутации
    102

    По умолчанию Re: Дисплей Epson LCD L2F50 от Siemens S65

    Картинки я не выводил. А рисовать пиксель, линию, круг, заливка цветом все работает.
    Пробовал менять в библиотеке S65Display.cpp как на сайте http://forum.arduino.cc/index.php?topic=51440.15
    Код:
    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;
    }
    И добавил в S65Display.h
    Код:
    #define CHECK_BIT(var,pos) ((var & (1 << pos)) == (1 << pos))
    Было просто вся полоса в разбросанных пикселях.
    После изменений начал понимать сколько букв в слове но все равно какие то иероглифы.
    Вот lcd.drawText(10, 30, "Test",4, RGB(255,255,0), RGB(0,0,0)); шрифт 8х8 пробовал менять на другие все равно иероглифы.

    Нажмите на изображение для увеличения. 

Название:	DSCN1.jpg 
Просмотров:	786 
Размер:	243.5 Кб 
ID:	18867

  2. #92
    Новичок
    Регистрация
    01.03.2016
    Сообщений
    7
    Вес репутации
    102

    По умолчанию Re: Дисплей Epson LCD L2F50 от Siemens S65

    Еще после изменений не работает size - размер шрифта.

    Как в вашей библиотеке вывести картинку с массива.
    Последний раз редактировалось VetalST; 01.03.2016 в 22:39.

  3. #93
    Новичок
    Регистрация
    01.03.2016
    Сообщений
    7
    Вес репутации
    102

    По умолчанию Re: Дисплей Epson LCD L2F50 от Siemens S65

    А не size - размер шрифта заработал размер меняется.
    Но все равно иероглифы.

  4. #94
    Администратор Аватар для Chip
    Регистрация
    08.06.2007
    Возраст
    54
    Сообщений
    13,376
    Вес репутации
    10

    По умолчанию Re: Дисплей Epson LCD L2F50 от Siemens S65

    Цитата Сообщение от VetalST Посмотреть сообщение
    Еще после изменений не работает size - размер шрифта.

    Как в вашей библиотеке вывести картинку с массива.
    Протестировать вывод изображения можно скачать программку и залить скетч из шапки темы

  5. #95
    Администратор Аватар для Chip
    Регистрация
    08.06.2007
    Возраст
    54
    Сообщений
    13,376
    Вес репутации
    10

    По умолчанию Re: Дисплей Epson LCD L2F50 от Siemens S65

    А не size - размер шрифта заработал размер меняется.
    Но все равно иероглифы.
    А шрифты установлены вместе библиотекой? Похоже что либа работает, но вместо шрифтов мусор
    Последний раз редактировалось Chip; 02.03.2016 в 00:16.

  6. #96
    Администратор Аватар для Chip
    Регистрация
    08.06.2007
    Возраст
    54
    Сообщений
    13,376
    Вес репутации
    10

    По умолчанию Re: Дисплей Epson LCD L2F50 от Siemens S65


  7. #97
    Новичок
    Регистрация
    01.03.2016
    Сообщений
    7
    Вес репутации
    102

    По умолчанию Re: Дисплей Epson LCD L2F50 от Siemens S65

    СПАСИБО БОЛЬШОЕ.
    Мучался почти неделю. Заработало только на Arduino IDE версии 1.0.6

    #include "WProgram.h"

    Нужно было заменить в файлах l2f50.cpp и в S65Display.cpp библиотеки на:

    #if defined(ARDUINO) && ARDUINO >= 100
    #include "Arduino.h"
    #else
    #include "WProgram.h"
    #endif

    И НИКОГО НЕ СЛУШАТЬ НЕ МЕНЯТЬ const prog_uint8_t font_PGM[] = на const uint8_t font_PGM[] =
    И ЗА ЭТОГО ВМЕСТО БУКВ ВЫВОДИЛСЯ МУСОР.

    Но появилась другая проблемка нужно текст нормально разместить на экране.

    Нажмите на изображение для увеличения. 

Название:	DSCN15.jpg 
Просмотров:	806 
Размер:	373.6 Кб 
ID:	18868

  8. #98
    Администратор Аватар для Chip
    Регистрация
    08.06.2007
    Возраст
    54
    Сообщений
    13,376
    Вес репутации
    10

    По умолчанию Re: Дисплей Epson LCD L2F50 от Siemens S65

    Есть два варианта: http://compcar.ru/forum/showthread.p...ll=1#post91484

  9. #99
    Новичок
    Регистрация
    01.03.2016
    Сообщений
    7
    Вес репутации
    102

    По умолчанию Re: Дисплей Epson LCD L2F50 от Siemens S65

    ВСЕ РАБОТАЕТ БОЛЬШОЕ СПАСИБО.

    Чтобы перевернуть текст как положено.
    Как раз надо изменить в библиотеке в файле S65Display.cpp и S65Display.h тот кусок кода какой я выкладывал в посте #91.

    Вот рабочая исправленная библиотека под Arduino IDE версии 1.0.6
    S65Display_V2.rar

  10. #100
    Администратор Аватар для Chip
    Регистрация
    08.06.2007
    Возраст
    54
    Сообщений
    13,376
    Вес репутации
    10

    По умолчанию Re: Дисплей Epson LCD L2F50 от Siemens S65

    Выложил библиотеку в шапке

Страница 10 из 12 ПерваяПервая ... 456789101112 ПоследняяПоследняя

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 2 (пользователей: 0 , гостей: 2)

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •