Реклама на сайте DatasheetsDatasheets

KAZUS.RUN - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Книги и журналы
FAQ по электронике

  Datasheets
Поиск SMD
Онлайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Схемы и проекты
Принципиальные схемы
  Программы
Каталог сайтов
Калькуляторы
  Форумы по электронике
Помощь проекту

Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей...

 
Опции темы

Графический LCD (glcd)

Непрочитано 05.08.2010, 17:34  
harchenko_pavel
Прописка
 
Регистрация: 28.09.2006
Сообщений: 144
Сказал спасибо: 11
Сказали Спасибо 95 раз(а) в 51 сообщении(ях)
harchenko_pavel на пути к лучшему
По умолчанию Re: Графический LCD (glcd)

Значит через час выложу правленую библиотеку. Там еще много недочетов было
Реклама:
harchenko_pavel вне форума  
Непрочитано 05.08.2010, 17:46  
jobfly
Частый гость
 
Аватар для jobfly
 
Регистрация: 27.07.2010
Сообщений: 24
Сказал спасибо: 8
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
jobfly на пути к лучшему
По умолчанию Re: Графический LCD (glcd)

Сообщение от harchenko_pavel Посмотреть сообщение
Значит через час выложу правленую библиотеку. Там еще много недочетов было
спасибо за помощь в исправлении кода и подсказки что глюк в протеусе, а то я ищу интернете уже долго почему адрес столбца не устанавливается
jobfly вне форума  
Непрочитано 05.08.2010, 18:06  
jobfly
Частый гость
 
Аватар для jobfly
 
Регистрация: 27.07.2010
Сообщений: 24
Сказал спасибо: 8
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
jobfly на пути к лучшему
По умолчанию Re: Графический LCD (glcd)

Хочу задать вопрос

Почему в DS Column address (адрес столбца) указано 0-79. Но столбцов то ведь 122(дисплей WG12232 или AGM1232) . Или я ошибаюсь.
jobfly вне форума  
Непрочитано 05.08.2010, 18:11  
st_1
Заблокирован
 
Регистрация: 26.12.2009
Сообщений: 3,102
Сказал спасибо: 113
Сказали Спасибо 860 раз(а) в 610 сообщении(ях)
st_1 на пути к лучшему
По умолчанию 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 вы изуродовали и вывернули наизнанку. Поэтому и появились сомнения по поводу остальных "улучшений".
st_1 вне форума  
Непрочитано 05.08.2010, 18:41  
harchenko_pavel
Прописка
 
Регистрация: 28.09.2006
Сообщений: 144
Сказал спасибо: 11
Сказали Спасибо 95 раз(а) в 51 сообщении(ях)
harchenko_pavel на пути к лучшему
По умолчанию 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; 
} 
harchenko_pavel вне форума  
Непрочитано 05.08.2010, 18:59  
harchenko_pavel
Прописка
 
Регистрация: 28.09.2006
Сообщений: 144
Сказал спасибо: 11
Сказали Спасибо 95 раз(а) в 51 сообщении(ях)
harchenko_pavel на пути к лучшему
По умолчанию 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
Миниатюры:
Нажмите на изображение для увеличения
Название: Clipboard02.jpg
Просмотров: 150
Размер:	691.5 Кб
ID:	10616  

Последний раз редактировалось harchenko_pavel; 05.08.2010 в 19:02.
harchenko_pavel вне форума  
Непрочитано 05.08.2010, 19:04  
st_1
Заблокирован
 
Регистрация: 26.12.2009
Сообщений: 3,102
Сказал спасибо: 113
Сказали Спасибо 860 раз(а) в 610 сообщении(ях)
st_1 на пути к лучшему
По умолчанию 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.
st_1 вне форума  
Непрочитано 05.08.2010, 19:17  
harchenko_pavel
Прописка
 
Регистрация: 28.09.2006
Сообщений: 144
Сказал спасибо: 11
Сказали Спасибо 95 раз(а) в 51 сообщении(ях)
harchenko_pavel на пути к лучшему
По умолчанию Re: Графический LCD (glcd)

Сообщение от st_1 Посмотреть сообщение
По хорошему там полученное значение SED1520_DATA_PIN нужно 7 раз двинуть вправо и проверять на "ложно"-"истинно".
Результат тот же, бред какой то!
harchenko_pavel вне форума  
Непрочитано 05.08.2010, 19:21  
st_1
Заблокирован
 
Регистрация: 26.12.2009
Сообщений: 3,102
Сказал спасибо: 113
Сказали Спасибо 860 раз(а) в 610 сообщении(ях)
st_1 на пути к лучшему
По умолчанию Re: Графический LCD (glcd)

Это не бред, это Протэз!
На время отладки эту функцию можно заменить простой задержкой.
st_1 вне форума  
Непрочитано 05.08.2010, 19:22  
jobfly
Частый гость
 
Аватар для jobfly
 
Регистрация: 27.07.2010
Сообщений: 24
Сказал спасибо: 8
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
jobfly на пути к лучшему
По умолчанию Re: Графический LCD (glcd)

Господа мы не на дуэли.

Ответьте кто-нибудь
Почему в DS Column address (адрес столбца) указано 0-79. Но столбцов то ведь 122(дисплей WG12232 или AGM1232) . Или я ошибаюсь.
jobfly вне форума  
 
Опции темы

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

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
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.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.