Дисплеи от мобильных телефонов- осцилограммы работы

Дисплеи, датчики и прочие функциональные узлы, управляемые МК.
Аватара пользователя
U235
Встал на лапы
Сообщения: 135
Зарегистрирован: Вт фев 21, 2012 20:42:26
Откуда: Санкт-Петербург, Россия, Земля

Re: Дисплеи от мобильных телефонов- осцилограммы работы

Сообщение U235 »

Самый эффективный способ понять, что не так - посмотреть ассемблерный листинг. И пошаговое исполнение в симуляторе студии - то же очень помогает.
Ещё можно чуть поменять код. Вместо

Код: Выделить всё

put_string(0,15,"!@#$%^&*()_-=+",LCD_BLACK);
put_string(0,85,"abcdefghijkl",LCD_BLACK);
put_string(0,35,"1234567890",LCD_BLACK);

Сделать так

Код: Выделить всё

// В начале файла
char msg1[]="!@#$%^&*()_-=+";
char msg2]="abcdefghijkl";
char msg3[]="1234567890";


put_string(0, 15, msg1, LCD_BLACK);
put_string(0, 85, msg2, LCD_BLACK);
put_string(0, 35, msg3, LCD_BLACK);
А из наших труб идет необычный дым. Стой! Опасная зона! Работа мозга!...
Foks
Поставщик валерьянки для Кота
Сообщения: 2108
Зарегистрирован: Пт авг 29, 2008 16:28:19
Откуда: Киев

Re: Дисплеи от мобильных телефонов- осцилограммы работы

Сообщение Foks »

VDLab писал(а):Какая, блин, динамическая память? Это статический массив, хоть и расположен в ОЗУ. Компилятор просто обязан следить за тем, уместится ли он в память(точнее это задача линкера, но с WinAVR не работал, может там отдельного линкера нет).
Сорри, действительно не заметил, что он статический. Линкер там есть конечно, GCC в этом плане наоборот реализован образцово.

К сожалению, сейчас нет времени разбираться, но по-видимому всё же можно заставить его отслеживать память, путём принудительного задания размеров секций. Надо смотреть дефолтные линкер-скрипты, и разбираться, как он вообще отслеживает объем оперативной памяти.
А с помощью avr-size your_firmware.elf можно посмотреть размер секции bss - это статическая оперативная память.
Giggity giggity goo!
Аватара пользователя
Зукс
Вымогатель припоя
Сообщения: 564
Зарегистрирован: Чт июл 21, 2011 19:56:10

Re: Дисплеи от мобильных телефонов- осцилограммы работы

Сообщение Зукс »

Поставил у себя вот такую вот строчку:

Код: Выделить всё

static unsigned char FONT8x15[97][15] PROGMEM

Добавил библиотеку:

Код: Выделить всё

#include <avr/pgmspace.h>

И получил результат еще хуже. На месте тех каракуль которые у меня рисовались щас вообще рисуется хаотический шум. Такое ощущение что я записал массив но читаю не с него а вообще с произвольного участка памяти МК :facepalm: Если нужно могу сфоткать
Если да, то проверьте значения CHAR_H и CHAR_W

Значения там точно правильные, еслибы нет то было бы не смещение а обрезание букв
Шуруп забитый молотком держится намного лучше чем гвоздь закрученный отверткой!
Аватара пользователя
U235
Встал на лапы
Сообщения: 135
Зарегистрирован: Вт фев 21, 2012 20:42:26
Откуда: Санкт-Петербург, Россия, Земля

Re: Дисплеи от мобильных телефонов- осцилограммы работы

Сообщение U235 »

Замените

Код: Выделить всё

ch=FONT8x15[(unsigned char) c-32 ][h];

на

Код: Выделить всё

ch=pgm_read_byte(&FONT8x15[(unsigned char) c-32 ][h]);
А из наших труб идет необычный дым. Стой! Опасная зона! Работа мозга!...
Аватара пользователя
Зукс
Вымогатель припоя
Сообщения: 564
Зарегистрирован: Чт июл 21, 2011 19:56:10

Re: Дисплеи от мобильных телефонов- осцилограммы работы

Сообщение Зукс »

Да, дело было действительно в неправильном чтении с массива. Вот результат(правда русских букв пока нету):
Изображение
Шуруп забитый молотком держится намного лучше чем гвоздь закрученный отверткой!
Аватара пользователя
VDLab
Встал на лапы
Сообщения: 108
Зарегистрирован: Ср июн 29, 2011 14:16:22
Откуда: __.DP.UA

Re: Дисплеи от мобильных телефонов- осцилограммы работы

Сообщение VDLab »

Могу подогнать массив 8х14 с русскими символами если что...
[color=#FFBF00]На любой вопрос даю любой ответ[/color]
Аватара пользователя
Зукс
Вымогатель припоя
Сообщения: 564
Зарегистрирован: Чт июл 21, 2011 19:56:10

Re: Дисплеи от мобильных телефонов- осцилограммы работы

Сообщение Зукс »

Буду очень благодарен :beer: Желательно здесь выложить тчоб другие тоже могли пользоватся
Шуруп забитый молотком держится намного лучше чем гвоздь закрученный отверткой!
Аватара пользователя
VDLab
Встал на лапы
Сообщения: 108
Зарегистрирован: Ср июн 29, 2011 14:16:22
Откуда: __.DP.UA

Re: Дисплеи от мобильных телефонов- осцилограммы работы

Сообщение VDLab »

Пользуйтесь.
Вложения
1251_8x14.h
(19.76 КБ) 336 скачиваний
[color=#FFBF00]На любой вопрос даю любой ответ[/color]
Аватара пользователя
Зукс
Вымогатель припоя
Сообщения: 564
Зарегистрирован: Чт июл 21, 2011 19:56:10

Re: Дисплеи от мобильных телефонов- осцилограммы работы

Сообщение Зукс »

Я так понимаю Ваш шрифт тоже с пропуском первых 32 символов? Размер символов указал правильно но символы не те выводятся что нужно... Кодировка таже?
Английский текст печатает нормально а русский - иероглифы
Последний раз редактировалось Зукс Сб июл 07, 2012 18:33:42, всего редактировалось 1 раз.
Шуруп забитый молотком держится намного лучше чем гвоздь закрученный отверткой!
Foks
Поставщик валерьянки для Кота
Сообщения: 2108
Зарегистрирован: Пт авг 29, 2008 16:28:19
Откуда: Киев

Re: Дисплеи от мобильных телефонов- осцилограммы работы

Сообщение Foks »

Та же или не та же - от Вас зависит. Файл исходника должен быть в правильной кодировке, используемой автором (скорее всего win-1251). А английские символы во всех однобайтовых кодировках одинаковы, потому там Вы разницы не увидите.
Giggity giggity goo!
Аватара пользователя
Зукс
Вымогатель припоя
Сообщения: 564
Зарегистрирован: Чт июл 21, 2011 19:56:10

Re: Дисплеи от мобильных телефонов- осцилограммы работы

Сообщение Зукс »

я из файла использовал только массив. Английский текст пишет нормально а русский - нет. Я вижу что в массиве используется uchar а не char. У меня пишет ошибку на uchar
Последний раз редактировалось Зукс Сб июл 07, 2012 18:40:14, всего редактировалось 1 раз.
Шуруп забитый молотком держится намного лучше чем гвоздь закрученный отверткой!
Foks
Поставщик валерьянки для Кота
Сообщения: 2108
Зарегистрирован: Пт авг 29, 2008 16:28:19
Откуда: Киев

Re: Дисплеи от мобильных телефонов- осцилограммы работы

Сообщение Foks »

Правильно - компилятор воспринимает Ваши строки в файле .c в той кодировке, в которой сам файл. Массив делался под определенную кодировку, и Ваши строки должны быть именно ею написаны. Компилятор буквы не понимает, какие байты в исходнике идут - такие он и линкует.

Add: uchar здесь не причем! Вы можете написать в файле

const unsigned char str[] = "Привет, кагдила";

В какой кодировке файл исходника сохраните, в такой кодировке строка и будет. Массив символов для дисплея сделан под конкретную кодировку, потому что в других кодировках порядок символов другой (и соответственно их коды). Исходник надо сохранить в другой кодировке.
Последний раз редактировалось Foks Сб июл 07, 2012 20:56:32, всего редактировалось 1 раз.
Giggity giggity goo!
Аватара пользователя
Зукс
Вымогатель припоя
Сообщения: 564
Зарегистрирован: Чт июл 21, 2011 19:56:10

Re: Дисплеи от мобильных телефонов- осцилограммы работы

Сообщение Зукс »

Как сохранить исходник в правильной кодировке? Я попробовал в блокноте файл пересохранить с кодировкой ansi, не помогло. У автора файл с кодировкой ansi
Шуруп забитый молотком держится намного лучше чем гвоздь закрученный отверткой!
Аватара пользователя
da-nie
Говорящий с текстолитом
Сообщения: 1590
Зарегистрирован: Вс июн 24, 2012 16:07:00
Откуда: Лен.Обл.
Контактная информация:

Re: Дисплеи от мобильных телефонов- осцилограммы работы

Сообщение da-nie »

Я так понимаю Ваш шрифт тоже с пропуском первых 32 символов?


Не существует первых 32-х символов. Там управляющие коды (табуляция, перевод строки, возврат каретки и т.д.). Символ 32 - пробел.

Как сохранить исходник в правильной кодировке? Я попробовал в блокноте файл пересохранить с кодировкой ansi, не помогло. У автора файл с кодировкой ansi


Попробуйте akelpad, например. По-моему, он это умеет.
И день и ночь в пути...
Мои программки: https://github.com/da-nie
Мои публикации: https://habr.com/ru/users/da-nie/posts/
Мои видео: https://www.youtube.com/channel/UCUroi3 ... 52g/videos
Аватара пользователя
Зукс
Вымогатель припоя
Сообщения: 564
Зарегистрирован: Чт июл 21, 2011 19:56:10

Re: Дисплеи от мобильных телефонов- осцилограммы работы

Сообщение Зукс »

akelpad, пока не помог. Я ставил ANSI кириллица но ничего не изменилось. Может я неправильную кодировку выбираю?
Шуруп забитый молотком держится намного лучше чем гвоздь закрученный отверткой!
Аватара пользователя
da-nie
Говорящий с текстолитом
Сообщения: 1590
Зарегистрирован: Вс июн 24, 2012 16:07:00
Откуда: Лен.Обл.
Контактная информация:

Re: Дисплеи от мобильных телефонов- осцилограммы работы

Сообщение da-nie »

Я ставил ANSI кириллица но ничего не изменилось. Может я неправильную кодировку выбираю?


А вы задайте символ кодом.
Для явно заданных строк нужно настройки компилятора менять, скорее всего.

А у вас там при вычислении индекса в массиве случайно нигде нет смещения с использованием типа char? Русские буквы имеют коды больше 127, а в типе char, а не unsigned char это отрицательные значения.
И день и ночь в пути...
Мои программки: https://github.com/da-nie
Мои публикации: https://habr.com/ru/users/da-nie/posts/
Мои видео: https://www.youtube.com/channel/UCUroi3 ... 52g/videos
Аватара пользователя
Зукс
Вымогатель припоя
Сообщения: 564
Зарегистрирован: Чт июл 21, 2011 19:56:10

Re: Дисплеи от мобильных телефонов- осцилограммы работы

Сообщение Зукс »

Кодом это долго... Массив у меня unsigned char, я думаю там незачем ставить char
Шуруп забитый молотком держится намного лучше чем гвоздь закрученный отверткой!
Аватара пользователя
da-nie
Говорящий с текстолитом
Сообщения: 1590
Зарегистрирован: Вс июн 24, 2012 16:07:00
Откуда: Лен.Обл.
Контактная информация:

Re: Дисплеи от мобильных телефонов- осцилограммы работы

Сообщение da-nie »

Кодом это долго... Массив у меня unsigned char, я думаю там незачем ставить char


Кодом для проверки номеров символов. :) Вместо строки написать коды символов (не забудьте ноль в конце строки :) ).
Речь не о массиве, а о вычислении смещения по коду символа. Там не должно быть char. Только unsigned char. И следите за тем, чтобы при умножении кода символа на размер символа не получилось округления до 0-255. :)
И день и ночь в пути...
Мои программки: https://github.com/da-nie
Мои публикации: https://habr.com/ru/users/da-nie/posts/
Мои видео: https://www.youtube.com/channel/UCUroi3 ... 52g/videos
Foks
Поставщик валерьянки для Кота
Сообщения: 2108
Зарегистрирован: Пт авг 29, 2008 16:28:19
Откуда: Киев

Re: Дисплеи от мобильных телефонов- осцилограммы работы

Сообщение Foks »

Настройки GCC менять не нужно. Поставьте Notepad++.
Giggity giggity goo!
Аватара пользователя
ELcat
Друг Кота
Сообщения: 3258
Зарегистрирован: Вт май 19, 2009 09:27:30
Откуда: Украина

Re: Дисплеи от мобильных телефонов- осцилограммы работы

Сообщение ELcat »

Здравствуйте! Нашёл дисплейчик от Нокии 6100 с надписью на обороте MD201109123456 (фото прилигаю). Кто-нибудь запускал дисплейчик такой ревизии? Есть под него набор команд, примерчик, библиотека? Заранее благодарю.
Вложения
6100.jpg
(39.74 КБ) 428 скачиваний
Ответить

Вернуться в «Периферия»