Как подружить stm и spi_oled дисплей

Тема в разделе "Микроконтроллеры AVR", создана пользователем itsterit, 29 дек 2020.

  1. parovoZZ

    parovoZZ Гуру

    Это электромусор. Нормальное явление для памяти типа SDRAM, так как она не имеет цепей сброса.
     
  2. itsterit

    itsterit Нерд

  3. parovoZZ

    parovoZZ Гуру

    Срисовал шрифт под названием Pecita. Начертание убойное, правда где-то Ё при конвертации похерил. Или её не было вовсе.
    IMG_0841[1].jpg
    Надо токмо крепко подумать, как шрифты грамотно заюзать. А то сейчас всего 7 разных букв + не хитрая картинка, а мусора во флеш аж на 4 кило налезло. Выцепить тупо кириллицу конвертер не может, а вручную лопатить - ну его в пень)))

    Работа с кириллицей - целая головная боль. Редактор хочется иметь с UTF-8, а в этой таблице кириллица 2-х байтная(( А если редактор переводить в Win-1251, то на гите русские комментарии в крякозябрах((
     
  4. itsterit

    itsterit Нерд

    плюнул я на эти библиотеки Васей Пупкиных, решил подпихать u8g2, но эта тематика на отдельную ветку форума(чтобы не засорять все всем и сразу).

    ОГРОМНОЕ ЧЕЛОВЕЧЕСКОЕ СПАСИБО ВСЕМ!!;)
     
  5. parovoZZ

    parovoZZ Гуру

    решил я, что для статических строк нет абсолютно никакого смысла грузить все символы шрифта (включая неиспользуемый ангельские), а грузить надо только те символы, которые действительно нужны. Получается два варианта: либо формировать массив символов, но тогда индекс каждого символа придётся очень хитро вычислять через case (а на препроцессоре как это сделать???) и надеяться, что очень умный компилятор сделает это статически, а во FRAM загрузит только адреса. Ну и строки буду выглядеть читабельно и привычно: 'М', 'А" и т.д.
    Второй вариант тупо в лоб: вместо символов писать названия переменных, содержащие в своём названии индекс символа из ASCII таблицы. Тогда это будет выглядеть так:
    Код (C++):
    SSD1306_gLIB_DrawChar(0, 0, (&Cyrillic_Pixel_0xcc), 15);     // М

            SSD1306_gLIB_DrawChar(14, 0, (&Cyrillic_Pixel_0xc0), 15);     // А
    Брррррррр.....
    Но зато во FRAM программа занимает буквально точечку байт:
    Код (Text):
    676 bytes of CODE  memory
    160 bytes of DATA  memory (+ 22 absolute )
    545 bytes of CONST memory
    Не совсем разобрался, почему у "программистов" возникает проблема с кириллицей?
    IMG_0853[1].jpg
    Шрифт зовётся Cyrillic Pixel-7
    Про Ё не забыл, но на таком размере язык у неё отвалилсо...

    Надо какой-то проект намутить с этим экранчеГОМ. Вот только чи шо...
     
    itsterit нравится это.
  6. itsterit

    itsterit Нерд

    ЧАСЫ ⌚, я вот думаю из своего наручные часы собрать, с будильником, таймером и прочим, т.к мне часто такого функционала не хватает, а телефон- неудобно. Как бы - да, можно купить, но я нихатю, к тому же это первый проект на стм.
     
  7. parovoZZ

    parovoZZ Гуру

    Да часы я и так куплю. Надо что-то, что купить невозможно или дорого.
     
  8. Un_ka

    Un_ka Гик

    Если количество используемых символов в строках ограничено и строки определены и не будут меняться, то второй способ более целесообразен.
    А если объявить функцию типа:

    Код (C++):
    SSD1306_gLIB_DrawString(char *c_1=NULL,char *c_2=NULL,char *c_3=NULL....

    ){

    }
    Если входящие переменные отличны от NULL вызывать
    SSD1306_gLIB_DrawChar
    Да и назвать их по-человечески:
    _A,_M...
    Получится как с 4-digit 7-segment
    Код (C++):
    drawStr(&_H,&_E,&_Y);
     
    Это лишь предложение, могу ошибаться на каждом этапе данного рассуждения.
     
    parovoZZ нравится это.