Например TDA7294

Форум РадиоКот • Просмотр темы - Прошу помощи с LCD 12232b-2Y(F)LG
Форум РадиоКот
Здесь можно немножко помяукать :)



Текущее время: Пт сен 25, 2020 17:24:08

Часовой пояс: UTC + 3 часа


ПРЯМО СЕЙЧАС:



Форум закрыт Эта тема закрыта, Вы не можете редактировать и оставлять сообщения в ней.  [ Сообщений: 10 ] 
Автор Сообщение
Не в сети
 Заголовок сообщения: Прошу помощи с LCD 12232b-2Y(F)LG
СообщениеДобавлено: Ср июл 25, 2012 20:37:00 
Открыл глаза

Зарегистрирован: Вс фев 05, 2012 13:24:11
Сообщений: 52
Рейтинг сообщения: 0
Всем доброго.
Купил (на свою голову) этот LCD и пытаюсь его оживить по нарастающей. Столкнулся с проблемой в простейшей же программе. После подачи питания дисплей весь заполнен точками, я подал ему команду нарисовать прямую с дыркой... а он все равно весь черный.
С лупой проверил все пиксели - светятся все.
Кто знает в чем беда, поможите. Код прикладываю. Проблема в том, что у него контроллер - SED1520DOA, информации маловато. Программа простейшая, на методы (процедуры) не разбивал специально. Пишу в CVAVR. микроконтроллер ATMEGA8515. За шину данных отвечает регистр С, A0=PA0 микро, E1=PA1, E2=PA2, RES=PA7
Проблема программная или аппаратная? Микроконтроллер прошивается, на небольшие изменения программы реагирует (светодиод ставил)
Код:
#include <mega8515.h>
#include <delay.h>
void main (void)
{
DDRC= 0b11111111;      // порты на вывод
DDRA= 0b11111111;      // порты на вывод
PORTC=0b00000000;      //очистка портов
PORTA=0b00000000;
delay_ms(100);         //начало инициализации. ждем.
PORTA.7=1;              //сбрасываем reset
delay_ms(10);
PORTA.0=0;        // бит команда/данные в режим "команда"
PORTA.3=0;        //бит чтения/записи в режим "запись"
PORTC=0b11100010;  //команда reset (не бит RST)
PORTC=0b11101110;   //снять флаг RMW
PORTC=0b10100100;  // режим работы обычный
PORTC=0b10101001;  // мультиплекс установить
PORTC=0b11000000;   // начальная строка - 0
PORTC=0b10100000;   // установить нормальный порядок отображения бит
PORTC=0b10101111;   // дисплей включить
PORTC=0b10111000;  //установка страницы
delay_ms(1);
PORTA.1=1;          //строб Е1
PORTA.2=1;          //строб Е2
delay_ms(1);
PORTA.1=0;           //снять стробы
PORTA.2=0;
delay_ms(1);
PORTC=0b00000011; //установка адреса колонки
delay_ms(1);
PORTA.1=1;
PORTA.2=1;
delay_ms(1);
PORTA.1=0;
PORTA.2=0;
delay_ms(1);
PORTA.3=0;
PORTA.0=1;
PORTC=0b00011001; // пишем байт, жду что черными будут только 4,5,8 пиксель, а остальные потухнут
delay_ms(1);
PORTA.1=1;
delay_ms(1);
PORTA.1=0;
delay_ms(1);
}


Заранее всем спасибо


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Прошу помощи с LCD 12232b-2Y(F)LG
СообщениеДобавлено: Чт июл 26, 2012 00:02:51 
Друг Кота
Аватар пользователя

Карма: 69
Рейтинг сообщений: 541
Зарегистрирован: Ср дек 24, 2008 09:58:58
Сообщений: 3323
Рейтинг сообщения: 0
Медали: 3
Мявтор 1-й степени (1) Мявтор 2-й степени (1) Мявтор 3-й степени (1)
Дело в том, что надо подавать стробы после каждой команды при инициализации.
Посмотрите примеры программ работы с дисплеем на сайте производителя.
http://www.melt.com.ru/shop/mt-12232b-2ylg.html


Вернуться наверх
 
JLCPCB, всего $2 за прототип печатной платы! Цвет - любой!

