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

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

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

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

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

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

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

Закрытая тема
Опции темы
Непрочитано 06.06.2010, 18:20   #21
UA3NGF
Прохожий
 
Регистрация: 06.06.2010
Сообщений: 9
Сказал спасибо: 2
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
UA3NGF на пути к лучшему
По умолчанию Re: Вопрос по CCS PIC

Это я понимаю, но не понимаю, что означает BOLEAN в данном контексте.
UPD:
Это был ответ для baiderin, теперь погружаюсь в чтение ответа от CERGEI1982
Реклама:
UA3NGF вне форума  
Непрочитано 06.06.2010, 18:30   #22
UA3NGF
Прохожий
 
Регистрация: 06.06.2010
Сообщений: 9
Сказал спасибо: 2
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
UA3NGF на пути к лучшему
По умолчанию Re: Вопрос по CCS PIC

В драйвере дисплея перед этой структурой есть вот такой комментарий:
// define the pinout.
// only required if port access is being used.
Насколько я понимаю, он гласит о том, что данная структура необходима при подключении дисплея способом "port access".
Означает ли это, что в таком случае бессмысленно переназначать пины посредством вот этого:
#define LCD_ENABLE_PIN PIN_B0
#define LCD_RS_PIN PIN_B1
#define LCD_RW_PIN PIN_B6
#define LCD_DATA4 PIN_B2
#define LCD_DATA5 PIN_B3
#define LCD_DATA6 PIN_B4
#define LCD_DATA7 PIN_B5

И ещё. Правильно ли я понимаю, что в структуре

struct lcd_pin_map {
BOOLEAN rs;
BOOLEAN enable;
BOOLEAN unused;
BOOLEAN unused_1;
int data : 4;
} lcd;

предполагается назначение выводов порта сверху вниз
0
1
2
3
и т.д.?
UA3NGF вне форума  
Непрочитано 06.06.2010, 18:42   #23
CERGEI1982
Почётный гражданин KAZUS.RU
 
Аватар для CERGEI1982
 
Регистрация: 03.01.2007
Адрес: Россия,Иркутская обл.
Сообщений: 2,579
Сказал спасибо: 351
Сказали Спасибо 315 раз(а) в 193 сообщении(ях)
CERGEI1982 на пути к лучшему
По умолчанию Re: Вопрос по CCS PIC

А ты не заметил что драйвер переписан весь по сравнению с оригиналом?

Эти define имели влияние:
Код:
#ifndef LCD_ENABLE_PIN
   #define lcd_output_enable(x) lcdlat.enable=x
   #define lcd_enable_tris()   lcdtris.enable=0
#else
   #define lcd_output_enable(x) output_bit(LCD_ENABLE_PIN, x)
   #define lcd_enable_tris()  output_drive(LCD_ENABLE_PIN)
#endif

#ifndef LCD_RS_PIN
   #define lcd_output_rs(x) lcdlat.rs=x
   #define lcd_rs_tris()   lcdtris.rs=0
#else
   #define lcd_output_rs(x) output_bit(LCD_RS_PIN, x)
   #define lcd_rs_tris()  output_drive(LCD_RS_PIN)
#endif

#ifndef LCD_RW_PIN
   #define lcd_output_rw(x) lcdlat.rw=x
   #define lcd_rw_tris()   lcdtris.rw=0
#else
   #define lcd_output_rw(x) output_bit(LCD_RW_PIN, x)
   #define lcd_rw_tris()  output_drive(LCD_RW_PIN)
#endif
Сейчас точно все не помню,сильно еще не погружался,но разобраться можно.Главное знать как дисплей управляется и язык Си.У меня есть тестовый готовый проект на пик16ф84,могу выложить раз так все трудно.
__________________
Глаза боятся,а руки делают.
CERGEI1982 вне форума  
Непрочитано 06.06.2010, 18:58   #24
UA3NGF
Прохожий
 
Регистрация: 06.06.2010
Сообщений: 9
Сказал спасибо: 2
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
UA3NGF на пути к лучшему
По умолчанию Re: Вопрос по CCS PIC

Спасибо, но готовый проект выкладывать не нужно. Я понять хочу.
Но пока, увы, ничегошеньки не понимаю...
В частности непонятно, каким образом отправляются байты инициализации согласно даташиту?
Я ожидал увидеть что-нибудь наподобие

FCD_LCDDisplay0_RawSend(0x33, 0);
Wdt_Delay_Ms(2);
FCD_LCDDisplay0_RawSend(0x33, 0);
Wdt_Delay_Ms(2);
FCD_LCDDisplay0_RawSend(0x32, 0);
Wdt_Delay_Ms(2);
FCD_LCDDisplay0_RawSend(0x2c, 0);
Wdt_Delay_Ms(2);
FCD_LCDDisplay0_RawSend(0x06, 0);
Wdt_Delay_Ms(2);
FCD_LCDDisplay0_RawSend(0x0c, 0);
Wdt_Delay_Ms(2);

Но ничего такого в драйвере нет. Это правильно? Так и должно быть? Спрашиваю потому, что сомневаюсь в корректности установки компилятора.
UA3NGF вне форума  
Непрочитано 06.06.2010, 19:14   #25
CERGEI1982
Почётный гражданин KAZUS.RU
 
Аватар для CERGEI1982
 
Регистрация: 03.01.2007
Адрес: Россия,Иркутская обл.
Сообщений: 2,579
Сказал спасибо: 351
Сказали Спасибо 315 раз(а) в 193 сообщении(ях)
CERGEI1982 на пути к лучшему
По умолчанию Re: Вопрос по CCS PIC

