реклама на сайте
подробности

 
 
> работа с LCD, помощ чайнику
Zelepuk
сообщение Jun 15 2011, 11:30
Сообщение #1


Знающий
****

Группа: Участник
Сообщений: 634
Регистрация: 27-10-10
Пользователь №: 60 464



Хочу написать функцию, чтобы можно было легко выводить данные на дисплей. Данные - 8-значаное число.

Хочется на выходе иметь что-то вроде функции:

LCDout(X);

как составляются подобные библиотеки?
Благодарен за любую помощь...

Спрашиваю потому что с простым выводом разобрался(с помощью цикла, напрмиер число просто вывести, но это неудобно и не универсально).

Но есть вопрос:
Почему когда вывожу один сегмент - всё чётко. Когда засвечиваю все сегменты на дисплее - всё мерцает, причём мерцает если смотреть прямо, если под углом - всё нормально. Почему так?

Сообщение отредактировал Zelepuk - Jun 15 2011, 11:46
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Zelepuk
сообщение Jun 17 2011, 05:43
Сообщение #2


Знающий
****

Группа: Участник
Сообщений: 634
Регистрация: 27-10-10
Пользователь №: 60 464



Да всё верно. Прблема решена.
Может у кого нибудь есть драйвер с коментариями для подобных дисплеем?
Нимогу принцип вывода числа в формате uint понять... функция должна принимать uint и ещё несколько параметров (длинна, шаг...) не могу понять как это логически связано...

например есть такая функция в примере от TI

void LCDcharsx(const lcd_cell_t *s, int pos, int len)
{
if (lcd_pos_step < 0)
pos = -pos;
if (abs(lcd_pos_step) > 1)
pos <<= 1;
pos = lcd_pos_base + pos;
for ( ; len > 0; --len)
{
LCDMEM[pos] = *s & 0xFF;
pos += (lcd_pos_step >> 1);
LCDMEM[pos] = *s >> 8;
s++;
pos += (lcd_pos_step >> 1);
}
}

не совсем понятно как работает. Может кому не жалко драгоценного времени объясните...
Заранее спасибо.

P.S. lcd_cell_t - это uint16.

Сообщение отредактировал Zelepuk - Jun 17 2011, 05:48
Go to the top of the page
 
+Quote Post
izerg
сообщение Jun 17 2011, 07:40
Сообщение #3


Знающий
****

Группа: Свой
Сообщений: 531
Регистрация: 1-02-05
Из: Украина, Киев
Пользователь №: 2 342



Не вижу в приведенном коде что такое "шаг" ?
Что-бы понять логику вывода "значения переменной" на "экран" - пройдите один раз всю математику на бумаге, без функций, компиляторов. Чисто логически пройти, по-шагово, например: "вот есть переменная, она содержит значение 15, это две цифры 1 и 5, значит на экран надо вывести два символа '1' '5', что-бы на экране был символ '1' нужно включить сегменты B и C, чтобы включить эти сегменты - нужно записать 1 в ячейку памяти связанную с этим сегментом.... ". Что-то в таком духе.

Приведенная "непонятная функция" - просто копирует готовый к выводу массив в память сегментов.

P.S. lcd_cell_t - это указатель.
P.P.S. учебник по С... любой.
Go to the top of the page
 
+Quote Post
Zelepuk
сообщение Jun 17 2011, 08:29
Сообщение #4


Знающий
****

Группа: Участник
Сообщений: 634
Регистрация: 27-10-10
Пользователь №: 60 464



Цитата(izerg @ Jun 17 2011, 11:40) *
Не вижу в приведенном коде что такое "шаг" ?
Что-бы понять логику вывода "значения переменной" на "экран" - пройдите один раз всю математику на бумаге, без функций, компиляторов. Чисто логически пройти, по-шагово, например: "вот есть переменная, она содержит значение 15, это две цифры 1 и 5, значит на экран надо вывести два символа '1' '5', что-бы на экране был символ '1' нужно включить сегменты B и C, чтобы включить эти сегменты - нужно записать 1 в ячейку памяти связанную с этим сегментом.... ". Что-то в таком духе.

Приведенная "непонятная функция" - просто копирует готовый к выводу массив в память сегментов.

P.S. lcd_cell_t - это указатель.
P.P.S. учебник по С... любой.


понятно что указатель. Просто я написал для справки что это пользовательский тип данных uint16
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Zelepuk   работа с LCD   Jun 15 2011, 11:30
- - skripach   Предлагаю написать свой putchar + шришты и использ...   Jun 15 2011, 12:36
- - izerg   Цитата(Zelepuk @ Jun 15 2011, 14:30) Хочу...   Jun 15 2011, 12:37
|- - Сергей Борщ   QUOTE (izerg @ Jun 15 2011, 15:37) 1. не ...   Jun 15 2011, 13:13
- - Zelepuk   Спасибо за ответы. У меня микроконтроллер MSP430F4...   Jun 15 2011, 13:30
- - term83   ПОМОГИТЕ. ЕСТЬ ДИСПЛЭЙ DG16080 как его запустит в ...   Jun 15 2011, 15:13
- - Сергей Борщ   QUOTE (Zelepuk @ Jun 15 2011, 16:30) У ме...   Jun 15 2011, 20:18
|- - Zelepuk   Цитата(Сергей Борщ @ Jun 16 2011, 00:18) ...   Jun 16 2011, 06:55
|- - rezident   Цитата(Zelepuk @ Jun 16 2011, 11:55) Прич...   Jun 16 2011, 08:01
- - Сергей Борщ   QUOTE (Zelepuk @ Jun 16 2011, 09:55) у ме...   Jun 16 2011, 09:27
|- - rezident   Цитата(Сергей Борщ @ Jun 16 2011, 14:27) ...   Jun 16 2011, 11:43
- - rezident   Цитата(Zelepuk @ Jun 17 2011, 10:43) Да в...   Jun 17 2011, 09:05
- - Zelepuk   Цитата(rezident @ Jun 17 2011, 13:05) Что...   Jun 17 2011, 14:27
- - rezident   Цитата(Zelepuk @ Jun 17 2011, 19:27) Проб...   Jun 17 2011, 18:24
- - Zelepuk   Цитата(rezident @ Jun 17 2011, 22:24) Т.е...   Jun 18 2011, 06:22
- - One   Цитата(rezident @ Jun 17 2011, 22:24) ......   Jun 18 2011, 07:31


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 19th July 2025 - 17:37
Рейтинг@Mail.ru


Страница сгенерированна за 0.01396 секунд с 7
ELECTRONIX ©2004-2016