Отличное качество, подтвержденное более чем 600,000 пользователей! Более 10,000 заказов в день.

Зарегистрируйтесь и получите два купона по 5$ каждый:https://jlcpcb.com/quote

Не в сети
 Заголовок сообщения: Re: Прошу помощи с LCD 12232b-2Y(F)LG
СообщениеДобавлено: Чт июл 26, 2012 05:58:46 
Мучитель микросхем
Аватар пользователя

Карма: 8
Рейтинг сообщений: 28
Зарегистрирован: Вс авг 10, 2008 19:35:49
Сообщений: 411
Откуда: Евпатория
Рейтинг сообщения: 0
Всё уже придумано до нас


Вернуться наверх
 
PCBWay - всего $5 за 10 печатных плат, первый заказ для новых клиентов БЕСПЛАТЕН

Сборка печатных плат от $30 + БЕСПЛАТНАЯ доставка по всему миру + трафарет

Онлайн просмотровщик Gerber-файлов от PCBWay + Шестое юбилейное мероприятие в процессе
Не в сети
 Заголовок сообщения: Re: Прошу помощи с LCD 12232b-2Y(F)LG
СообщениеДобавлено: Чт июл 26, 2012 10:09:45 
Открыл глаза

Зарегистрирован: Вс фев 05, 2012 13:24:11
Сообщений: 52
Рейтинг сообщения: 0
Ser60, спасибо. Мой преподаватель программирования всегда говорил: "какой бы код ты не писал, он должен как-то компилироваться" Это я к примерам от melt.ru

Вроде заработало, но столкнулся с новой напастью.
С напастью я справился, но на всякий случай напишу лекарство.
Итак, если CVAVR при попытке вызвать функцию из функции ругается на вызов "undefined symbol *имя_функции*", то нужно вынести ее в начало кода декларативно. То есть, допустим, есть функция:
Код:
void LCDStrobe( void ) {
delay_ms(1);
PORTA.1=1;
PORTA.2=1;
delay_ms(1);
PORTA.1=0;
PORTA.2=0;
delay_ms(1);
}


Мы пытаемся вызвать ее так:
Код:
#include <mega8515.h>
#include <delay.h>
void main (void)
{
LCDStrobe();
...
}


Получаем ошибку "Error: ...\avr\LCD1st.c(8): undefined symbol 'LCDStrobe'"

Это значит, что начать программу нужно так:
Код:
#include <mega8515.h>
#include <delay.h>
void LCDStrobe(void);
void main (void)
{
LCDStrobe();
...
}


Для программистов, привыкших к С++ и выше это может стать открытием, т.к. перечень функций (идиотское название, перечень методов) в полномасштабных средах программирования (Visual studio) создается самой средой, и нет нужды их заявлять.


Вернуться наверх
 
Драйверы MOSFET/IGBT Infineon – силой нужно управлять!

Специалисты Infineon усовершенствовали традиционные кремниевые MOSFET и IGBT и выпустили компоненты на базе принципиально иных материалов – нитрида галлия и карбида кремния. Мы создали подборку полезных материалов, чтобы вы разобрались во всех тонкостях и стали экспертом по управлению силовыми приборами нового поколения CoolMOS, CoolGaN, CoolSiC!

Подробнее>>
Не в сети
 Заголовок сообщения: Re: Прошу помощи с LCD 12232b-2Y(F)LG
СообщениеДобавлено: Чт июл 26, 2012 19:20:42 
Открыл глаза

Зарегистрирован: Вс фев 05, 2012 13:24:11
Сообщений: 52
Рейтинг сообщения: 0
"хотел бы я в глаза взглянуть тому конструктору..." вместо эпиграфа.

Снова прошу помощи ибо близок к тому чтобы что-нибудь разбить.
пишу в ЖКИ текст, пользуюсь программой из "лаборатории". Но CVAVR ни в дугу не хочет понимать нормально типы.
Итак, вот кусок программы
Код:
void puts (flash char str[], unsigned char n, unsigned char inv)
{
 unsigned char a;
 for(a=0;(a<n);a++)
 {
 if (globAddr<=55)
 {
  putc(str[a],inv,1);
 }
 
 else
 {
 putc(str[a],inv,2);
 }
 }
}

