|
|
  |
Глючит LCD странно, МТ-10s1 |
|
|
|
Oct 3 2006, 13:21
|
Группа: Новичок
Сообщений: 11
Регистрация: 8-09-06
Пользователь №: 20 213

|
Для начала, рекомендуется наставить задержек при выводе - я слышал жуткие истории про индикаторы, для которых нужно было делсть задержки чуть ли не по миллисекунде.
|
|
|
|
|
Oct 3 2006, 13:56
|
Местный
  
Группа: Свой
Сообщений: 300
Регистрация: 15-03-06
Из: Москва
Пользователь №: 15 284

|
Цитата(listener @ Oct 3 2006, 16:21)  Для начала, рекомендуется наставить задержек при выводе - я слышал жуткие истории про индикаторы, для которых нужно было делсть задержки чуть ли не по миллисекунде. Да уже двойные поставил, не помогает. Правда только на инициализацию. Щас везде сделаю. Разве может один дисплей глючить изза задержек, а другой такой же нет? А после инициализации проверяется на готовность, так что должно быть ок.
|
|
|
|
|
Oct 3 2006, 14:05
|
Группа: Новичок
Сообщений: 13
Регистрация: 2-07-05
Из: Киев
Пользователь №: 6 471

|
У меня была похожая проблемка, просто увеличил все длительности добавлением обычных NOPов. и все сразу заработало как надо.
|
|
|
|
|
Oct 3 2006, 15:46
|
Местный
  
Группа: Свой
Сообщений: 300
Регистрация: 15-03-06
Из: Москва
Пользователь №: 15 284

|
Цитата(Igor_K @ Oct 3 2006, 17:49)  А служебные сигналы (RS, RW, E) к питанию подтянуты? Особенно "E" чувствителен к этому. Не подтянуты... Но предыдущий экземпляр работал без этого идеально.... Попробую 4,7 кОм
|
|
|
|
|
Oct 3 2006, 16:31
|
Местный
  
Группа: Свой
Сообщений: 300
Регистрация: 15-03-06
Из: Москва
Пользователь №: 15 284

|
Хм, еще вопрос: Как правильно инициализировать строки в С и почему это выдает ошибку: Код char *string="Просто такая строчка! ";
void sdvig(void);
void sdvig(void) { char i; for (i=0;i<(strlen(*string));i++) { DoSomething(); } }
|
|
|
|
|
Oct 3 2006, 17:11
|

фанат Linux'а
    
Группа: Свой
Сообщений: 1 353
Регистрация: 23-10-05
Из: SPB.RU
Пользователь №: 10 008

|
Цитата(ps1x @ Oct 3 2006, 20:31)  Хм, еще вопрос: Как правильно инициализировать строки в С Код char string[] = "Строка"; Цитата и почему это выдает ошибку: Какую ошибку выдает?
--------------------
|
|
|
|
|
Oct 3 2006, 17:52
|
Местный
  
Группа: Свой
Сообщений: 300
Регистрация: 15-03-06
Из: Москва
Пользователь №: 15 284

|
Цитата(AVR @ Oct 3 2006, 20:11)  Цитата(ps1x @ Oct 3 2006, 20:31)  Хм, еще вопрос: Как правильно инициализировать строки в С
Код char string[] = "Строка"; Цитата и почему это выдает ошибку: Какую ошибку выдает? 1 параметр функции не совместим с ее описанием. хотя в описании именно так и написано.
|
|
|
|
|
Oct 3 2006, 18:00
|

фанат Linux'а
    
Группа: Свой
Сообщений: 1 353
Регистрация: 23-10-05
Из: SPB.RU
Пользователь №: 10 008

|
Цитата(ps1x @ Oct 3 2006, 21:52)  1 параметр функции не совместим с ее описанием. хотя в описании именно так и написано. Выдает ошибку, т.к. параметр функции strlen - адрес первого символа строки, а так strlen(*string) передается первый символ строки. Попробуйте так: Код char String[] = "Строка"; strlen(String);
--------------------
|
|
|
|
|
Oct 4 2006, 15:11
|
Местный
  
Группа: Свой
Сообщений: 353
Регистрация: 11-09-06
Из: Минск
Пользователь №: 20 282

|
Цитата(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) работать не будет, по указанной выше причине.
|
|
|
|
|
Oct 8 2006, 13:43
|
Местный
  
Группа: Свой
Сообщений: 300
Регистрация: 15-03-06
Из: Москва
Пользователь №: 15 284

|
Цитата(smk @ Oct 5 2006, 18:58)  Кто-нибудь работал AVRlib и ее функциями с LCD? Инит и сам напишу, но морока с согласованием форматов вывода из ACDW и ткстовым представлением. Как оно все это делается, кто делал? Это не реклама, но совет - используйте МЭЛТовские дисплеи, они без труда понимают Win-1251. А библиотеку под них написать - только изменить инициализацию для 4-битного режима.
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|