Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей... |
17.01.2008, 20:24
|
|
Частый гость
Регистрация: 12.01.2008
Сообщений: 49
Сказал спасибо: 0
Сказали Спасибо 8 раз(а) в 5 сообщении(ях)
|
Цитата:
|
Видимо вам попался весьма РЕДКИЙ,РЕДКИЙ,РЕДКИЙ частный случай русского (в смысле производства) LCD, с русской ASCCI кодировкой.
|
Когда начинал заниматься с ЖКИ, то об этом не думал. Но в даташите на индикатор
http://www.melt.com.ru/files/file2085.pdf
русским по белому написано:
Цитата:
|
модуль имеет программно переключаемые две страницы встроенного знакогенератора (алфавиты: русский, украинский, белорусский, казахский и английский; см. табл. 5 и 6)
|
К тому же, в файле-примере
http://melt.com.ru/files/file2136.zip
также используются русские ASCCI символы, а как мне кажется, производителю лучше знать - что и как отображается на его индикаторах.
Так что если и стоит чему удивляться, так это прогрессу
__________________
Нет слов "не могу" - есть "не хочу"
|
|
|
|
18.01.2008, 11:06
|
|
Частый гость
Регистрация: 12.01.2008
Сообщений: 49
Сказал спасибо: 0
Сказали Спасибо 8 раз(а) в 5 сообщении(ях)
|
Помогите еще раз, пожалуйста...
Вопрос в следующем - как лучше всего (и проще) преобразовать результат АЦП (10-ти битное число) в то, что необходимо посылать на ЖКИ.
Т.е., например: есть результат АЦП - 0x0245 (ADCH+ADCL), что соответствует 250 вольт. На индикаторе необходимо отобразить число "250".
Как это сделать?
Наверняка данный вопрос неоднократно поднимался - тогда дайте пожалуйста ссылку.
__________________
Нет слов "не могу" - есть "не хочу"
|
|
|
|
18.01.2008, 11:23
|
|
Прописка
Регистрация: 21.12.2005
Сообщений: 247
Сказал спасибо: 10
Сказали Спасибо 18 раз(а) в 12 сообщении(ях)
|
itoa
|
|
|
|
18.01.2008, 11:32
|
|
Прописка
Регистрация: 21.12.2005
Сообщений: 247
Сказал спасибо: 10
Сказали Спасибо 18 раз(а) в 12 сообщении(ях)
|
или
#defune uint8 unsigned char
#defune uint16 unsigned short
#defune uint32 unsigned long
uint8* itoa(uint16/*или uint32*/ val,uint8 base)
{
static uint8 buf[32];
buf[31]=0;
if(val==0)
{
buf[30]='0';
return &buf[30];
}
int i = 30;
for(; val && i ; --i, val /= base) buf[i] = "0123456789ABCDEF"[val % base];
return &buf[i+1];
};
Использовать так:
uint16 x;
uint8 *p;
//--------
x=ADCH;
x‹‹=8;
x+=ADCL;
//---------
p=itoa(x,16);
lcd_goto(0,0);
lcd_puts(p); //в шеснадцетеричном
//---------
p=itoa(x,10);
lcd_goto(0,0);
lcd_puts(p); //в десятичном
//---------
p=itoa(x, ; //сдесь 8 превратилась в смайл!!!
lcd_goto(0,0);
lcd_puts(p); //в восьмеричном
//---------
p=itoa(x,2);
lcd_goto(0,0);
lcd_puts(p); //в двоичном
|
|
|
|
18.01.2008, 15:31
|
|
Частый гость
Регистрация: 12.01.2008
Сообщений: 49
Сказал спасибо: 0
Сказали Спасибо 8 раз(а) в 5 сообщении(ях)
|
Прошу извинить за несообразительность - попытаюсь конечно разобраться, но...
Нельзя ли словами - идею? Это чтобы я сам попробовал составить код на Си под CodeVisionAVR.
__________________
Нет слов "не могу" - есть "не хочу"
|
|
|
|
18.01.2008, 16:44
|
|
Прописка
Регистрация: 21.12.2005
Сообщений: 247
Сказал спасибо: 10
Сказали Спасибо 18 раз(а) в 12 сообщении(ях)
|
Странно Вообще вот она идея:
Цитата:
|
uint8* itoa(uint16/*или uint32*/ val,uint8 base)
{
static uint8 buf[32];
buf[31]=0;
if(val==0)
{
buf[30]='0';
return &buf[30];
}
int i = 30;
for(; val && i ; --i, val /= base) buf[i] = "0123456789ABCDEF"[val % base];
return &buf[i+1];
};
|
Просто читайте С и всё! Ну а если непонятен С, тогда никакие объяснения не помогут.
|
|
|
|
28.01.2008, 02:01
|
|
Частый гость
Регистрация: 12.01.2008
Сообщений: 49
Сказал спасибо: 0
Сказали Спасибо 8 раз(а) в 5 сообщении(ях)
|
Прошло довольно много времени после моего последнего посещения - было много работы, но...
По рекомендации людей
Цитата:
|
Просто читайте С и всё! Ну а если непонятен С, тогда никакие объяснения не помогут.
|
почухал затылок, посмотрел кое-какие темы на тему по моему вопросу и сварганил простенькую программку для работы с ЖКИ.
В проекте выполняются следующие операции:
1.Инициализируется ЖКИ (с проверкой занятости ЖКИ)
2.Используется таймер
3.Используется АЦП (в режиме непрерывного преобразования)
4.Производится преобразование результата АЦП в вид, пригодный для посылки на ЖКИ
Проверил вживую - работает.
Может кому пригодится - когда только начинал работать с контроллерами AVR, был бы только рад иметь подобный пример (уйму времени сберег-бы)
Прикрепленный файл: 9392285.rar
__________________
Нет слов "не могу" - есть "не хочу"
|
|
|
|
04.03.2009, 00:39
|
|
Частый гость
Регистрация: 12.01.2008
Сообщений: 49
Сказал спасибо: 0
Сказали Спасибо 8 раз(а) в 5 сообщении(ях)
|
Сообщение от Developer_
|
И что????? Руские ASCCI символы правильно отображаются???????
|
По прошествии года спешу себя добавить/поправить.
Руские ASCCI символы правильно отображались только на МЭЛТовском ЖКИ, т.к. в нем 2 кодовые страницы: 0 - обычная как на всех ЖКИ; 1 - кодовая страница с рускими ASCCI символами. При инициализации выбираете какую надо.
Также изменил код с проверкой занятости - как оказалось, по старому работает только с МЭЛТовском ЖКИ. Чтобы работало со всеми ЖКИ (WinStar, Oxigen, МЭЛТ и т.д.) надо делать так, как приведено в новом примере.
Прикрепленный файл: 1928125.rar
__________________
Нет слов "не могу" - есть "не хочу"
|
|
|
|
07.03.2009, 13:01
|
|
Супер-модератор
Регистрация: 12.04.2007
Адрес: Урал
Сообщений: 2,459
Сказал спасибо: 1,463
Сказали Спасибо 6,183 раз(а) в 1,468 сообщении(ях)
|
Цитата:
|
Ну, во-первых LCD в Proteus не поддерживает русскую кодировку. Если хочется русскую, то в папке MODEL замените LCDALPHA.DLL . Опять же сам LCD, не потдерживает стандартную ASCCI русскую кодировку, поэтому написал перекодировщик. Выкладываю, пользуйтесь на здоровье. (после декодирования, автоматом в буфер обмена вставляет, поэтому копировать не надо).
|
А что, эта библиотека подходит для дисплеев МЭЛТ?
|
|
|
|
08.03.2009, 00:30
|
|
Частый гость
Регистрация: 12.01.2008
Сообщений: 49
Сказал спасибо: 0
Сказали Спасибо 8 раз(а) в 5 сообщении(ях)
|
Сообщение от SwanSwan
|
А что, эта библиотека подходит для дисплеев МЭЛТ?
|
В каком смысле?
Библиотека LCDALPHA.DLL позволяет отображать расские символы (кириллицу) при моделировании в Proteus
__________________
Нет слов "не могу" - есть "не хочу"
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 01:48.
|
|