flash char locstr[] = "radiokot";
void main (void)
{
InitLCD();
ClearLCDRAM();

puts(locstr, 11, 0);
}


Проблема, что в исходниках вместо flash char[] использовался просто char[]. и с ним срабатывала функция strlen.
У меня же strlen не работает, тип данных не тот. А она, сами понимаете, нужна, без нее приходится ручками считать сколько символов. А написать параметром char мне нельзя, ибо "взятая в кавычки строка автоматически считается строковым литералом и отправляется во flash" (цитата Лебедева)
Прошу любого решения.


Вернуться наверх
 
Снижена цена на DC/DC и AC/DC преобразователи Mornsun в Компэл!

Хорошие новости для покупателей источников питания! Компэл снизил цены на всю продукцию Mornsun. В ассортименте – как широко известные и популярные позиции, так и новинки. Доступны AC/DC, неизолированные DC/DC-преобразователи или импульсные стабилизаторы (семейство K78/R3), изолированные DC/DC, и новейшее поколение R4.

Подробнее>>
Не в сети
 Заголовок сообщения: Re: Прошу помощи с LCD 12232b-2Y(F)LG
СообщениеДобавлено: Чт июл 26, 2012 19:40:58 
Друг Кота
Аватар пользователя

Карма: 69
Рейтинг сообщений: 541
Зарегистрирован: Ср дек 24, 2008 09:58:58
Сообщений: 3323
Рейтинг сообщения: 1
Медали: 3
Мявтор 1-й степени (1) Мявтор 2-й степени (1) Мявтор 3-й степени (1)
jakob291: Я прямо сейчас уезжаю на неделю на озера, Интернет там местами будет, но на ходу мне печатать сложно. Может быть вечерами... Как я посмотрю, у Вас проблемы с С, почему-бы не прочитать сначала учебник по программированию. Иной выход - пишите на АСМе, как Вы и начинали. МЭЛТ-овские функции на АСМ перерабатываются элементарно, я так в свое время и поступил для ПИК-ов. Там в этих функциях все-равно большей частью работа с SFR или битами, так что С или АСМ - без разницы. Проблемы со strlen() - ну напишите ее тоже сами, там делов-то - один цикл, быстрее будет написать чем пост печатать. А со временем разберетесь. Удачи!


Вернуться наверх
 


Не в сети
 Заголовок сообщения: Re: Прошу помощи с LCD 12232b-2Y(F)LG
СообщениеДобавлено: Чт июл 26, 2012 21:53:18 
Открыл глаза

Зарегистрирован: Вс фев 05, 2012 13:24:11
Сообщений: 52
Рейтинг сообщения: 0
Ser60, за идею спасибо, не всегда быстро до меня доходит, что можно обойти даже штатную операцию.
с языками у меня проблем нет, я профессионально пишу на C#, попутно знаю еще четыре. Просто в CVAVR же не чистый С, а обрезанный и дополненный.
Ассемблер я, кстати, тоже немного знаю, но реализовать на нем что-то сложное невероятно сложно.

Ладно, эту процедуру я обойду своей, а пока еще вопрос:
Как правильно подключить контрастность? Я поставил на цепь VCС-GND (пины 1 и 2) настроечный резистор... потом стационарный. В общем попробовав сопротивления от 100 Ом до 40 КОм я добился изменения контраста в определенных пределах, но все равно при взгляде "в лоб" я вижу неактивные точки, зато под "тупым углом" их уже не видно.
Это я чего-то не понимаю или нужно еще больший номинал сопротивления? (кстати, я питаю его 5,8 В вместо 5, нет у меня источника на 5, но по даташиту он выдерживает 6)


Вернуться наверх
 


Не в сети
 Заголовок сообщения: Re: Прошу помощи с LCD 12232b-2Y(F)LG
СообщениеДобавлено: Пт июл 27, 2012 04:52:03 
Друг Кота
Аватар пользователя

