|
Помогите запустить LCD под CodeVision, под Bascom работает, под CodeVision - нет |
|
|
|
Jul 22 2008, 11:41
|

Участник

Группа: Участник
Сообщений: 26
Регистрация: 22-03-08
Из: Харьков
Пользователь №: 36 149

|
Здравствуйте! Начал изучать АВРовские микроконтроллеры, одолжил готовую отладочную плату на Атмеге16. Хозяин подкинул мне некоторые из его программ, написанных на Bascom. В том числе и работающую программу для ЛСД. Начал программировать в CodeVision 1.23.6a. Воспользовался Визардом для подключения ЛСД, а также стандартными функциями вывода на экран из Хелпа, но ничего не получилось. Пришел к выводу, что программа перестает выполняться микроконтроллером начиная с места инициализации ЛСД. При этом у ЛСД (2*8) бывали следующие варианты: 1) верхняя строка полностью подсвечена, нижняя - выключена полностью 2) подсвечен первый символ верхней строки и мигает курсор. Но информация, которая должна выводиться на экран по программе - не выводится! Несколько дней пытаюсь решить, сейчас склонен думать, что проблема в CodeVision...
Кто сталкивался с подобной проблемой и знает как ее решить (обойти), просьба помочь. Спасибо!
|
|
|
|
|
 |
Ответов
|
Jul 23 2008, 08:19
|

Частый гость
 
Группа: Свой
Сообщений: 176
Регистрация: 2-04-08
Из: Днепропетровск
Пользователь №: 36 406

|
Я давненько юзаю CodeVision, но библиотеки для символьного LCD там неудобны лишь одним. Они жестко задают использование линий микроконтроллера, что бывает неудобным при разводке платы. Недавно написал для себя драйвер символьного LCD на базе HD44780. Проверял только с 4-х строчным дисплеем. То, что реализовано - работает без проблем. Только подключите библиотеки для вашего MCU, и delay.h
--------------------
Ребята, как же это вы без гравицапы пепелац выкатываете из гаража? Это непорядок. ©
|
|
|
|
|
Jul 23 2008, 08:42
|

Участник

Группа: Участник
Сообщений: 26
Регистрация: 22-03-08
Из: Харьков
Пользователь №: 36 149

