Вот вы тут опять обсуждаете задачу с русскими буквами - в скетче и в микроконтроллере, а я тут уже давно решил эту задачу. И, к вашему сведенью, памяти строки меньше займут в 2 раза!
Вот вы тут опять обсуждаете задачу с русскими буквами - в скетче и в микроконтроллере, а я тут уже давно решил эту задачу. И, к вашему сведенью, памяти строки меньше займут в 2 раза!
Это хорошо. Но будет ли ваш вариант работать с Visual Studio и Visual Micro под нее?
И все работает. Библиотека более простая чем АрдаФруит. позволяет выводить картинки и спецсимволы. Единственное, что не удалось побороть- размер шрифта.
1. масштабировать текущий шрифт. выглядит убого и множитель только целый
2. сделать новый шрифт кратный высоте строки (8пикселей)
3. делать массив для всего дисплея. в нем писать в любом месте и как угодно, и выводить его на дисплей. что то вроде видеопамяти. только жрет оперативку сильно
По первому варианту-в библиотеке PCD8544 вроде такой функции нету.
2.Вариант не осилю))) Тем более текущий шрифт итак высотой 8 пикселей. Мне нужно около 16-32.
Единственный вариант который мне видится-выводить картинками. Ввиду того, что слов и букв будет не много то можно будет нарисовать целиком слово. А вот с цифрами посложнее, т.к. они будут меняться динамически. Но памяти сожрет прилично.
Это хорошо. Но будет ли ваш вариант работать с Visual Studio и Visual Micro под нее?
Если вы компилите в других IDE то и настраивайте там какую вам надо кодировку скетча. Или там(у мелкомягких) не знают что может потребоваться кодировка отличная от юникода?
По первому варианту-в библиотеке PCD8544 вроде такой функции нету.
2.Вариант не осилю))) Тем более текущий шрифт итак высотой 8 пикселей. Мне нужно около 16-32.
Единственный вариант который мне видится-выводить картинками. Ввиду того, что слов и букв будет не много то можно будет нарисовать целиком слово. А вот с цифрами посложнее, т.к. они будут меняться динамически. Но памяти сожрет прилично.
Есть такая строка. Дело в том что остальную информацию выводит, а именно переменную не хочет.
И ещё вопрос. Как записать время в DS1307. Питание снимаешь - они останавливаются.
А если передавать из COM-порта - то английские буквы показывает нормально - русские нет.
Я использую следующий код для передачи информации из компьютера в экранчик:
String s
while (Serial.available())
{
char c = Serial.read();
s += c;
if (c == '\n') //перевод строки
{
lcd.clear();
lcd.setCursor(0, 0);
lcd.print(s);
}
Пробую так же подключиться из Delphi к ардуино. Чувствую, что проблема просто с кодировкой. Однако, если делать кодировку UTF8 для передачи, то английский передается нормально, русский нет. Вообще не показывается на экране.
Хочу сделать нотификатор из гугл календаря на связке Ардуино - Дельфи.
источником сейчас является монитор последовательного порта из IDE Arduino для Windows. Так что меня смущает, что код-то передается тот, что нужно, в кодировке СР1251, см. мое предыдущее сообщение, а на экране не отображается.
На сколько я разобрался в теме это и не получится с русскими. Т.к. они в чип компилятся не как
а как
каждая русская буква кодируется двумя байтами в кодировка UTF8, а данный скретч предполагает ASCII кодировку.
Все равно крякозябры.
попробуй вот это
На сколько я разобрался в теме это и не получится с русскими. Т.к. они в чип компилятся не как
а как
каждая русская буква кодируется двумя байтами в кодировка UTF8, а данный скретч предполагает ASCII кодировку.
Все равно крякозябры.
попробуй вот это
P.S: Как спойлер добавить? Не смог найти. :(
отправь просто
глянуть что именно выдаст и по картинке определить на какие элементы массива он ссылается
и фото бы покачественней. хоть через темное стекло или пленку
Вот вы тут опять обсуждаете задачу с русскими буквами - в скетче и в микроконтроллере, а я тут уже давно решил эту задачу. И, к вашему сведенью, памяти строки меньше займут в 2 раза!
Вот вы тут опять обсуждаете задачу с русскими буквами - в скетче и в микроконтроллере, а я тут уже давно решил эту задачу. И, к вашему сведенью, памяти строки меньше займут в 2 раза!
Это хорошо. Но будет ли ваш вариант работать с Visual Studio и Visual Micro под нее?
Всех приветствую господа. В общем я победил эту проблемму. Библиотека PCD8544. Подправил файл Charset.cpp:
Здесь пришлось в массиве поменять местами порядок русских букв. Но все равно только редактированием этого файла не обойтись.
В файле PCD8544.cpp делаем правки
И все работает. Библиотека более простая чем АрдаФруит. позволяет выводить картинки и спецсимволы. Единственное, что не удалось побороть- размер шрифта.
размер шрифта побороть можно 3 способами
1. масштабировать текущий шрифт. выглядит убого и множитель только целый
2. сделать новый шрифт кратный высоте строки (8пикселей)
3. делать массив для всего дисплея. в нем писать в любом месте и как угодно, и выводить его на дисплей. что то вроде видеопамяти. только жрет оперативку сильно
jeka_tm
По первому варианту-в библиотеке PCD8544 вроде такой функции нету.
2.Вариант не осилю))) Тем более текущий шрифт итак высотой 8 пикселей. Мне нужно около 16-32.
Единственный вариант который мне видится-выводить картинками. Ввиду того, что слов и букв будет не много то можно будет нарисовать целиком слово. А вот с цифрами посложнее, т.к. они будут меняться динамически. Но памяти сожрет прилично.
2.Вариант не осилю))) Тем более текущий шрифт итак высотой 8 пикселей. Мне нужно около 16-32.
а повзаимствовать из keyrus не? Там стандартные вполне себе шрифты. http://gurtjak.skif.net/pages/programs.htm
Это хорошо. Но будет ли ваш вариант работать с Visual Studio и Visual Micro под нее?
Если вы компилите в других IDE то и настраивайте там какую вам надо кодировку скетча. Или там(у мелкомягких) не знают что может потребоваться кодировка отличная от юникода?
Вот отредактированная мной библиотека Adafruit_GFX с поддержкой русских букв
https://yadi.sk/d/MEiPGeXcepeJK
Вот отредактированная мной библиотека Adafruit_GFX с поддержкой русских букв
https://yadi.sk/d/MEiPGeXcepeJK
С буквой "И" какой-то косяк. Вместо неё знак вопроса.
jeka_tm
По первому варианту-в библиотеке PCD8544 вроде такой функции нету.
2.Вариант не осилю))) Тем более текущий шрифт итак высотой 8 пикселей. Мне нужно около 16-32.
Единственный вариант который мне видится-выводить картинками. Ввиду того, что слов и букв будет не много то можно будет нарисовать целиком слово. А вот с цифрами посложнее, т.к. они будут меняться динамически. Но памяти сожрет прилично.
цифры могу дать. в этой теме посмотри какие
http://arduino.ru/forum/proekty/khronograf-izmeritel-skorosti-puli-ot-pr...
а новые можно в одной программе генерировать
http://arduino.ru/forum/proekty/khronograf-izmeritel-skorosti-puli-ot-pr...
только там замороченный вывод. но его уже победил. код выложил
С буквой "И" какой-то косяк. Вместо неё знак вопроса.
Странно. Еще раз проверил все буквы. Все работает.
Выложи код. Может быть вместе найдем косяк.
Вот в шрифте строка: 0x7f, 0x10, 0x08, 0x04, 0x7f,//И 0x98
Вот в шрифте строка: 0x7f, 0x10, 0x08, 0x04, 0x7f,//И 0x98
Здесь все верно))
Может быть в твоем скетче ошибка?
Как мне правильно определить строковую переменную и вывести её на дисплей? Пытаюсь так:
На дисплей ни чего не выводит.
А вот скетч:
Как мне правильно определить строковую переменную и вывести её на дисплей? Пытаюсь так:
На дисплей ни чего не выводит.
Добавь в конец кода строчку:
У меня так переменная выводится.
Возможно другая информация затирает твою переменную. Может это поможет:
И ещё вопрос. Как записать время в DS1307. Питание снимаешь - они останавливаются.
Что делаю не правильно?:
Всё равно выводит "Понедельник".
так может у тебя понедельник. что ты железку ругаешь))
У меня вообще отпуск, а в 28 строке задаю субботу, а он, собака, пишет понедельник. Вот и спрашивается, где косяк?
а если сделать так
и посмотреть что он выдает. может это не он тупит, а кто то перегрелся на солнышке
что выполняет строка 034
str[i];} ?
Как я понимаю, если "MONDEY", то в "i" заносится "0", если "TUESDAY", то в "i" заносится "1" и так далее...
а если сделать так
и посмотреть что он выдает. может это не он тупит, а кто то перегрелся на солнышке
Я понял, что выполняется только "MONDAY", вот и спрашиваю, что не так? Я раньше писал на Delphi, совсем другая петрушка...
ну проверь чтоли уже)) вставь строку в свой код и посмотри в терминале
Пишет субботу...А на дисплей выводит понедельник.
И часы отстают не по детски...Батарейка?
это соответствие устанавливается в строке 33, а в 34-й вообще смысла не вижу.
Немного переделал, но всё равно возвращает "0". Не пойму что не так:
Немного переделал, но всё равно возвращает "0". Не пойму что не так:
У тебя в коде ошибки и пропущено много скобок {}
case не может быть строковым, только числом.
sandr4, у тебя после строки 01 программа всегда перескакивает на строку 19. Сам найдешь ошибку? :)
Если-бы мог сам найти ошибку, здесь бы не задавал вопроса.
У тебя d всегда равна нулю, потому что ни в одной строчке кода ты не меняешь ее состояние (я про пост #81).
Попробуй так:
Спасибо за помощь, вставил Ваш код в прогу, возвращает, почему-то, "31"...
возвращает в каком месте? d не может быть 31.
Весь код выложите, у меня нет DS1307, плоэтому вживую проверить нет возможности.
P.S. и исправьте THORSDAY
Весь код:
а где "31" выводится?
"31" в мониторе, на дисплее, соответственно, пустота.
упс
Сделал так:
и код "заработал". Теперь дни недели на русском.
составь символы таким форматом:
byte symvol_a[] = {
B0,0,0,0,0
B0,0,1,0,0
B0,1,0,1,0
B0,1,1,1,0
B0,1,0,1,0
B0,1,0,1,0
B0,0,0,0,0
}
будет отоброжаца символ А .
в принцепе можно английскую букву "a". Ну вы меня поняли.
Только я не понял как его запустить.
Добрый день, уважаемое сообщество.
Тоже пытаюсь соединить дисплей от Nokia 5110 с Arduino Uno.
Для этого использую библиотеку https://github.com/carlosefr/pcd8544 с патчем и шрифтом от serghv.
В коде, если писать
то отображается на экране все нормально: Привет!
А если передавать из COM-порта - то английские буквы показывает нормально - русские нет.
Я использую следующий код для передачи информации из компьютера в экранчик:
Пробую так же подключиться из Delphi к ардуино. Чувствую, что проблема просто с кодировкой. Однако, если делать кодировку UTF8 для передачи, то английский передается нормально, русский нет. Вообще не показывается на экране.
Хочу сделать нотификатор из гугл календаря на связке Ардуино - Дельфи.
Никакого utf8 только ascii
Да, вы правы!
Если попросить вывести хекс вместо символа на экран кодом
display.print(Serial.read(),HEX);
то выводятся коды кодировки СР1251, т.е. вместо А - C0, вместо а - E0. Тогда в чем может быть проблема? В таблице символов?
Как исправить?
Как исправить?
ну в вашем случае: найти/настроить терминал на ascii.
Вы же передаете из винды или по блютузу? Кто является источником?
источником сейчас является монитор последовательного порта из IDE Arduino для Windows. Так что меня смущает, что код-то передается тот, что нужно, в кодировке СР1251, см. мое предыдущее сообщение, а на экране не отображается.
https://ru.wikipedia.org/wiki/Windows-1251
Попробуй конвертить из CP1251 в расширенный ASCII
хм... туплю - это одно и тоже. Тогда надо смотреть как руссифицирован шрифт, возможно не по стандату