Форум Микро-Чип
Поиск и заказ электронных компонентов
 

Вернуться   Форум Микро-Чип > Продукция MICROCHIP

Продукция MICROCHIP Технические вопросы по всей продукции Microchip

Ответ
 
Опции темы Опции просмотра
Старый 23.08.2007, 18:53   #1
DL36
Senior Member
 
Регистрация: 25.02.2007
Адрес: Херсон
Сообщений: 3,642
Вес репутации: 1983/105
DL36 has a brilliant futureDL36 has a brilliant futureDL36 has a brilliant futureDL36 has a brilliant futureDL36 has a brilliant futureDL36 has a brilliant futureDL36 has a brilliant futureDL36 has a brilliant futureDL36 has a brilliant futureDL36 has a brilliant futureDL36 has a brilliant future
По умолчанию Надо вводить много русского текста для символьного LCD.

Вводить в кодах проблематично, может, есть более прогрессивные способы.



Компилятор от Хайтека.
DL36 вне форума   Ответить с цитированием
Старый 23.08.2007, 19:07   #2
IceS
Super Moderator
 
Регистрация: 01.03.2007
Адрес: St. Petersburg
Возраст: 41
Сообщений: 3,246
Вес репутации: 3684/118
IceS has a reputation beyond reputeIceS has a reputation beyond reputeIceS has a reputation beyond reputeIceS has a reputation beyond reputeIceS has a reputation beyond reputeIceS has a reputation beyond reputeIceS has a reputation beyond reputeIceS has a reputation beyond reputeIceS has a reputation beyond reputeIceS has a reputation beyond reputeIceS has a reputation beyond repute
Отправить сообщение для IceS с помощью ICQ
По умолчанию Re: Надо вводить много русского текста для символьного LCD.

Цитата:
Сообщение от DL36 Посмотреть сообщение
Вводить в кодах проблематично, может, есть более прогрессивные способы.
Компилятор от Хайтека.
Дык вводи, в проге перед выводом на ЖКИ переконвертируй (исользуется 1 флешевый массив на 256 байт)

Имеется в виду что то типа:
Код:
unsigned char Text[] = "А здесь текст по русски!";
IceS вне форума   Ответить с цитированием
Старый 23.08.2007, 19:15   #3
DL36
Senior Member
 
Регистрация: 25.02.2007
Адрес: Херсон
Сообщений: 3,642
Вес репутации: 1983/105
DL36 has a brilliant futureDL36 has a brilliant futureDL36 has a brilliant futureDL36 has a brilliant futureDL36 has a brilliant futureDL36 has a brilliant futureDL36 has a brilliant futureDL36 has a brilliant futureDL36 has a brilliant futureDL36 has a brilliant futureDL36 has a brilliant future
По умолчанию Re: Надо вводить много русского текста для символьного LCD.

Цитата:
Сообщение от IceS Посмотреть сообщение
Дык вводи, в проге перед выводом на ЖКИ переконвертируй (исользуется 1 флешевый массив на 256 байт)

Имеется в виду что то типа:
Код:
unsigned char Text[] = "А здесь текст по русски!";
Спасибо об этом как то не подумал, привычка все место экономить.
DL36 вне форума   Ответить с цитированием
Старый 23.08.2007, 19:29   #4
LordN
Senior Member
 
Регистрация: 25.02.2007
Адрес: Томск
Возраст: 51
Сообщений: 783
Вес репутации: 896/65
LordN is a splendid one to beholdLordN is a splendid one to beholdLordN is a splendid one to beholdLordN is a splendid one to beholdLordN is a splendid one to beholdLordN is a splendid one to beholdLordN is a splendid one to behold
Отправить сообщение для LordN с помощью ICQ
По умолчанию Re: Надо вводить много русского текста для символьного LCD.

маленькая поправочка - если текст статичный, то лучше через указатель на const делать.

Цитата:
const char *text;

text = "куку";
printf(%s,text); // напечатет куку

text = "муму";
printf((%s,text); // напечатет муму и т.д.
LordN вне форума   Ответить с цитированием
Старый 23.08.2007, 19:59   #5
IceS
Super Moderator
 
Регистрация: 01.03.2007
Адрес: St. Petersburg
Возраст: 41
Сообщений: 3,246
Вес репутации: 3684/118
IceS has a reputation beyond reputeIceS has a reputation beyond reputeIceS has a reputation beyond reputeIceS has a reputation beyond reputeIceS has a reputation beyond reputeIceS has a reputation beyond reputeIceS has a reputation beyond reputeIceS has a reputation beyond reputeIceS has a reputation beyond reputeIceS has a reputation beyond reputeIceS has a reputation beyond repute
Отправить сообщение для IceS с помощью ICQ
По умолчанию Re: Надо вводить много русского текста для символьного LCD.

вот когда то делал, писалось под IAR:
Код:
  
  //таблица перекодировки символов
  __flash unsigned char WIN_TO_LCD[256] = {
  //управляющие коды
    0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F, //0
   
  //управляющие коды
    0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1A, 0x1B, 0x1C, 0x1D, 0x1E, 0x1F, //1
   
  //        !     "     #     $     %     &     '     (     )     *     +     ,     -     .     /   //  ASCII символы
     ' ',  '!',  '"',  '#',  '$',  '%',  '&', 0x27,  '(',  ')',  '*',  '+',  ',',  '-',  '.',  '/', //2 ЖКИ коды этих символов
   
  //  0     1     2     3     4     5     6     7     8     9     :     ;     <     =     >     ?   //  ASCII символы
     '0',  '1',  '2',  '3',  '4',  '5',  '6',  '7',  '8',  '9',  ':',  ';',  '<',  '=',  '>',  '?', //3 ЖКИ коды этих символов
   
  //  @     A     B     C     D     E     F     G     H     I     J     K     L     M     N     O   //  ASCII символы
     '@',  'A',  'B',  'C',  'D',  'E',  'F',  'G',  'H',  'I',  'J',  'K',  'L',  'M',  'N',  'O', //4 ЖКИ коды этих символов
   
  //  P     Q     R     S     T     U     V     W     X     Y     Z     [     \     ]     ^     _   //  ASCII символы
     'P',  'Q',  'R',  'S',  'T',  'U',  'V',  'W',  'X',  'Y',  'Z',  '[', '\\',  ']',  '^',  '_', //5 ЖКИ коды этих символов
   
  //  `     a     b     c     d     e     f     g     h     i     j     k     l     m     n     o   //  ASCII символы
     '`',  'a',  'b',  'c',  'd',  'e',  'f',  'g',  'h',  'i',  'j',  'k',  'l',  'm',  'n',  'o', //6 ЖКИ коды этих символов
   
  //  p     q     r     s     t     u     v     w     x     y     z     {      |     }    ~   0x7F, //  ASCII символы
     'p',  'q',  'r',  's',  't',  'u',  'v',  'w',  'x',  'y',  'z', 0x7B, 0x7C, 0x7D, 0x7E, 0x7F, //7 ЖКИ коды этих символов
   
  //0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8A, 0x8B, 0x8C, 0x8D, 0x8E, 0x8F, //  ASCII символы
    0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8A, 0x8B, 0x8C, 0x8D, 0x8E, 0x8F, //8 ЖКИ коды этих символов
   
  //0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, 0x98, 0x99, 0x9A, 0x9B, 0x9C, 0x9D, 0x9E, 0x9F, //  ASCII символы
    0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, 0x98, 0x99, 0x9A, 0x9B, 0x9C, 0x9D, 0x9E, 0x9F, //9 ЖКИ коды этих символов
   
  //  _     _     _     _     _     _     _     _     Ё     _     _     _     _     _     _     _   //  ASCII символы
     ' ',  ' ',  ' ',  ' ',  ' ',  ' ',  ' ',  ' ', 0xA2,  ' ',  ' ',  ' ',  ' ',  ' ',  ' ',  ' ', //A ЖКИ коды этих символов
   
  //  _     _     _     _     _     _     _     _     ё     _     _     _     _     _     _     _   //  ASCII символы
     ' ',  ' ',  ' ',  ' ',  ' ',  ' ',  ' ',  ' ', 0xB5,  ' ',  ' ',  ' ',  ' ',  ' ',  ' ',  ' ', //B ЖКИ коды этих символов
   
  //  А     Б     В     Г     Д     Е     Ж     З     И     Й     К     Л     М     Н     О     П   //  ASCII символы
     'A', 0xA0,  'B', 0xA1, 0xE0,  'E', 0xA3, 0xA4, 0xA5, 0xA6,  'K', 0xA7,  'M',  'H',  'O', 0xA8, //C ЖКИ коды этих символов
   
  //  Р     С     Т     У     Ф     Х     Ц     Ч     Ш     Щ     Ъ     Ы     Ь     Э     Ю     Я   //  ASCII символы
     'P',  'C',  'T', 0xA9, 0xAA,  'X', 0xE1, 0xAB, 0xAC, 0xE2, 0xAD, 0xAE,  'b', 0xAF, 0xB0, 0xB1, //D ЖКИ коды этих символов
   
  //  а     б     в     г     д     е     ж     з     и     й     к     л     м     н     о     п   //  ASCII символы
     'a', 0xB2, 0xB3, 0xB4, 0xE3,  'e', 0xB6, 0xB7, 0xB8, 0xB9, 0xBA, 0xBB, 0xBC, 0xBD,  'o', 0xBE, //E ЖКИ коды этих символов
   
  //  р     с     т     у     ф     х     ц     ч     ш     щ     ъ     ы     ь     э     ю     я   //  ASCII символы
     'p',  'c', 0xBF,  'y', 0xE4,  'x', 0xE5, 0xC0, 0xC1, 0xE6, 0xC2, 0xC3, 0xC4, 0xC5, 0xC6, 0xC7  //F ЖКИ коды этих символов
  };
хм.. возможно кодировка русских символов будет отличаться от моего ЖКИ :/
IceS вне форума   Ответить с цитированием
Старый 23.08.2007, 19:59   #6
DL36
Senior Member
 
Регистрация: 25.02.2007
Адрес: Херсон
Сообщений: 3,642
Вес репутации: 1983/105
DL36 has a brilliant futureDL36 has a brilliant futureDL36 has a brilliant futureDL36 has a brilliant futureDL36 has a brilliant futureDL36 has a brilliant futureDL36 has a brilliant futureDL36 has a brilliant futureDL36 has a brilliant futureDL36 has a brilliant futureDL36 has a brilliant future
По умолчанию Re: Надо вводить много русского текста для символьного LCD.

Цитата:
Сообщение от LordN Посмотреть сообщение
маленькая поправочка - если текст статичный, то лучше через указатель на const делать.
Спасибо, но меня более перекодировка волновала для символьного LCD.

Напрямую, без перекодировки печатает абракадабру.

Хотя может, что я упустил.
DL36 вне форума   Ответить с цитированием
Старый 23.08.2007, 20:08   #7
DL36
Senior Member
 
Регистрация: 25.02.2007
Адрес: Херсон
Сообщений: 3,642
Вес репутации: 1983/105
DL36 has a brilliant futureDL36 has a brilliant futureDL36 has a brilliant futureDL36 has a brilliant futureDL36 has a brilliant futureDL36 has a brilliant futureDL36 has a brilliant futureDL36 has a brilliant futureDL36 has a brilliant futureDL36 has a brilliant futureDL36 has a brilliant future
По умолчанию Спасибо

Цитата:
Сообщение от IceS Посмотреть сообщение
вот когда то делал, писалось под IAR:
хм.. возможно кодировка русских символов будет отличаться от моего ЖКИ :/
Спасибо еще раз, я уже почти закончил, но Ваш вариант гораздо информативнее
DL36 вне форума   Ответить с цитированием
Старый 24.08.2007, 00:20   #8
IceS
Super Moderator
 
Регистрация: 01.03.2007
Адрес: St. Petersburg
Возраст: 41
Сообщений: 3,246
Вес репутации: 3684/118
IceS has a reputation beyond reputeIceS has a reputation beyond reputeIceS has a reputation beyond reputeIceS has a reputation beyond reputeIceS has a reputation beyond reputeIceS has a reputation beyond reputeIceS has a reputation beyond reputeIceS has a reputation beyond reputeIceS has a reputation beyond reputeIceS has a reputation beyond reputeIceS has a reputation beyond repute
Отправить сообщение для IceS с помощью ICQ
По умолчанию Re: Спасибо

Ну как? Мой вариант помог?
IceS вне форума   Ответить с цитированием
Старый 24.08.2007, 13:16   #9
DL36
Senior Member
 
Регистрация: 25.02.2007
Адрес: Херсон
Сообщений: 3,642
Вес репутации: 1983/105
DL36 has a brilliant futureDL36 has a brilliant futureDL36 has a brilliant futureDL36 has a brilliant futureDL36 has a brilliant futureDL36 has a brilliant futureDL36 has a brilliant futureDL36 has a brilliant futureDL36 has a brilliant futureDL36 has a brilliant futureDL36 has a brilliant future
По умолчанию Конечно помог про Ё я вообще забыл

Цитата:
Сообщение от IceS Посмотреть сообщение
Ну как? Мой вариант помог?
Чуть изменил для Хайтека и получилось так:
Код:
  //таблица перекодировки символов
  const unsigned char tableWinToLCDhd44780[] = {   
  //A _     _     _     _     _     _     _     _     Ё     _     _     _     _     _     _     _   //  ASCII символы
     ' ',  ' ',  ' ',  ' ',  ' ',  ' ',  ' ',  ' ', 0xA2,  ' ',  ' ',  ' ',  ' ',  ' ',  ' ',  ' ', //A ЖКИ коды этих символов
   
  //B _     _     _     _     _     _     _     _     ё     _     _     _     _     _     _     _   //  ASCII символы
     ' ',  ' ',  ' ',  ' ',  ' ',  ' ',  ' ',  ' ', 0xB5,  ' ',  ' ',  ' ',  ' ',  ' ',  ' ',  ' ', //B ЖКИ коды этих символов
   
  //C А     Б     В     Г     Д     Е     Ж     З     И     Й     К     Л     М     Н     О     П   //  ASCII символы
     'A', 0xA0,  'B', 0xA1, 0xE0,  'E', 0xA3, 0xA4, 0xA5, 0xA6,  'K', 0xA7,  'M',  'H',  'O', 0xA8, //C ЖКИ коды этих символов
   
  //D Р     С     Т     У     Ф     Х     Ц     Ч     Ш     Щ     Ъ     Ы     Ь     Э     Ю     Я   //  ASCII символы
     'P',  'C',  'T', 0xA9, 0xAA,  'X', 0xE1, 0xAB, 0xAC, 0xE2, 0xAD, 0xAE,  'b', 0xAF, 0xB0, 0xB1, //D ЖКИ коды этих символов
   
  //E а     б     в     г     д     е     ж     з     и     й     к     л     м     н     о     п   //  ASCII символы
     'a', 0xB2, 0xB3, 0xB4, 0xE3,  'e', 0xB6, 0xB7, 0xB8, 0xB9, 0xBA, 0xBB, 0xBC, 0xBD,  'o', 0xBE, //E ЖКИ коды этих символов
   
  //F р     с     т     у     ф     х     ц     ч     ш     щ     ъ     ы     ь     э     ю     я   //  ASCII символы
     'p',  'c', 0xBF,  'y', 0xE4,  'x', 0xE5, 0xC0, 0xC1, 0xE6, 0xC2, 0xC3, 0xC4, 0xC5, 0xC6, 0xC7  //F ЖКИ коды этих символов
  };
Вызов
unsigned char WinToLCDhd44780(unsigned char var)
{   
    if (0xA0<var) {var= tableWinToLCDhd44780[(var-0xA0)];}
    
    return var;
}
Генерал готовит хранилище для кода, такие примочки можно будет туда помещать. С PICLIST сравнить тяжело но потихоньку хранилище начнет всем приносить пользу, мне так кажется.
DL36 вне форума   Ответить с цитированием
Старый 28.08.2007, 17:31   #10
K&T
Member
 
Регистрация: 26.02.2007
Сообщений: 33
Вес репутации: 102/51
K&T will become famous soon enoughK&T will become famous soon enough
По умолчанию Re: Надо вводить много русского текста для символьного LCD.

Я решал эту проблему написав небольшую программку которая текстовый файл на русском конвертировала в два Си-шный массива. В первом массиве хранились указатели на начало фразы, во втором сами фразы. Разделителями фраз являлся символ перевода строки.
K&T вне форума   Ответить с цитированием
Старый 28.08.2007, 19:06   #11
DL36
Senior Member
 
Регистрация: 25.02.2007
Адрес: Херсон
Сообщений: 3,642
Вес репутации: 1983/105
DL36 has a brilliant futureDL36 has a brilliant futureDL36 has a brilliant futureDL36 has a brilliant futureDL36 has a brilliant futureDL36 has a brilliant futureDL36 has a brilliant futureDL36 has a brilliant futureDL36 has a brilliant futureDL36 has a brilliant futureDL36 has a brilliant future
По умолчанию Re: Надо вводить много русского текста для символьного LCD.

Цитата:
Сообщение от K&T Посмотреть сообщение
Я решал эту проблему написав небольшую программку которая текстовый файл на русском конвертировала в два Си-шный массива. В первом массиве хранились указатели на начало фразы, во втором сами фразы. Разделителями фраз являлся символ перевода строки.
Я тоже думал об этом, даже начал писать саму программу.

Но перекодировка в самой программе гораздо лучше, гораздо нагляднее.
DL36 вне форума   Ответить с цитированием
Старый 28.08.2007, 19:33   #12
IceS
Super Moderator
 
Регистрация: 01.03.2007
Адрес: St. Petersburg
Возраст: 41
Сообщений: 3,246
Вес репутации: 3684/118
IceS has a reputation beyond reputeIceS has a reputation beyond reputeIceS has a reputation beyond reputeIceS has a reputation beyond reputeIceS has a reputation beyond reputeIceS has a reputation beyond reputeIceS has a reputation beyond reputeIceS has a reputation beyond reputeIceS has a reputation beyond reputeIceS has a reputation beyond reputeIceS has a reputation beyond repute
Отправить сообщение для IceS с помощью ICQ
По умолчанию Re: Надо вводить много русского текста для символьного LCD.

Цитата:
Сообщение от K&T Посмотреть сообщение
Я решал эту проблему написав небольшую программку которая текстовый файл на русском конвертировала в два Си-шный массива.
Если есть свободное место в контроллере, то лучше в нем делать перекодировку. А так попробуй через год в исходнике найди где хранится какая строка. Да и запарно внешнюю програмку каждый раз запускать для конвертирования. А забыть про это очень просто, потом можно долго гадать почему в меню пункт не поменялся.
IceS вне форума   Ответить с цитированием
Старый 29.08.2007, 09:10   #13
-=John=-
Member
 
Регистрация: 26.02.2007
Сообщений: 54
Вес репутации: 100/51
-=John=- will become famous soon enough-=John=- will become famous soon enough
По умолчанию Еще вариант

Код:
 

//--------------------------------
// Таблицы символов
// Win
const unsigned char WinTable [] = 
  {
    'А', 'Б', 'В', 'Г', 'Д', 'Е', 'Ё', 'Ж', 'З', 'И', 
    'Й', 'К', 'Л', 'М', 'Н', 'О', 'П', 'Р', 'С', 'Т', 
    'У', 'Ф', 'Х', 'Ц', 'Ч', 'Ш', 'Щ', 'Ь', 'Ы', 'Ъ', 
    'Э', 'Ю', 'Я',
    'а', 'б', 'в', 'г', 'д', 'е', 'ё', 'ж', 'з', 'и', 
    'й', 'к', 'л', 'м', 'н', 'о', 'п', 'р', 'с', 'т', 
    'у', 'ф', 'х', 'ц', 'ч', 'ш', 'щ', 'ь', 'ы', 'ъ', 
    'э', 'ю', 'я', 
  };
// Дисплей
const unsigned char DispTable [] = 
  {
    0x41, 0xA0, 0x42, 0xA1, 0xE0, 0x45, 0xA2, 0xA3, 0xA4, 0xA5,
    0xA6, 0x4B, 0xA7, 0x4D, 0x48, 0x4F, 0xA8, 0x50, 0x43, 0x54,
    0xA9, 0xAA, 0x58, 0xE1, 0xAB, 0xAC, 0xE2, 0x62, 0xAE, 0xAD,
    0xAF, 0xB0, 0xB1,
    0x61, 0xB2, 0xB3, 0xB4, 0xE3, 0x65, 0xB5, 0xB6, 0xB7, 0xB8,
    0xB9, 0xBA, 0xBB, 0xBC, 0xBD, 0x6F, 0xBE, 0x70, 0x63, 0xBF,
    0x79, 0xE4, 0x78, 0xE5, 0xC0, 0xC1, 0xE6, 0xC4, 0xC3, 0xC2,
    0xC5, 0xC6, 0xC7,
  };
//--------------------------------
// Перекодировка символа
unsigned char WinToDisp ( unsigned char c )
{
  unsigned char i;
  for ( i = 0; i < sizeof ( WinTable ); i++ ) if ( c == WinTable [ i ] ) return ( DispTable [ i ] );
  return ( c );
} // WinToDisp
-=John=- вне форума   Ответить с цитированием
Старый 29.08.2007, 13:11   #14
DL36
Senior Member
 
Регистрация: 25.02.2007
Адрес: Херсон
Сообщений: 3,642
Вес репутации: 1983/105
DL36 has a brilliant futureDL36 has a brilliant futureDL36 has a brilliant futureDL36 has a brilliant futureDL36 has a brilliant futureDL36 has a brilliant futureDL36 has a brilliant futureDL36 has a brilliant futureDL36 has a brilliant futureDL36 has a brilliant futureDL36 has a brilliant future
По умолчанию Re: Еще вариант

Цитата:
Сообщение от -=John=- Посмотреть сообщение
Код:
 

//--------------------------------
// Таблицы символов
// Win
const unsigned char WinTable [] = 
  {

  };
// Дисплей
const unsigned char DispTable [] = 
  {
  
  };
//--------------------------------
// Перекодировка символа
unsigned char WinToDisp ( unsigned char c )
{
  unsigned char i;
  for ( i = 0; i < sizeof ( WinTable ); i++ ) if ( c == WinTable [ i ] ) return ( DispTable [ i ] );
  return ( c );
} // WinToDisp
Как по мне цикл все таки роскошь
DL36 вне форума   Ответить с цитированием
Старый 29.08.2007, 13:29   #15
K&T
Member
 
Регистрация: 26.02.2007
Сообщений: 33
Вес репутации: 102/51
K&T will become famous soon enoughK&T will become famous soon enough
По умолчанию Re: Надо вводить много русского текста для символьного LCD.

Цитата:
Сообщение от IceS Посмотреть сообщение
Если есть свободное место в контроллере, то лучше в нем делать перекодировку. А так попробуй через год в исходнике найди где хранится какая строка. Да и запарно внешнюю програмку каждый раз запускать для конвертирования. А забыть про это очень просто, потом можно долго гадать почему в меню пункт не поменялся.
Проблема еще в том что компилятор от ХайТека напрочь отказался принимать русские буквы в тексте программы. Ума не приложу как с этим бороться.
K&T вне форума   Ответить с цитированием
Старый 29.08.2007, 14:36   #16
DL36
Senior Member
 
Регистрация: 25.02.2007
Адрес: Херсон
Сообщений: 3,642
Вес репутации: 1983/105
DL36 has a brilliant futureDL36 has a brilliant futureDL36 has a brilliant futureDL36 has a brilliant futureDL36 has a brilliant futureDL36 has a brilliant futureDL36 has a brilliant futureDL36 has a brilliant futureDL36 has a brilliant futureDL36 has a brilliant futureDL36 has a brilliant future
По умолчанию Re: Надо вводить много русского текста для символьного LCD.

Цитата:
Сообщение от K&T Посмотреть сообщение
Проблема еще в том что компилятор от ХайТека напрочь отказался принимать русские буквы в тексте программы. Ума не приложу как с этим бороться.
В смысле метки, имена? Это побороть невозможно, стандарт языка.

А текст ввести можно так
Код:
const unsighed char *text;

text = "Проба";         //В программе будет сформирована строка с финальным нулем

// Передавайте  указатель в куда надо, первый 0 в последовательности выход
DL36 вне форума   Ответить с цитированием
Старый 29.08.2007, 16:11   #17
-=John=-
Member
 
Регистрация: 26.02.2007
Сообщений: 54
Вес репутации: 100/51
-=John=- will become famous soon enough-=John=- will become famous soon enough
По умолчанию Re: Надо вводить много русского текста для символьного LCD.

>Как по мне цикл все таки роскошь

Ну, эта байда все-же несколько меньше по объему, чем таблица из 256 байт, что бывает важно для экономии места.
-=John=- вне форума   Ответить с цитированием
Старый 29.08.2007, 16:14   #18
K&T
Member
 
Регистрация: 26.02.2007
Сообщений: 33
Вес репутации: 102/51
K&T will become famous soon enoughK&T will become famous soon enough
По умолчанию Re: Надо вводить много русского текста для символьного LCD.

Цитата:
Сообщение от DL36 Посмотреть сообщение
В смысле метки, имена? Это побороть невозможно, стандарт языка.

А текст ввести можно так
Код:
const unsighed char *text;

text = "Проба";         //В программе будет сформирована строка с финальным нулем

// Передавайте  указатель в куда надо, первый 0 в последовательности выход
Спасибо, только что попробовал - теперь компилятор от Хайтека не ругается. А в предыдущих версиях (старее 2002 года) на любые попытки вставить в кавычки русский текст компилятор жутко матерился. Теперь то видать подправили, а я грешным делом думал что до сих пор такая фигня.
K&T вне форума   Ответить с цитированием
Старый 29.08.2007, 17:15   #19
IceS
Super Moderator
 
Регистрация: 01.03.2007
Адрес: St. Petersburg
Возраст: 41
Сообщений: 3,246
Вес репутации: 3684/118
IceS has a reputation beyond reputeIceS has a reputation beyond reputeIceS has a reputation beyond reputeIceS has a reputation beyond reputeIceS has a reputation beyond reputeIceS has a reputation beyond reputeIceS has a reputation beyond reputeIceS has a reputation beyond reputeIceS has a reputation beyond reputeIceS has a reputation beyond reputeIceS has a reputation beyond repute
Отправить сообщение для IceS с помощью ICQ
По умолчанию Re: Надо вводить много русского текста для символьного LCD.

Цитата:
Сообщение от -=John=- Посмотреть сообщение
>Как по мне цикл все таки роскошь

Ну, эта байда все-же несколько меньше по объему, чем таблица из 256 байт, что бывает важно для экономии места.
чем 256 да, меньше. Но она сама занимает 126 байт (а это больше половины моего примера), да еще и кучу времени уходит на поиск символа для перекодировки! Пример DL36 намного лучше вашего, и символы перекодирует и тормозов при этом не будет, и места меньше занимает.
Если не хватает места (идет борьба за 200 байт флеша), то значит не правильно выбран контроллер!
IceS вне форума   Ответить с цитированием
Старый 29.08.2007, 22:25   #20
-=John=-
Member
 
Регистрация: 26.02.2007
Сообщений: 54
Вес репутации: 100/51
-=John=- will become famous soon enough-=John=- will become famous soon enough
По умолчанию Re: Надо вводить много русского текста для символьного LCD.

Цитата:
Сообщение от IceS Посмотреть сообщение
чем 256 да, меньше. Но она сама занимает 126 байт (а это больше половины моего примера), да еще и кучу времени уходит на поиск символа для перекодировки! Пример DL36 намного лучше вашего, и символы перекодирует и тормозов при этом не будет, и места меньше занимает.
Если не хватает места (идет борьба за 200 байт флеша), то значит не правильно выбран контроллер!
Я ни с кем не спорю, просто привел еще один вариант решения задачи.
Бывает, что и не хватает, приходится уминать. Правда, редко. А выбрать другой контроллер не всегда возможно (например, по ценовым соображениям).
Предлагаю спор не начинать - все это уже много раз обсуждалось. Все равно каждый остается при своем мнении.
-=John=- вне форума   Ответить с цитированием
Старый 30.08.2007, 08:30   #21
DL36
Senior Member
 
Регистрация: 25.02.2007
Адрес: Херсон
Сообщений: 3,642
Вес репутации: 1983/105
DL36 has a brilliant futureDL36 has a brilliant futureDL36 has a brilliant futureDL36 has a brilliant futureDL36 has a brilliant futureDL36 has a brilliant futureDL36 has a brilliant futureDL36 has a brilliant futureDL36 has a brilliant futureDL36 has a brilliant futureDL36 has a brilliant future
По умолчанию Re: Надо вводить много русского текста для символьного LCD.

Цитата:
Сообщение от K&T Посмотреть сообщение
Спасибо, только что попробовал - теперь компилятор от Хайтека не ругается. А в предыдущих версиях (старее 2002 года) на любые попытки вставить в кавычки русский текст компилятор жутко матерился. Теперь то видать подправили, а я грешным делом думал что до сих пор такая фигня.
Я периодически использую picc18 8.35 проблем нет.
DL36 вне форума   Ответить с цитированием
Старый 05.09.2007, 12:06   #22
ut1wpr
Junior Member
 
Регистрация: 05.09.2007
Сообщений: 13
Вес репутации: 100/49
ut1wpr will become famous soon enoughut1wpr will become famous soon enough
По умолчанию Re: Надо вводить много русского текста для символьного LCD.

http://www.atmel.ru/Software/Software.htm
HD-44780.EXE
Перекодировщик Win-текста сообщений для ЖКИ-контроллера HD44780
Позволяет решить трудности с несоответствием кодов русских букв, зашитых в контроллер HD44780 с ANSI-кодировкой Windows и одновременно избавиться от программного перекодирования "на лету", мгновенно создав Си-код на основе набранного текста.

Возможности:
1. Создание гибкого Си-кода сообщений на основе набранного текста
2. Автоматическое присваивание уникального имени каждой строке сообщения
3. Позиционирование набранного текста на эмуляторе дисплея 4х16 строк

В комплекте поставки:
1. Работающий пример программы создания меню для установки параметров на двухстрочном индикаторе
2. В комплет также входит удобная утилита для перевода между форматами Bin,Hex,Dec

Перед стартом программы HD44780.exe для дальнейшего удобства ее использования сопоставьте тип файлов *.lcd с самой программой
Размер: 920 KB.
ut1wpr вне форума   Ответить с цитированием
Старый 05.09.2007, 12:46   #23
IceS
Super Moderator
 
Регистрация: 01.03.2007
Адрес: St. Petersburg
Возраст: 41
Сообщений: 3,246
Вес репутации: 3684/118
IceS has a reputation beyond reputeIceS has a reputation beyond reputeIceS has a reputation beyond reputeIceS has a reputation beyond reputeIceS has a reputation beyond reputeIceS has a reputation beyond reputeIceS has a reputation beyond reputeIceS has a reputation beyond reputeIceS has a reputation beyond reputeIceS has a reputation beyond reputeIceS has a reputation beyond repute
Отправить сообщение для IceS с помощью ICQ
Lightbulb Re: Надо вводить много русского текста для символьного LCD.

Цитата:
Сообщение от ut1wpr Посмотреть сообщение
Перекодировщик Win-текста сообщений для ЖКИ-контроллера HD44780
Я уже писал на эту тему:
http://www.microchip.su/showpost.php...2&postcount=12
IceS вне форума   Ответить с цитированием
Старый 05.09.2007, 16:28   #24
ut1wpr
Junior Member
 
Регистрация: 05.09.2007
Сообщений: 13
Вес репутации: 100/49
ut1wpr will become famous soon enoughut1wpr will become famous soon enough
По умолчанию Re: Надо вводить много русского текста для символьного LCD.

Мне казалось, что если не конвертировать на лету, не применять объемные таблицы, то это гораздо лучше. Оказывается нет. Убедительно звучит: "если есть свободное место..".
Генератор кода, помимо кода генерирует в удобочитаемом формате в виде комментария как саму конвертированную строку, так и дату и время ее генерации. Думаю, на комментах не стоит экономить, не будет проблемы вспомнить через много лет, заглянув в исходники. Это не серъезный аргумент. Впрочем, стиль написания у каждого свой..
Я ж не навязываю применять это и только это. Мое дело было предложить..
ut1wpr вне форума   Ответить с цитированием
Старый 05.09.2007, 16:39   #25
IceS
Super Moderator
 
Регистрация: 01.03.2007
Адрес: St. Petersburg
Возраст: 41
Сообщений: 3,246
Вес репутации: 3684/118
IceS has a reputation beyond reputeIceS has a reputation beyond reputeIceS has a reputation beyond reputeIceS has a reputation beyond reputeIceS has a reputation beyond reputeIceS has a reputation beyond reputeIceS has a reputation beyond reputeIceS has a reputation beyond reputeIceS has a reputation beyond reputeIceS has a reputation beyond reputeIceS has a reputation beyond repute
Отправить сообщение для IceS с помощью ICQ
По умолчанию Re: Надо вводить много русского текста для символьного LCD.

Цитата:
Сообщение от ut1wpr Посмотреть сообщение
Мне казалось, что если не конвертировать на лету, не применять объемные таблицы, то это гораздо лучше.
На счет "гораздо лучше" не согласен. Во время создания/отладки проекта может быть очень геморно изменять строки, запускать внешнюю прогу, потом только компилировать проект.

На счет стиля - согласен.
IceS вне форума   Ответить с цитированием
Ответ

Метки
lcd, rus, русские символы


Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 
Опции темы
Опции просмотра

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

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

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


Часовой пояс GMT +3, время: 07:32.


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