Купил (на свою голову) этот 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);
}
Заранее всем спасибо


