библитека SSD1306Ascii + русский шрифт
- Войдите на сайт для отправки комментариев
Чт, 26/12/2019 - 17:26
добрый день. помогите подключить русский шрифт a_Small_Rus.c к библиотеке SSD1306Ascii-master
пробовал менять английские буквы на русские заменяя такие строчки:
0x7C, 0x12, 0x11, 0x12, 0x7C, // а
0x7F, 0x49, 0x49, 0x49, 0x31, // б
0x7F, 0x45, 0x45, 0x45, 0x3A, // г
0x7F, 0x01, 0x01, 0x01, 0x03, // д
0x60, 0x3F, 0x21, 0x3F, 0x60, // е и т.д.
Но к сожалению русский шрифт не читает все равно. только английский переводит в русские символы.
Насколько сложно это сделать? раньше никогда не правил библиотеки
ссылка на библиотеку и русский шрифт:
Если хотите что-то править самостоятельно, детально разберитесь, что такое utf-8.
не уверен что сам смогу переписать. недостаточно знаний. Нашел другой способ. точнее другую библиотеку iarduino
https://iarduino.ru/file/341.html
Получается вывести char массив с sd карты. перевожу ее в string и потом уже вывожу на экран.
Выводится и русс и анг. но команда
почему то не работает. экран просто мигает но не очищается. как была строчка написано на нем так и остается.
Подскажите в чем может быть проблемка. может памяти не хватает у ардуино и глючит он?
Скетч немного позже выложу
загуглил нашел такую инфу:
myOLED.clrScr() - это очень медленная операция. у тебя он по итогу будет моргать
лечение
1. перенести работу с экраном в отдельное прерывание по таймеру
2. скорость таймера можно сделать невысокую. думаю, десять прерываний в секунду вполне достаточно
можно ли так попробовать написать что бы экран правильно обновлялся ?
сейчас не могу проверить
загуглил нашел такую инфу:
myOLED.clrScr() - это очень медленная операция. у тебя он по итогу будет моргать
лечение
1. перенести работу с экраном в отдельное прерывание по таймеру
2. скорость таймера можно сделать невысокую. думаю, десять прерываний в секунду вполне достаточно
Можно ещё подорожник к экрану приложить. Поможет точно так же.
а что можно тогда сделать что бы обновлялся правильно?
Начать с того, что сформулировать что такое "правильно".
Начать с того, что сформулировать что такое "правильно".
у меня сейчас дисплей при команде : myOLED.clrScr(); не обновляется (тоесть надо удалить старую строку а на ее месте добавить новую)
Экран только моргает и больше ничего не происходит (
Вот тут, в разделе "Демонстрация вывода текста Кириллицей с указанием разных кодировок" имеется тестовый код. Он тоже "просто моргает" или нормально чистит?
Вот тут, в разделе "Демонстрация вывода текста Кириллицей с указанием разных кодировок" имеется тестовый код. Он тоже "просто моргает" или нормально чистит?
этот код тестировал .работает отлично.
Это что то в моем скетче не так. может дажет памяти не хватает. сейчас попробую выложить скетч здесь.
Он немного кривой но работает хорошо до момента стирания текста на экране
мин через 10 выложу
строка 93 не работает ((
в идеале 67 строчка которая закоментированная должна экран обновлять. но там тоже текст не стирае
Ну дак понятно - тот же самый текст после очистки экрана пишется в те же координаты.
создал для тестов файлик на SD с текстом:
test1 - тест1
test2 - тест2
на экране в координатах (0,3) эти 2 строчки должны меняться (предыдущая строчка стираться а новая отображаться . потом наоборот). каждый раз когда нажимаю на кнопку. Экран моргает и больше ничего
помогите исправить код. мучаюсь уже 4 день . не получается (
В этом коде явно нет никакой кнопки и смены двух строк.
Предлагаете за вас написать скетч и потестить?
64 строка есть кнопка
Но хотя бы помощь дописать смену двух строк. Остальное сам доделаю.
Тут практически все надо перелопачивать. А на дворе предновогодняя пятница.
а в какую сторону надо копать?
попробую сам что то написать
Сначала получить эти строки "по-очереди" в Serial Monitor.
сейчас в этом коде строка за строкой идут в serial monitor. если открыть монитор то будет примерно такая картина:
test1 - тест1
test2 - тест2
test1 - тест1
test2 - тест2
test1 - тест1
test2 - тест2 и т.д.
Строки вниз идут по очереди
у меня еще есть другой вариант когда просто выводить char по очереди в координатах например (0, 15)
буквы просто меняются в этих координатах по очереди. а надо что бы светились строчкой.
к сожалению тоже не знаю как дальше сделать (
наверное за очень сложное взялся :(
кто нибудь может попробовать добавить русский шрифт к библиотеке SSD1306Ascii ?
или может где то скачать русский можно?
а вообще ради интереса что бы дописать русский шрифт к библиотеке
SSD1306Ascii
сколько это будет стоить и сколько по времени это займет?
Вопрос из области "Сколько стоит поклеить обои в квартире?"
кто нибудь может попробовать добавить русский шрифт к библиотеке SSD1306Ascii ?
зачем? - возьмите библиотеку Asoled от Андриано - она такая же маленькая, как SSD1306Ascii. но при этом уже имеет поддержку русского шрифта
кто нибудь может попробовать добавить русский шрифт к библиотеке SSD1306Ascii ?
зачем? - возьмите библиотеку Asoled от Андриано - она такая же маленькая, как SSD1306Ascii. но при этом уже имеет поддержку русского шрифта
я не смог переменную типа char или string на нее вывести (
как то так делал
я не смог переменную типа char или string на нее вывести
А с чего вы решили, что в другой библиотеке будет проще?
не страдайте фигней, вам не дописыванием шрифтов к библиотеке надо заниматься. а изучать программирование - и тогда вы в любой библиотеке разберетесь
я не смог переменную типа char или string на нее вывести
А с чего вы решили, что в другой библиотеке будет проще?
не страдайте фигней, вам не дописыванием шрифтов к библиотеке надо заниматься. а изучать программирование - и тогда вы в любой библиотеке разберетесь
все правильно. занимаюсь по возможности времени. а что можно успеть за 30 мин в день?
мало очень. обучение в институте это 5 лет. самообразование это 10 лет и не выше среднего уровня.
с этой SSD1306Ascii я рабозрался. просто не удобно что на анг она. ну да ладно
все правильно. занимаюсь по возможности времени. а что можно успеть за 30 мин в день?
не прибедняйтесь, 3 часа в день можно выделить почти из любого графика. Поменьше телевизора, читать в транспорте, не зависать в сетях, не писать ерунды в форуме...
Жалейте себя поменьше, обычно все любят строить из себя таких занятых - ни минутки свободной нет. А на практике вот взять меня - 8 часов сна, часа 3, ну от силы 4 - работа(если считать именно работу, а не просиживание штанов перед компом :), ну еще час на еду. Итого 12-13 часов я занят.
И значит примерно ПОЛОВИНА СУТОК уходит непонятно на что. А вы говорите 30 минут в день...
не зависать в сетях,
не писать ерунды в форуме...
На святое руку поднял...
в сетях не сижу. время не трачу. телевизор 5 лет не смотрю. работа почти как у космонавтов. часов 10 занят с выносом мозгов. 2 часа на то что не успел за день сделать. по улицам не гуляю. это очень круто было бы столько времени иметь. занимаюсь иногда до часа ночи. и то нашел что надо но уже спать пора или посмотрел и ничего не понял. разбирать надо тему неделю. если что то купить надо для ардуино это минимум неделю ждать надо. что бы на выходных сходить в магазин
ардуино такая штука что да простая если не углубляться дальше чем просто стандартные датчики и моргалки делать.
не зависать в сетях,
не писать ерунды в форуме...
На святое руку поднял...
а что там в сетях?
фоточки лайкать сидеть? :)
сейчас никто не чем не интересуется совершенно. главное побольше лайкусиков получить вк и ты уже принцесса
или я не прав?
работа почти как у космонавтов. часов 10 занят с выносом мозгов....
ну ничего нового :)
Повторю - Жалейте себя поменьше, обычно все любят строить из себя таких занятых - ни минутки свободной нет. А на практике....
в сетях не сижу. время не трачу. телевизор 5 лет не смотрю. работа почти как у космонавтов. часов 10 занят с выносом мозгов. 2 часа на то что не успел за день сделать. по улицам не гуляю. это очень круто было бы столько времени иметь. занимаюсь иногда до часа ночи. и то нашел что надо но уже спать пора или посмотрел и ничего не понял. разбирать надо тему неделю. если что то купить надо для ардуино это минимум неделю ждать надо. что бы на выходных сходить в магазин
Женица тебе, барин, надоть.
а дайте ссылку на очень хорошую книгу по ардуино. главное понятную для новичка )
что бы основы хорошо написаны были и с полезной практикой и обьснение нормально скетчей и примеров было много
на любом языке
а вообще я так понимаю надо на C++ основы тоже почитать
а дайте ссылку на очень хорошую книгу по ардуино. главное понятную для новичка )
что бы основы хорошо написаны были и с полезной практикой и обьснение нормально скетчей и примеров было много
на любом языке
а вообще я так понимаю надо на C++ основы тоже почитать
PS. Почему-то большинство новичков искренне полагают, что для того, чтобы написать поэму, учить алфавит целиком совсем не обязательно.
а дайте ссылку на очень хорошую книгу по ардуино. главное понятную для новичка )
что бы основы хорошо написаны были и с полезной практикой и обьснение нормально скетчей и примеров было много
на любом языке
а вообще я так понимаю надо на C++ основы тоже почитать
PS. Почему-то большинство новичков искренне полагают, что для того, чтобы написать поэму, учить алфавит целиком совсем не обязательно.
а с чего надо начинать изучать C++ и так что бы понимать то что делаешь?
немного пересмотрел его. похож немного на скетчи но и отличия есть больштие. скорее всего в ардуино сама конструкция основная отсталась от него и есть вещи которые мне совсем не нужны будят. если учить буду их толку никакого не будет.
с чего начать язык учить тогда и в каком порядке?
типы данных. функции. переменныые . массивы?
немного пересмотрел его. похож немного на скетчи но и отличия есть больштие.
это какие же отличия большие, если не секрет?
Это не так, в ардуино используется не какая-то своя конструкция, где "основа от С", а просто язык С++. И поэтому таких вещей, которые совсем не будут нужны - в основоном курсе С++ просто нет. Как минимум первую половину любого толстого учебника по С++ можете читать смело - абсолютно все там описанное работает в ардуино
Взять любой рекомендованый учебник и так и читать - в том порядке, как описано
абсолютно все там описанное работает в ардуино
кроме того, что начинается с std::
так сами же написали что первую половину читать.
вот пример. зачем это учить в ардуино все по другому совсем. не думаю что подобная запись если я ее буду знать она мне будет полезна
Sketch uses 367384 bytes (35%) of program storage space. Maximum is 1044464 bytes.
вот пример. зачем это учить в ардуино все по другому совсем
"все по другому совсем" это что? - только то, что в ардуине вместо main() главная функция называется loop() ? :) - ну так это совсем не лишние знания, это полезно знать. тем более что в ардуине тоже есть main() - просто она от новичков скрыта
Геня, вам потому кажется, что Ардуина сильно отличаеьтся от С++ - что вы не знаете ни С++ ни Ардуино
Sketch uses 367384 bytes (35%) of program storage space. Maximum is 1044464 bytes.
ошибки сплошные. не компилируется. эту запись еще надо перевести в нормальную .что бы ардуино понимала. вот и говорю что разница да не везде но есть и для новичка она большая очень .
это не в инститту сидеть в телефоне а препод разжует.
этот код максимум в vis studio можно скомпилировать :)
Геня - ну значит придется взять два учебника - по С++ и по Ардуино - и сравнивать между собой, выясняя, что в Ардуино работает. а что нет. Но одной книжкой по Ардуино точно обойтись не получится - практически ни в одной из них нет серьезного погружения в язык , предполагается что для мигания светодиодом это не нужно, а кому нужно - тот возьмет учебник по С++ и прочитает.
Если вы хотите продвинутся в программировании - в любом случае надо брать хороший курс С-С++
Геня - ну значит придется взять два учебника - по С++ и по Ардуино - и сравнивать между собой, выясняя, что в Ардуино работает. а что нет. Но одной книжкой по Ардуино точно обойтись не получится - практически ни в одной из них нет серьезного погружения в язык , предполагается что для мигания светодиодом это не нужно, а кому нужно - тот возьмет учебник по С++ и прочитает.
Если вы хотите продвинутся в программировании - в любом случае надо брать хороший курс С-С++
вот это я и хотел услышать . а не как все похоже и легко.
курс стоит денег :) а я для себя занимаюсь бо интересно )
тоже заметил что в учебниках по ардуино одни мигаллки и датчики подключение.
а еще сравнивать языки может только человек который не плохо ориентируется и в том и другом языке.
для новичка это будет каша. Вот назначение переменных здесь да почти одинаково что в c++ что ардуино. но чем дальше в лес тем лучше нужен проводник :)
пример с ардуино :
такой строчки не нашел на чистом c++ . значит она сучествует только в среде ардуино?
так что разница есть и большая освоения языка для новичка самостоятельно. если конечно не blinkи всякие делать а что то покруче
и записать тогда правильно с c++ на ардуино то что нет в учебниках по ардуино?
если на C++ это пишется по другому . тоесть язык вроде знаешь а перевести в ардуино не ясно как
а правильно ли я понимаю что эта строчка копирует переменную типа string во временную память ?
buf - это то что берется с переменной
а len - это длина переменной.
пример:
итого мы получил на выходе уже слово wor ?
с такой записью char buf[3] = "wor";
не нужно ничего "переводить в Ардуино".
Ардуино - это общее название для группы плат, которые можно программировать в Ардуино ИДЕ.
Совершенно РАЗНЫХ плат с РАЗНЫМИ компиляторами и базовыми библиотеками.
ВСЕ - совершенно ВСЕ они программируются на С и С++. Но для АВР плат - нет поддержки STL. То есть вот того, что ты привел:
А для ESP8266 и ESP32 - она есть. Если выберешь такую плату - всё соберется. В той же среде Ардуино.
а это вообще не имеет отношения ни к конструкциям С++, ни к "языку ардуино" :) В том смысле, что это не служебная конструкция языка, а метод класса String, написанный программистом - в данном случае авторами Ардуино. Но подобное мог написать любой пользователь, например Вы - и потому искать эту конструкцию в цчебнике бессмысленно
не нужно ничего "переводить в Ардуино".
Ардуино - это общее название для группы плат, которые можно программировать в Ардуино ИДЕ.
Совершенно РАЗНЫХ плат с РАЗНЫМИ компиляторами и базовыми библиотеками.
ВСЕ - совершенно ВСЕ они программируются на С и С++. Но для АВР плат - нет поддержки STL. То есть вот того, что ты привел:
А для ESP8266 и ESP32 - она есть. Если выберешь такую плату - всё соберется. В той же среде Ардуино.
спасибо за ответ
проверьте кто то . то что я тут написал. правильно ли я записал. это полный код. тренируюсь?
и потому искать эту конструкцию в цчебнике бессмысленно
:)