Приятно что хочеш разобратся
Начнем тогда
Смотрим на эту функцию:
Код:
void lcd_init() {
    BYTE i;
    set_tris_lcd(LCD_WRITE);
    lcd.rs = 0;
    //lcd.rw = 0;
    lcd.enable = 0;
    delay_ms(15);
    for(i=1;i‹=3;++i) {
       lcd_send_nibble(3);
       delay_ms(5);
    }
    lcd_send_nibble(2);
    for(i=0;i‹=3;++i)
       lcd_send_byte(0,LCD_INIT_STRING[i]);
}
1) С помощью структуры настараиваются порты на вывод
Код:
struct lcd_pin_map const LCD_WRITE = {0,0,0,0,0};
2) понятно что вывод E опускаем к нулю(да простят меня за простое описание)
Код:
lcd.enable = 0;
3)Видим цикл
Код:
for(i=1;i‹=3;++i) {
       lcd_send_nibble(3);
       delay_ms(5);
    }
Два раза выводим на лсд 0х03
4)Ну и потом 0х02
Код:
lcd_send_nibble(2)
5)Настраиваем лсд на нужные нам настройки,они находятся тут:
Код:
BYTE const LCD_INIT_STRING[4] = {0x20 | (lcd_type ‹‹ 2), 0xc, 1, 6};
Их можно менять на свое усмотрение,например курсор показать или чтоб мигал,также сдвиг и т д.

Да и заметь что тут нет опроса занятости дисплея,вместо этого вставляются задержки по даташифту на HD44780 фирмы HITACHI и KS0066 фирмы SAMSUNG.
__________________
Глаза боятся,а руки делают.

Последний раз редактировалось CERGEI1982; 06.06.2010 в 19:36.
CERGEI1982 вне форума  
Сказали "Спасибо" CERGEI1982
UA3NGF (06.06.2010)
Непрочитано 06.06.2010, 19:38   #26
UA3NGF
Прохожий
 
Регистрация: 06.06.2010
Сообщений: 9
Сказал спасибо: 2
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
UA3NGF на пути к лучшему
По умолчанию Re: Вопрос по CCS PIC

Спасибо за "вкусное" сообщение! Иш ты, как хитро придумано с инициализацией!
К сожалению, пятый пункт не прошёл.
"5)Настраиваем лсд на нужные нам настройки,они находятся тут:" Ну, сейчас не это главное, надо с пинами разобраться.

В драйвере написано, что возможен доступ к дисплею двумя способами: "Port acess" или побитно. Каким из этих способов общепринято обращаться к LCD?

Где конкрентно я могу сопоставить пины контроллёра и дисплея друг другу?

Как должна выглядеть строка main.c, в которой будет прописано, что Data5 дисплея подключается к 3-му биту портаВ?
UA3NGF вне форума  
Непрочитано 06.06.2010, 21:25   #27
UA3NGF
Прохожий
 
Регистрация: 06.06.2010
Сообщений: 9
Сказал спасибо: 2
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
UA3NGF на пути к лучшему
По умолчанию Re: Вопрос по CCS PIC

Есть! Получилось! Оттолкнулся вот отсюда)
https://kazus.ru/forums/showthread.php?t=5168&page=39
Но теперь надо избавиться от пина RW
UA3NGF вне форума  
Непрочитано 06.06.2010, 23:39   #28
skb100
Частый гость
 
Аватар для skb100
 
Регистрация: 31.08.2006
Адрес: Орёл
Сообщений: 26
Сказал спасибо: 10
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
skb100 на пути к лучшему
По умолчанию Re: Вопрос по CCS PIC

Форумчане кто знает ответьте:
вопрос: в первой иконке слева когда открываешь проекты, то
в окне ( Recent Projects и Recent Files ) как удалить ненужные
проекты и не нужные файлы???
skb100 вне форума  
Непрочитано 07.06.2010, 09:32   #29
MisterDi
Почётный гражданин KAZUS.RU
 
Аватар для MisterDi
 
Регистрация: 13.02.2008
Адрес: Днепр. Украина
Сообщений: 3,294
Сказал спасибо: 442
Сказали Спасибо 1,048 раз(а) в 706 сообщении(ях)
MisterDi на пути к лучшему
По умолчанию Re: Вопрос по CCS PIC

AFAIK это обычно прописывается в реестре, через некоторое время сами уйдуть , а вместо них будут активные рабочие проекты.
__________________
misterdi<@>i.ua
MisterDi вне форума  
Непрочитано 07.06.2010, 21:54   #30
UA3NGF
Прохожий
 
Регистрация: 06.06.2010
Сообщений: 9
Сказал спасибо: 2
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
UA3NGF на пути к лучшему
По умолчанию Re: Вопрос по CCS PIC

Други! Почему переменная pausa выводится на дисплей не как 300, а как 44? Как вывести число больше, чем байт? (не Float)

int pausa = 300;
int rabota = 30;

void main()
{
lcd_init();

printf (LCD_PUTC "Rabota: %d\nPausa: %d ", rabota, pausa );
delay_ms(50);


}
UA3NGF вне форума  
Закрытая тема

Закладки

Опции темы

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

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
i2c+ccs pic Gladkih Микроконтроллеры, АЦП, память и т.д 9 18.04.2016 22:17
CCS PIC C PCWHD 4.065 fmssp Микроконтроллеры, АЦП, память и т.д 38 09.06.2010 23:44
CCS PIC C 4.020 fmssp Микроконтроллеры, АЦП, память и т.д 11 11.02.2009 12:17
Вопрос по CCS PICC PCWH ,,, hubble Микроконтроллеры, АЦП, память и т.д 1 04.02.2007 21:37
CCS PIC C v.4.020 mishastik Микроконтроллеры, АЦП, память и т.д 0 23.01.2007 12:52


Часовой пояс GMT +4, время: 03:00.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot