Реклама на сайте English version  DatasheetsDatasheets

KAZUS.RU - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Электронные книги
FAQ по электронике

  Datasheets
Поиск SMD
Он-лайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Избранные схемы
FAQ по электронике
  Программы
Каталог сайтов
Производители электроники
  Форумы по электронике
Помощь проекту

Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей...

 
Опции темы
Непрочитано 20.04.2011, 15:52  
gud_alex
Частый гость
 
Регистрация: 23.09.2009
Сообщений: 41
Сказал спасибо: 8
Сказали Спасибо 3 раз(а) в 3 сообщении(ях)
gud_alex на пути к лучшему
По умолчанию Програмерский вопрос (вывод текста на экран)

Всем привет!)

Нужен совет по организации библиотеки вывода текста на ЛСД экран, задача вроде бы стандартная, но есть нюансы.
Немного о сетапе, есть МК MSP430F2471, 4K RAM, 32K Flash, 16MHz max (хотя и не планирую гонять на таких высоких частотах), к нему по I2C подключен дисплей от SonyEricsson T68i (101x80 pix, 8bpp). Нужно выводить простую текстовую информацию. Достаточно ч\б.
Как видите ресурсов не очень много, кроме того на этой шине сидят еще 2 чипа с невысокой частотой опроса.
Доступные команды для вывода: 1) поставить курсор на такую-то точку (х,у); 2)вывести данные для пикселя под курсором и следующих за ним (с переносом строк).
Памяти для буфера никак не хватит, он ведь хочет по байту на пиксель, хотя мне достаточно 1bpp.
Понятно что придется хранить битмап для шрифта, но можно ли обойтись 1bpp, а при выводе перекодировать (бит 1 -› 0xFF, бит 0 -› 0x00)

Что люди делают в таких условиях?
Реклама:
gud_alex вне форума  
Непрочитано 20.04.2011, 16:09  
niXto
Почётный гражданин KAZUS.RU
 
Аватар для niXto
 
Регистрация: 13.10.2007
Адрес: Беларусь
Сообщений: 8,048
Сказал спасибо: 60
Сказали Спасибо 3,954 раз(а) в 2,309 сообщении(ях)
niXto на пути к лучшему
По умолчанию Re: Програмерский вопрос (вывод текста на экран)

В таком случае создают в ПЗУ контроллера знакогенератор, выводят строчку из него в ОЗУ, и из ОЗУ загружают в дисплей. Следующая строчка аналогично
niXto вне форума  
Непрочитано 20.04.2011, 18:18  
dosikus
Гуру портала
 
Аватар для dosikus
 
Регистрация: 20.11.2004
Сообщений: 10,015
Сказал спасибо: 936
Сказали Спасибо 2,269 раз(а) в 1,563 сообщении(ях)
dosikus на пути к лучшему
По умолчанию Re: Програмерский вопрос (вывод текста на экран)

gud_alex, Какой шрифт нужен? Если вывод будет строго монохром , знакогенератор фиксированный 8х(X). Знакогенератор будет занимать максимум (Х)*256 . Ну то есть то что вы хотите . 1 бит на пиксель .
Готовые знакогенераторы ищите от монохромных дисплеев типа Nokia 3310.
__________________
Осторожно , злой кот
dosikus вне форума  
Непрочитано 20.04.2011, 18:52  
gud_alex
Частый гость
 
Регистрация: 23.09.2009
Сообщений: 41
Сказал спасибо: 8
Сказали Спасибо 3 раз(а) в 3 сообщении(ях)
gud_alex на пути к лучшему
По умолчанию Re: Програмерский вопрос (вывод текста на экран)

Неясно одно, как мне из этого знакогенератора выводить на дисплей? мне же нужно для каждого пикселя на экране запихнуть в него 1 байт а не один бит.
gud_alex вне форума  
Непрочитано 20.04.2011, 19:42  
omercury
Почётный гражданин KAZUS.RU
 
Аватар для omercury
 
Регистрация: 25.05.2010
Адрес: г. Королёв
Сообщений: 8,497
Сказал спасибо: 30
Сказали Спасибо 3,072 раз(а) в 2,013 сообщении(ях)
omercury на пути к лучшему
По умолчанию Re: Програмерский вопрос (вывод текста на экран)

Ну, что-нибудь типа:
PHP код:
void send_8b_i2c(char byte_to_send)
For (
i=0;i8;i++)
   {
         if((
byte_to_send)&(0x80)) {send_i2c(0xFF)}
         else {
send_i2c(0x00)};
         
byte_to_send=(byte_to_send‹‹1);
   } 
для передачи старшим битом вперед.
omercury вне форума  
Непрочитано 20.04.2011, 19:47  
vdlab
Гражданин KAZUS.RU
 
Аватар для vdlab
 
Регистрация: 17.07.2006
Адрес: PV.DP.UA
Сообщений: 620
Сказал спасибо: 3
Сказали Спасибо 60 раз(а) в 48 сообщении(ях)
vdlab на пути к лучшему
По умолчанию Re: Програмерский вопрос (вывод текста на экран)

Цитата:
Неясно одно, как мне из этого знакогенератора выводить на дисплей? мне же нужно для каждого пикселя на экране запихнуть в него 1 байт а не один бит.
Ну так и проверяйте каждый бит, и, в зависимости от его значения, рисуете или не рисуете точку.
Вот один из вариантов знакогенератора:
Код:
/* ASCII таблица символов*/
const unsigned char ascii_tab[96][14]={
{ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // space (32)
{ 0x00, 0x00, 0x00, 0x18, 0x3c, 0x3c, 0x3c, 0x18, 0x18, 0x00, 0x18, 0x18, 0x00, 0x00}, //!
{ 0x00, 0x66, 0x66, 0x66, 0x24, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, //"
{ 0x00, 0x00, 0x00, 0x6c, 0x6c, 0xfe, 0x6c, 0x6c, 0x6c, 0xfe, 0x6c, 0x6c, 0x00, 0x00}, //#
{ 0x00, 0x18, 0x18, 0x7c, 0xc6, 0xc2, 0xc0, 0x7c, 0x06, 0x86, 0xc6, 0x7c, 0x18, 0x18}, //$
...
};
/*функция вывода символа 14х8 пикселей*/
void PutChar(unsigned int x, unsigned int y, char c, unsigned int color)
{
unsigned char h, ch, p, mask;

for (h=0; h‹=13; h++)             // every column of the character
    {
    ch = ascii_tab[ c-32 ][h];
    mask=0x80;
    for (p=0; p‹=7; p++)          // write the pixels
        {
         if (ch&mask)
            {
            PutPixel(x+p, y+h, color);                
            }
        mask=mask/2;
        }
    }
}
__________________
Если ты читаешь это - значит тебе нечем заняться...
vdlab вне форума  
Непрочитано 20.04.2011, 20:01  
dosikus
Гуру портала
 
Аватар для dosikus
 
Регистрация: 20.11.2004
Сообщений: 10,015
Сказал спасибо: 936
Сказали Спасибо 2,269 раз(а) в 1,563 сообщении(ях)
dosikus на пути к лучшему
По умолчанию Re: Програмерский вопрос (вывод текста на экран)

omercury, Зря удалил , все же правильно .
__________________
Осторожно , злой кот
dosikus вне форума  
Непрочитано 20.04.2011, 20:12  
omercury
Почётный гражданин KAZUS.RU
 
Аватар для omercury
 
Регистрация: 25.05.2010
Адрес: г. Королёв
Сообщений: 8,497
Сказал спасибо: 30
Сказали Спасибо 3,072 раз(а) в 2,013 сообщении(ях)
omercury на пути к лучшему
По умолчанию Re: Програмерский вопрос (вывод текста на экран)

vdlab, полнее написал.

Последний раз редактировалось omercury; 20.04.2011 в 20:20. Причина: Просто сделал именно то, что хотел ТС.
omercury вне форума  
Непрочитано 20.04.2011, 20:14  
dosikus
Гуру портала
 
Аватар для dosikus
 
Регистрация: 20.11.2004
Сообщений: 10,015
Сказал спасибо: 936
Сказали Спасибо 2,269 раз(а) в 1,563 сообщении(ях)
dosikus на пути к лучшему
По умолчанию Re: Програмерский вопрос (вывод текста на экран)

omercury, Пусть у ТС выбор будет.
__________________
Осторожно , злой кот
dosikus вне форума  
 

Закладки
Опции темы

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

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вывод текста на экран жк Uragan90 Микроконтроллеры, АЦП, память и т.д 52 21.03.2012 04:29


Часовой пояс GMT +4, время: 19:37.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot