Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей... |
31.12.2007, 01:08
|
|
Прохожий
Регистрация: 15.04.2005
Сообщений: 7
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
На абсолютность не претендую, но у меня это работает... и в протеусе, и на железяке.
|
|
|
|
10.10.2008, 23:27
|
|
Частый гость
Регистрация: 15.08.2006
Сообщений: 23
Сказал спасибо: 2
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Ну а у кого есть???
У кого есть эта самая программа lcd20.exe ????
Почему вопрос о выводе русского текста на LCD оставили нерешенным? Не пойму...
Программку, если можно, перевыложите куда-нибудь, буду очень благодарен.
|
|
|
|
11.10.2008, 02:04
|
|
Супер-модератор
Регистрация: 03.05.2007
Сообщений: 2,695
Сказал спасибо: 28
Сказали Спасибо 4,509 раз(а) в 956 сообщении(ях)
|
Потому что в соответствии с темой ветки вот этот вариант от mrKirill со второй страницы
Код:
|
#pragma rl+
lcd_putsf ("Русский текст");
#pragma rl- |
до версии 1.25.9 включительно работал железно (см. картинку)
и только во вторых версиях CAVR был похоронен П.Гайдуком, резко невлюбившим русских хакеров.
Да и LCD20 до недавнего времени жила по ссылке. Вот нашел ее в своей помойке, приложил.
-- Прилагается рисунок: --
Прикрепленный файл: 4338791.rar
|
|
|
Сказали "Спасибо" Halex07
|
|
|
11.10.2008, 12:52
|
|
Частый гость
Регистрация: 15.08.2006
Сообщений: 23
Сказал спасибо: 2
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Цитата:
|
Потому что в соответствии с темой ветки вот этот вариант от mrKirill со второй страницы
Код:
|
#pragma rl+
lcd_putsf ("Русский текст");
#pragma rl- |
до версии 1.25.9 включительно работал железно (см. картинку)
|
Спасибо за программку. Большое спасибо.
А на счет прагмы - у меня не получилось. Версия 1.25.5 строчку прагмы помечает ошибкой. А все дело в том, что на другом форуме написали неправильную прагму, а именно:
Код:
|
ВНИМАНИЕ! НЕПРАВИЛЬНЫЙ КОД!
#pragma ruslcd+
lcd_putsf ("Русский текст");
#pragma ruslcd- |
Конечно, она не работала...
Сейчас переделал, и все стало на свои места.
Еще раз спасибо.
Еще хотел вот что спросить, что такое #pragma ? Может быть ее можно перетащить в более поздние версии CVAVR?
-- Прилагается рисунок: --
Прикрепленный файл: 4338791.rar
|
|
|
|
11.10.2008, 20:12
|
|
Супер-модератор
Регистрация: 03.05.2007
Сообщений: 2,695
Сказал спасибо: 28
Сказали Спасибо 4,509 раз(а) в 956 сообщении(ях)
|
Сообщение от Solncevorot
|
Еще хотел вот что спросить, что такое #pragma ? Может быть ее можно перетащить в более поздние версии CVAVR?
|
Дословный перевод самим машинным переводчиком Pragma (есть такой компании Трайдент) - псевдокоментарий.
Это директива препроцессора, которая реализует возможности компилятора.Разные версии компиляторов могут иметь различные прапмы. Список доступных обычно в Helpe.
Открываем раздел хелпа The Preprocessor и любуемся на них с примерами применения. Но иногда разработчики ПО лукавят и оставляют кое-что для "домашнего" применения. Та же #pragma rl в хелпе 1.25.х не описана, но работает. Кстати Гайдук не один CAVR слепил, там и "наши" люди помогали. Возможно поэтому она там и была до поры - до времени. А перетащить самому ... это не библиотека, она встроена в компилятор, т.е. в исполняемый файл. Надо ждать пока легальные пользователи кириллического шрифта допекут разработчика и он добавит ее в новую версию.
|
|
|
|
12.10.2008, 01:04
|
|
Частый гость
Регистрация: 15.08.2006
Сообщений: 23
Сказал спасибо: 2
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Halex07
Кстати, да, в help`е я нашу прагму не нашел, то-то было удивление.
Видел в инете еще один совет как сделать отображение русских текстов на жки возможным, но он, как оказалось, был ложным. Советовали подправить библиотеку lcd.lib , а конкретно, заменить строку
_lcd_write_data(0x2 ;
на:
_lcd_write_data(0x2A);
Это оказалась чушь. Во всяком случае, у меня на CVAVR не сработало, да и выглядит совет, мягко говоря, неубедительно.
А в чем же прелесть этой самой прагмы? Почему бы не сделать простой #include?
Или прагма - это попытка защитить некоторое хитрое решение задачи от копирования сторонними разработчиками?
Еще есть вопросик.
Если возникнет надобность использовать, все-таки, новую версию CVAVR, как можно реализовать там вывод русских слов на жки?
Вывод отдельных символов - это понятно.
Код:
|
flash char Decode2Rus[255-192+1]= {
0x41,0xA0,0x42,0xA1,0xE0,0x45,0xA3,0xA4,
0xA5,0xA6,0x4B,0xA7,0x4D,0x48,0x4F,0xA8,
0x50,0x43,0x54,0xA9,0xAA,0x58,0xE1,0xAB,
0xAC,0xE2,0xAD,0xAE,0xAD,0xAF,0xB0,0xB1,
0x61,0xB2,0xB3,0xB4,0xE3,0x65,0xB6,0xB7,
0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0x6F,0xBE,
0x70,0x63,0xBF,0x79,0xE4,0x78,0xE5,0xC0,
0xC1,0xE6,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7 };
#define _ALTERNATE_PUTCHAR_
void putchar(char c)
{
if(c›=192)
lcd_putchar(Decode2Rus[c-192]);
else lcd_putchar(c);
}
// а в программе так:
putchar('Ж'); |
А как на счет целых слов?
И вообще, в каком типе переменных можно хранить целое слово? Это что-то типа массива должно быть?
|
|
|
|
12.10.2008, 12:25
|
|
Почётный гражданин KAZUS.RU
Регистрация: 13.05.2006
Адрес: Москва
Сообщений: 3,559
Сказал спасибо: 76
Сказали Спасибо 326 раз(а) в 230 сообщении(ях)
|
Сообщение от Solncevorot
|
в каком типе переменных можно хранить целое слово? Это что-то типа массива должно быть?
|
Строковые переменный - http://avr123.nm.ru/05a.htm
__________________
Обучалка AVR PIC ARM начинающим программирование курс самоучитель шаг за шагом с нуля, CVAVR, PROTEUS, MPLAB, WinAVR, IAR, KEIL электроника - http://proavr.narod.ru
|
|
|
|
12.10.2008, 12:33
|
|
Частый гость
Регистрация: 15.08.2006
Сообщений: 23
Сказал спасибо: 2
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Сообщение от avr123-nm-ru
|
Сообщение от Solncevorot
|
в каком типе переменных можно хранить целое слово? Это что-то типа массива должно быть?
|
Строковые переменный - http://avr123.nm.ru/05a.htm
|
Спасибо. А если содержание строковой переменной заранее неизвестно, то в квадратных скобках не ставится количество элементов, так?
А если я хочу вывести на LCD содержание строковой переменной, то как мне не вывести ноль, который, как у вас на сайте написано, дописывается в конце каждой строки?
|
|
|
|
12.10.2008, 15:07
|
|
Почётный гражданин KAZUS.RU
Регистрация: 06.02.2007
Сообщений: 1,340
Сказал спасибо: 3
Сказали Спасибо 106 раз(а) в 66 сообщении(ях)
|
Код:
|
unsigned char array[]={'1','2',0};
unsigned x=0;
do{
out=array[x];
x++;
}(while (!array[x]); |
Аль через указатели
Код:
|
void out_str(unsigned char *str)
{
do{
out=*str;
str++;
}(while (!*str); |
|
|
|
|
12.10.2008, 15:18
|
|
Частый гость
Регистрация: 15.08.2006
Сообщений: 23
Сказал спасибо: 2
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
urry
Ну хорошо, а если в конце слова должен быть ноль, например, petya0, то как тогда?
А можно каким-то образом из переменного массива узнать кол-во его элементов?
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Тема |
Автор |
Раздел |
Ответов |
Последнее сообщение |
CodeVisionAVR, LCD + русские буквы
|
jogick |
Микроконтроллеры, АЦП, память и т.д |
8 |
05.07.2009 12:47 |
как вывести буквы на дисплей
|
andron-kip |
Микроконтроллеры, АЦП, память и т.д |
4 |
27.10.2008 00:28 |
подскажите как вывести значение ацп на индикатор
|
ctefan |
Микроконтроллеры, АЦП, память и т.д |
13 |
06.04.2007 10:59 |
как вывести на LCD данные из буфера?
|
goooblin |
Микроконтроллеры, АЦП, память и т.д |
11 |
02.04.2007 10:01 |
Как вывести из ступора DS1307?
|
Muzicant |
Микроконтроллеры, АЦП, память и т.д |
4 |
09.10.2006 19:28 |
Часовой пояс GMT +4, время: 18:53.
|
|