Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Глючит LCD странно
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > AVR
ps1x
Глюки проявляются в следующем:
Изначально при включении первые 8 символов черные квадратики (это первая строка)
потом появляется искаженная надпись. Например вывожу "Помидоры" - получается "иоряПо" или чтото в этом духе, потом опять черная строка, ранее, с другим таким же дисплеем проблем не было, исходник тот же.
видимо проблема в железе, но подключен правильно, собрано на макетке пластмассовой...
listener
Для начала, рекомендуется наставить задержек при выводе - я слышал жуткие истории про индикаторы, для которых нужно было делсть задержки чуть ли не по миллисекунде.
ps1x
Цитата(listener @ Oct 3 2006, 16:21) *
Для начала, рекомендуется наставить задержек при выводе - я слышал жуткие истории про индикаторы, для которых нужно было делсть задержки чуть ли не по миллисекунде.

Да уже двойные поставил, не помогает. Правда только на инициализацию. Щас везде сделаю. Разве может один дисплей глючить изза задержек, а другой такой же нет?
А после инициализации проверяется на готовность, так что должно быть ок.
Kotjara
У меня была похожая проблемка, просто увеличил все длительности добавлением обычных NOPов. и все сразу заработало как надо.
Igor_K
А служебные сигналы (RS, RW, E) к питанию подтянуты? Особенно "E" чувствителен к этому.
ps1x
Цитата(Igor_K @ Oct 3 2006, 17:49) *
А служебные сигналы (RS, RW, E) к питанию подтянуты? Особенно "E" чувствителен к этому.

Не подтянуты... Но предыдущий экземпляр работал без этого идеально.... Попробую 4,7 кОм
ps1x
Вроде исправил - счистил остатки флюса с контактов и между ними smile.gif
Видимо тема закрыта. Всем спасибо a14.gif
ps1x
Хм, еще вопрос:
Как правильно инициализировать строки в С и почему это выдает ошибку:
Код
char *string="Просто такая строчка!   ";

void sdvig(void);

void sdvig(void)
{      
char i;
for (i=0;i<(strlen(*string));i++)
{
DoSomething();
}
}
AVR
Цитата(ps1x @ Oct 3 2006, 20:31) *
Хм, еще вопрос:
Как правильно инициализировать строки в С

Код
char string[] = "Строка";

Цитата
и почему это выдает ошибку:

Какую ошибку выдает?
ps1x
Цитата(AVR @ Oct 3 2006, 20:11) *
Цитата(ps1x @ Oct 3 2006, 20:31) *

Хм, еще вопрос:
Как правильно инициализировать строки в С

Код
char string[] = "Строка";

Цитата
и почему это выдает ошибку:

Какую ошибку выдает?

1 параметр функции не совместим с ее описанием.
хотя в описании именно так и написано.
AVR
Цитата(ps1x @ Oct 3 2006, 21:52) *
1 параметр функции не совместим с ее описанием.
хотя в описании именно так и написано.

Выдает ошибку, т.к. параметр функции strlen - адрес первого символа строки, а так strlen(*string) передается первый символ строки.
Попробуйте так:
Код
char String[] = "Строка";
strlen(String);
evg123
Цитата(AVR @ Oct 3 2006, 22:00) *
Цитата(ps1x @ Oct 3 2006, 21:52) *

1 параметр функции не совместим с ее описанием.
хотя в описании именно так и написано.

Выдает ошибку, т.к. параметр функции strlen - адрес первого символа строки, а так strlen(*string) передается первый символ строки.
Попробуйте так:
Код
char String[] = "Строка";
strlen(String);


Возможно надо явно объявить тип памяти, откуда идет печать. Код это или RAM. Здесь понятно код. Тогда надо убедиться, что фунция берет указатель типа код а не типа RAM. Потом, возможно происходит при инициализации перезапись из CODE в RAM (AVR это делает по умолчанию). strlen(*string) работать не будет, по указанной выше причине.
smk
Кто-нибудь работал AVRlib и ее функциями с LCD? Инит и сам напишу, но морока с согласованием форматов вывода из ACDW и ткстовым представлением. Как оно все это делается, кто делал?
ps1x
Цитата(smk @ Oct 5 2006, 18:58) *
Кто-нибудь работал AVRlib и ее функциями с LCD? Инит и сам напишу, но морока с согласованием форматов вывода из ACDW и ткстовым представлением. Как оно все это делается, кто делал?

Это не реклама, но совет - используйте МЭЛТовские дисплеи, они без труда понимают Win-1251. А библиотеку под них написать - только изменить инициализацию для 4-битного режима.
evg123
Может, пригодится.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.