| Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей... |
Графический LCD (glcd)
05.08.2010, 19:37
|
|
|
Прописка
Регистрация: 28.09.2006
Сообщений: 144
Сказал спасибо: 11
Сказали Спасибо 95 раз(а) в 51 сообщении(ях)
|
Re: Графический LCD (glcd)
Сообщение от st_1
|
Это не бред, это Протэз!
На время отладки эту функцию можно заменить простой задержкой
|
Это не протез , а я туплю !
|
PHP код:
|
//-------------------------------------------------------------------------------------------------
//
//-------------------------------------------------------------------------------------------------
void GLCD_WaitForStatus(unsigned char status, unsigned char controller)
{
char tmp=0;
SED1520_CONTROL_PORT &= ~SED1520_A0;
SED1520_CONTROL_PORT |= SED1520_RW;
SED1520_DATA_DDR = 0x00;
do
{
_delay_us(4);
if(!controller)
{
SED1520_CONTROL_PORT |= SED1520_E1;
SED1520_CONTROL_PORT &= ~SED1520_E2;
_delay_us(4);
tmp = SED1520_DATA_PIN;
}
else
{
SED1520_CONTROL_PORT |= SED1520_E2;
SED1520_CONTROL_PORT &= ~SED1520_E1;
_delay_us(4);
tmp = SED1520_DATA_PIN;
}
_delay_us(4);
SED1520_CONTROL_PORT &= ~SED1520_E1;
SED1520_CONTROL_PORT &= ~SED1520_E2;
_delay_us(4);
}
while(tmp & status);
SED1520_DATA_DDR = 0xFF;
}
|
Вот так правильно!!! Бываетс.
Во вложении библа jobfly пробуйте
|
|
|
|
Сказали "Спасибо" harchenko_pavel
|
|
|
05.08.2010, 21:17
|
|
|
Заблокирован
Регистрация: 26.12.2009
Сообщений: 3,102
Сказал спасибо: 113
Сказали Спасибо 860 раз(а) в 610 сообщении(ях)
|
Re: Графический LCD (glcd)
Сообщение от jobfly
|
|
Почему в DS Column address (адрес столбца) указано 0-79. Но столбцов то ведь 122(дисплей WG12232 или AGM1232) . Или я ошибаюсь.
|
Как всегда. 
Но чипа то два, один чип часть столбцов, другой - другая часть столбцов.
Последний раз редактировалось st_1; 05.08.2010 в 21:27.
|
|
|
|
05.08.2010, 21:20
|
|
|
Заблокирован
Регистрация: 26.12.2009
Сообщений: 3,102
Сказал спасибо: 113
Сказали Спасибо 860 раз(а) в 610 сообщении(ях)
|
Re: Графический LCD (glcd)
|
|
|
|
05.08.2010, 21:28
|
|
|
Частый гость
Регистрация: 27.07.2010
Сообщений: 24
Сказал спасибо: 8
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Re: Графический LCD (glcd)
Сообщение от st_1
|
Почему в DS Column address (адрес столбца) указано 0-79. Но столбцов то ведь 122(дисплей WG12232 или AGM1232) . Или я ошибаюсь.
Как всегда.
Но чипа то два, один чип часть столбцов, другой - другую часть столбцов.
|
Но ведь 122/2=61 а не 80
и почему ноль
void GLCD_SetPixel(unsigned char x, unsigned char y, unsigned char color)
{
uint8_t mask=0x00;
GLCD_GoTo(x, 0);
mask=GLCD_ReadData();
if (color) GLCD_WriteData( mask | (1‹‹(y&0x0  ));
else GLCD_WriteData(mask & ~(1‹‹(y&0x0  ));
}
на другую страницу уже не перейти, только на первую
|
|
|
|
05.08.2010, 21:33
|
|
|
Прописка
Регистрация: 28.09.2006
Сообщений: 144
Сказал спасибо: 11
Сказали Спасибо 95 раз(а) в 51 сообщении(ях)
|
Re: Графический LCD (glcd)
Сообщение от jobfly
|
|
GLCD_GoTo(x,0);
|
Это ошибка проверял GLCD_Goto, а не вернул надо
|
PHP код:
|
GLCD_GoTo(x,y/8)
|
|
|
|
|
Сказали "Спасибо" harchenko_pavel
|
|
|
05.08.2010, 22:04
|
|
|
Заблокирован
Регистрация: 26.12.2009
Сообщений: 3,102
Сказал спасибо: 113
Сказали Спасибо 860 раз(а) в 610 сообщении(ях)
|
Re: Графический LCD (glcd)
Сообщение от jobfly
|
|
Но ведь 122/2=61 а не 80
|
Адреса с 62 по 80 в данном индикаторе не используются.
|
|
|
|
05.08.2010, 22:31
|
|
|
Частый гость
Регистрация: 27.07.2010
Сообщений: 24
Сказал спасибо: 8
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Re: Графический LCD (glcd)
ясно
А для чего обнулять координати по x
|
Код:
|
if(x ‹ (SCREEN_WIDTH/2))
GLCD_WriteCommand(PAGE_ADDRESS_SET | lcd_y, 1);
GLCD_WriteCommand(COLUMN_ADDRESS_SET | 0, 1);
GLCD_WriteCommand(PAGE_ADDRESS_SET | lcd_y, 0);
GLCD_WriteCommand(COLUMN_ADDRESS_SET | lcd_x, 0);
}
else
{
GLCD_WriteCommand(PAGE_ADDRESS_SET | lcd_y+1, 0);
GLCD_WriteCommand(COLUMN_ADDRESS_SET | 0, 0);
GLCD_WriteCommand(PAGE_ADDRESS_SET | lcd_y, 1);
GLCD_WriteCommand(COLUMN_ADDRESS_SET | (lcd_x - (SCREEN_WIDTH/2)), 1); |
для чего нужны подчеркнутые строки ?
|
|
|
|
09.08.2010, 14:08
|
|
|
Частый гость
Регистрация: 27.07.2010
Сообщений: 24
Сказал спасибо: 8
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Re: Графический LCD (glcd)
есть небольшая ошибка в GLCD_SetPixel
|
Код:
|
void GLCD_SetPixel(unsigned char x, unsigned char y, unsigned char color)
{
uint8_t mask=0x00;
GLCD_GoTo(x,y/8);
mask=GLCD_ReadData();
if (color) GLCD_WriteData( mask | (1‹‹(y&0x08)));
else GLCD_WriteData(mask & ~(1‹‹(y&0x08))); |
& заменить на %
но все равно точки рисуются неправильно, потому что неработает GLCD_ReadData();
Последний раз редактировалось jobfly; 09.08.2010 в 14:11.
|
|
|
|
09.08.2010, 14:14
|
|
|
Почётный гражданин KAZUS.RUN
Регистрация: 13.12.2004
Сообщений: 3,168
Сказал спасибо: 11
Сказали Спасибо 691 раз(а) в 503 сообщении(ях)
|
Re: Графический LCD (glcd)
Сообщение от jobfly
|
|
& заменить на %
|
Замените тогда 0х08 на 0х07 и оставьте &.
|
|
|
|
09.08.2010, 14:28
|
|
|
Частый гость
Регистрация: 27.07.2010
Сообщений: 24
Сказал спасибо: 8
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Re: Графический LCD (glcd)
Сообщение от kison
|
|
Замените тогда 0х08 на 0х07 и оставьте &.
|
для чего?
ето все равно ничего не изменит, а у меня работает с %, только GLCD_ReadData() неправильно работает
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
| Тема |
Автор |
Раздел |
Ответов |
Последнее сообщение |
|
мигание цифры на LCD
|
begun |
Микроконтроллеры, АЦП, память и т.д |
8 |
15.03.2010 23:28 |
|
lcd TM9867
|
Борис |
Поиск схем. Делимся схемами |
3 |
10.03.2010 23:03 |
|
Mega128 PORTF -- LCD 16x2
|
freonSZ |
Микроконтроллеры, АЦП, память и т.д |
12 |
13.02.2010 16:32 |
|
AVR и LCD
|
begun |
Микроконтроллеры, АЦП, память и т.д |
5 |
24.01.2010 01:12 |
|
Подключение LCD дисплея
|
utyfwdfkb |
Информация по радиокомпонентам |
8 |
31.10.2009 01:34 |
Часовой пояс GMT +4, время: 08:33.
|
|