| Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей... |
Графический LCD (glcd)
05.08.2010, 17:34
|
|
|
Прописка
Регистрация: 28.09.2006
Сообщений: 144
Сказал спасибо: 11
Сказали Спасибо 95 раз(а) в 51 сообщении(ях)
|
Re: Графический LCD (glcd)
Значит через час выложу правленую библиотеку. Там еще много недочетов было
|
|
|
|
05.08.2010, 17:46
|
|
|
Частый гость
Регистрация: 27.07.2010
Сообщений: 24
Сказал спасибо: 8
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Re: Графический LCD (glcd)
Сообщение от harchenko_pavel
|
|
Значит через час выложу правленую библиотеку. Там еще много недочетов было
|
спасибо за помощь в исправлении кода и подсказки что глюк в протеусе, а то я ищу интернете уже долго почему адрес столбца не устанавливается
|
|
|
|
05.08.2010, 18:06
|
|
|
Частый гость
Регистрация: 27.07.2010
Сообщений: 24
Сказал спасибо: 8
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Re: Графический LCD (glcd)
Хочу задать вопрос
Почему в DS Column address (адрес столбца) указано 0-79. Но столбцов то ведь 122(дисплей WG12232 или AGM1232) . Или я ошибаюсь.
|
|
|
|
05.08.2010, 18:11
|
|
|
Заблокирован
Регистрация: 26.12.2009
Сообщений: 3,102
Сказал спасибо: 113
Сказали Спасибо 860 раз(а) в 610 сообщении(ях)
|
Re: Графический LCD (glcd)
Сообщение от harchenko_pavel
|
А эта запись разве работоспособна?
|
PHP код:
|
GLCD_WriteData(pgm_read_byte(font5x7 + (5 * x) + i))
|
Я конечно не утверждаю, ну по моему надо так
|
PHP код:
|
GLCD_WriteData(pgm_read_byte(&font5x7[(5 * x) + i]))
|
|
По первой строке WinAVR выдал замысловатый код (не знаю как Кодэвижн), но данные выплюнул верно, хотя вторая строка ближе к истине.
А вот функцию Wait Busy вы изуродовали и вывернули наизнанку. Поэтому и появились сомнения по поводу остальных "улучшений".
|
|
|
|
05.08.2010, 18:41
|
|
|
Прописка
Регистрация: 28.09.2006
Сообщений: 144
Сказал спасибо: 11
Сказали Спасибо 95 раз(а) в 51 сообщении(ях)
|
Re: Графический LCD (glcd)
Сообщение от st_1
|
|
А вот функцию Wait Busy вы изуродовали и вывернули наизнанку. Поэтому и появились сомнения по поводу остальных "улучшений".
|
Дело в том что в протеусе по другому не работало!
Может подскажите почему вот так не работает:
|
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;
}
|
|
|
|
|
05.08.2010, 18:59
|
|
|
Прописка
Регистрация: 28.09.2006
Сообщений: 144
Сказал спасибо: 11
Сказали Спасибо 95 раз(а) в 51 сообщении(ях)
|
Re: Графический LCD (glcd)
|
PHP код:
|
#define SED1520_DATA_PORT PORTB
#define SED1520_DATA_DDR DDRB
#define SED1520_DATA_PIN PINB
|
Настраиваю порт на выход
|
PHP код:
|
SED1520_DATA_DDR = 0x00;
|
вхожу в цикл, читаю состояние, А ИЗ ЦИКЛА НЕ ВЫХОДИТ
Проверяю 7-й пин
|
PHP код:
|
GLCD_WaitForStatus(1‹‹7, 0);
GLCD_WaitForStatus(1‹‹7, 1);
|
На скриншоте видно что условие (!(tmp&(1‹‹7)) ИСТИННО.
ТАК ПОЧЕМУ Я ВИШУ В ЦИКЛЕ!
P.S. Поэтому и изуродывал функцию WaitBusy
Последний раз редактировалось harchenko_pavel; 05.08.2010 в 19:02.
|
|
|
|
05.08.2010, 19:04
|
|
|
Заблокирован
Регистрация: 26.12.2009
Сообщений: 3,102
Сказал спасибо: 113
Сказали Спасибо 860 раз(а) в 610 сообщении(ях)
|
Re: Графический LCD (glcd)
Сообщение от harchenko_pavel
|
|
Дело в том что в протеусе по другому не работало!
|
Правильно! Потому что модель Протэза похоже не отрабатывает Busy. 
С реальным железом мы должны крутиться в цикле пока Busy в "1", т.е. пока LCD занят своими делами, и только когда Busy упадёт в "0", тогда мы можем продолжать общаться с LCD.
P.S: По хорошему там полученное значение SED1520_DATA_PIN нужно 7 раз двинуть вправо и проверять на "ложно"-"истинно".
Последний раз редактировалось st_1; 05.08.2010 в 19:12.
|
|
|
|
05.08.2010, 19:17
|
|
|
Прописка
Регистрация: 28.09.2006
Сообщений: 144
Сказал спасибо: 11
Сказали Спасибо 95 раз(а) в 51 сообщении(ях)
|
Re: Графический LCD (glcd)
Сообщение от st_1
|
|
По хорошему там полученное значение SED1520_DATA_PIN нужно 7 раз двинуть вправо и проверять на "ложно"-"истинно".
|
Результат тот же, бред какой то!
|
|
|
|
05.08.2010, 19:21
|
|
|
Заблокирован
Регистрация: 26.12.2009
Сообщений: 3,102
Сказал спасибо: 113
Сказали Спасибо 860 раз(а) в 610 сообщении(ях)
|
Re: Графический LCD (glcd)
Это не бред, это Протэз! 
На время отладки эту функцию можно заменить простой задержкой.
|
|
|
|
05.08.2010, 19:22
|
|
|
Частый гость
Регистрация: 27.07.2010
Сообщений: 24
Сказал спасибо: 8
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Re: Графический LCD (glcd)
Господа мы не на дуэли.
Ответьте кто-нибудь
Почему в DS Column address (адрес столбца) указано 0-79. Но столбцов то ведь 122(дисплей WG12232 или AGM1232) . Или я ошибаюсь.
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
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, время: 02:32.
|
|