|
Цитата(delamoure @ Jul 23 2008, 11:19)  Я давненько юзаю CodeVision, но библиотеки для символьного LCD там неудобны лишь одним. Они жестко задают использование линий микроконтроллера, что бывает неудобным при разводке платы... Это существенный недостаток, тот же Баском позволяет выбирать линии... Как обстоят дела с этим в ИмиджКрафте и других компиляторах? Цитата(Александр Куличок @ Jul 23 2008, 11:20)  Применяли, только неявно. Serj78 ведь писал: "вызывается каждый раз функциями верхнего уровня,(вывод, установка знакоместа, стирание, пр.)". То есть она вызывается функциями lcd_init(), lcd_clear(), lcd_gotoxy(),lcd_putsf("ххх") и др., в том числе и функцией lcd_init().
LCD - относительно медленное устройство и каждая команда (вывод одного символа, очистка экрана, смена положения курсора, ...) выполняется им довольно долго (37мкс...1,5мс, в зависимости от команды) по меркам контроллера. Поэтому контроллеру приходится ждать LCD. И сделать это можно 2-мя путями: 1. перед каждой следущей командой к LCD проверять/ждать очищения BusyFlag'а lcd-индикатора 2. контроллер между командами к LCD сам выдерживает время, необходимое для выполнения предыдущей команды индикатором.
Недостаток 1-го варианта - обязательное наличие линии R/W между LCD и контроллером (для чтения BusyFlag). Недостаток 2-го - время, которое выдерживает контроллер между командами, должно быть с некоторым запасом, так как время выполнения команд ЖКИ-индикатором может отличаться от индикатора к индикатору и зависит от температуры.
Видимо, в BascomAVR реализован 2й метод, поэтому он и работает. Спасибо за ответ. Теперь все понятно
|
|
|
|
Сообщений в этой теме
Ветал Помогите запустить LCD под CodeVision Jul 22 2008, 11:41 MrYuran Ну и...
где, собственно?
что решать-то?
тип LCD, и... Jul 22 2008, 11:52 Ветал Исходник и даташит на ЛСД прилагаю.
Исходник:
#i... Jul 22 2008, 12:16 AHTOXA Цитата(Ветал @ Jul 22 2008, 18:16) Исходн... Jul 22 2008, 19:35  Ветал Цитата(AHTOXA @ Jul 22 2008, 22:35) Я так... Jul 23 2008, 06:52 MrYuran Осталось 4 неизвестных:
lcd_init();
lcd_clear();
l... Jul 22 2008, 12:25 ALexx Цитата(MrYuran @ Jul 22 2008, 15:25) Оста... Jul 22 2008, 12:42  Ветал Библиотека проверена - работает как часы.
Смотрите... Jul 22 2008, 13:01 Ветал Пардон, функции надо описать? Хоть бы компилятор... Jul 22 2008, 12:37 GDI Если вы поменяли расположение сигналов относительн... Jul 22 2008, 13:15 MrYuran Цитата(GDI @ Jul 22 2008, 17:15)
++
Всег... Jul 22 2008, 13:23  ALexx Цитата(MrYuran @ Jul 22 2008, 16:23) ++
В... Jul 22 2008, 13:58   Ветал 2 ALexx:
Благодарю! Попробую разобраться с ваш... Jul 22 2008, 15:37  Serj78 Цитата(MrYuran @ Jul 22 2008, 17:23) Всег... Jul 23 2008, 06:59   MrYuran Цитата(Serj78 @ Jul 23 2008, 10:59) Кстат... Jul 23 2008, 07:07   Ветал Цитата(Serj78 @ Jul 23 2008, 09:59) Дык в... Jul 23 2008, 07:21    WHALE Цитата(Ветал @ Jul 23 2008, 11:21) Похоже... Jul 23 2008, 07:33 Ветал GDI:
плата не моя, потому и не режу;
эту проблему ... Jul 22 2008, 13:38 DiMomite А JTAG на порте С отключен? Jul 22 2008, 20:28 Ветал Цитата(DiMomite @ Jul 22 2008, 23:28) А J... Jul 23 2008, 07:00 Stas_R CodeVision при работе с LCD читает бит состояния и... Jul 23 2008, 07:09 GDI ЦитатаХреновая в CV библиотечная функция для работ... Jul 23 2008, 07:55 Александр Куличок ЦитатаПодфункцию lcd_ready() не применял
Применяли... Jul 23 2008, 08:20 Serj78 Цитата(Александр Куличок @ Jul 23 2008, 12... Jul 23 2008, 10:30  Ветал Цитата(Serj78 @ Jul 23 2008, 13:30) осмел... Jul 23 2008, 11:26   AHTOXA Цитата(Ветал @ Jul 23 2008, 17:26) Как ду... Jul 23 2008, 11:36    Ветал Цитата(AHTOXA @ Jul 23 2008, 14:36) А JTA... Jul 23 2008, 11:46     Stas_R Можно немного модернизировать LCD.lib. Там есть та... Jul 23 2008, 12:06      Ветал Цитата(Stas_R @ Jul 23 2008, 15:06) Можно... Jul 23 2008, 12:53       sKWO Цитата(Ветал @ Jul 23 2008, 15:53) Что на... Jul 23 2008, 18:45  Stas_R В папке \cvavr\lib\ есть файл LCD.l... Jul 23 2008, 11:30 MrYuran Да компилятору-то вобщем-то по барабану. Он всё по... Jul 23 2008, 08:49 Ветал Цитата(MrYuran @ Jul 23 2008, 11:49) Да к... Jul 23 2008, 09:21 Ветал Уважаемые друзья!
Сегодня проблема была решена... Jul 24 2008, 11:11 Metallist64 Друзья!
Помогите пожалуйста в моем смежном воп... Jul 24 2008, 18:06 AHTOXA Цитата(Metallist64 @ Jul 25 2008, 00:06) ... Jul 24 2008, 18:16 Metallist64 Забавно!
Но помогло!
Большое спасибо!
... Jul 24 2008, 18:29 AHTOXA Цитата(Metallist64 @ Jul 25 2008, 00:29) ... Jul 24 2008, 18:35 Metallist64 все конечно хорошо, а вот 0-я строка перестала обн... Jul 24 2008, 19:13 AHTOXA Цитата(Metallist64 @ Jul 25 2008, 01:13) ... Jul 24 2008, 19:36  Metallist64 Согласен!
Спасибо!
Сегодня днем только дош... Jul 25 2008, 12:45
3 чел. читают эту тему (гостей: 3, скрытых пользователей: 0)
Пользователей: 0
|
|
|