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

 
 
> Помогите запустить LCD под CodeVision, под Bascom работает, под CodeVision - нет
Ветал
сообщение Jul 22 2008, 11:41
Сообщение #1


Участник
*

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



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

Кто сталкивался с подобной проблемой и знает как ее решить (обойти), просьба помочь.
Спасибо!
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
delamoure
сообщение Jul 23 2008, 08:19
Сообщение #2


Частый гость
**

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



Я давненько юзаю CodeVision, но библиотеки для символьного LCD там неудобны лишь одним. Они жестко задают использование линий микроконтроллера, что бывает неудобным при разводке платы.
Недавно написал для себя драйвер символьного LCD на базе HD44780. Проверял только с 4-х строчным дисплеем. То, что реализовано - работает без проблем.
Только подключите библиотеки для вашего MCU, и delay.h
Прикрепленные файлы
Прикрепленный файл  HD44780.zip ( 2.29 килобайт ) Кол-во скачиваний: 68
 


--------------------
Ребята, как же это вы без гравицапы пепелац выкатываете из гаража? Это непорядок. ©
Go to the top of the page
 
+Quote Post
Ветал
сообщение Jul 23 2008, 08:42
Сообщение #3


Участник
*

Группа: Участник
Сообщений: 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й метод, поэтому он и работает.



Спасибо за ответ. Теперь все понятно smile.gif
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Ветал   Помогите запустить 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


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

 


RSS Текстовая версия Сейчас: 21st July 2025 - 04:25
Рейтинг@Mail.ru


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