Карма: 69
Рейтинг сообщений: 541
Зарегистрирован: Ср дек 24, 2008 09:58:58
Сообщений: 3323
Рейтинг сообщения: 0
Медали: 3
Мявтор 1-й степени (1) Мявтор 2-й степени (1) Мявтор 3-й степени (1)
Да, согласен с Вами, странный дисплей... Обычно системой команд чипа контроллера ЖКИ предусмотрена регулировка контраста, например изменением ЖКИ "bias voltage", или есть вывод регулирови контраста. В этом дисплее ничего такого нет, значит регулировка контраста там не предусмотрена вообще. При изменении напряжения питания ЖКИ в пределах 4-6в по ДШ (то, что Вы делаете с резистором) может немного меняться и контраст. Ну не знаю - лично я такие партизанские методы не приветствую, поскольку следует следить, чтобы была небольшая разница между напряжением питания ЖКИ и МК. Следует просто смириться с природой, забив на контраст, или купить другой ЖКИ. А при изменении угла зрения контраст, конечно, будет меняться тоже.


Вернуться наверх
 
Бытовой пирометр АКИП-9312 – просто удобно!

Диапазон 35 °С ...42°С (температура тела) погрешность 0,3 °С
Диапазон 0 °С ...100°С (бытовая сфера) погрешность 1,0 °С
Не в сети
 Заголовок сообщения: Re: Прошу помощи с LCD 12232b-2Y(F)LG
СообщениеДобавлено: Пт июл 27, 2012 05:19:37 
Говорящий с текстолитом
Аватар пользователя

Карма: 28
Рейтинг сообщений: 133
Зарегистрирован: Вс июн 24, 2012 16:07:00
Сообщений: 1520
Откуда: Лен.Обл.
Рейтинг сообщения: 1
Цитата:
с языками у меня проблем нет, я профессионально пишу на C#, попутно знаю еще четыре.


В таком случае, вам стоит освежить знания языков. :) Нет, серьёзно.

Цитата:
Просто в CVAVR же не чистый С, а обрезанный и дополненный.


Ну вот зачем вы это говорите? Это ладно, я только поиронизирую, а вот если тролль какой придёт? Застебут же! 8) Особенно, если читать ниже процитированное про открытие для программистов на Си++. Это одно разом перечёркивает "с языками у меня проблем нет, я профессионально пишу на C#". Не стоит так делать. Лучше сначала книжку по Си найдите, там вы все эти откровения прочтёте. 8)

Цитата:
Для программистов, привыкших к С++ и выше это может стать открытием, т.к. перечень функций (идиотское название, перечень методов) в полномасштабных средах программирования (Visual studio) создается самой средой, и нет нужды их заявлять.


Описанное вами - это, как бы, стандарт Си, вообще-то. :wink: Компилятор не в курсе, какая функция у вас есть, а какой нет, вот и просит указать прототипы. При раздельной компиляции с той же целью используются заголовочные файлы. И, к примеру, VC6, конечно же, задавать "перечень функций" за вас не будет.

Цитата:
У меня же strlen не работает, тип данных не тот.


Нет. У вас не тип данных не тот, а способ чтения данных по указателю не тот. Не умеет strlen читать из FLASH. Чтение из FLASH это не просто доступ к переменной, на это команды у МК есть специальные.

Цитата:
А она, сами понимаете, нужна, без нее приходится ручками считать сколько символов.


Скажите, а зачем вы короткую фразу пытаетесь хранить в программной памяти? Разве у вас не хватило ОЗУ?

_________________
И день и ночь в пути...
https://github.com/da-nie
https://habr.com/ru/users/da-nie/posts/


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Прошу помощи с LCD 12232b-2Y(F)LG
СообщениеДобавлено: Пт июл 27, 2012 07:30:37 
Встал на лапы
Аватар пользователя

Карма: 2
Рейтинг сообщений: 8
Зарегистрирован: Вт фев 21, 2012 20:42:26
Сообщений: 107
Откуда: Санкт-Петербург, Россия, Земля
Рейтинг сообщения: 0
jakob291 писал(а):
У меня же strlen не работает, тип данных не тот.

Используйте strlenf. В справочнике CodeVisionAVR можно найти и другие функции для памяти программ.

_________________
А из наших труб идет необычный дым. Стой! Опасная зона! Работа мозга!...


Вернуться наверх
 
Показать сообщения за:  Сортировать по:  Вернуться наверх
Форум закрыт Эта тема закрыта, Вы не можете редактировать и оставлять сообщения в ней.  [ Сообщений: 10 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 5


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
Extended by Karma MOD © 2007—2012 m157y
Extended by Topic Tags MOD © 2012 m157y