|
HD44780 |
|
|
|
Jun 9 2010, 09:03
|
Знающий
   
Группа: Участник
Сообщений: 691
Регистрация: 24-05-07
Пользователь №: 27 945

|
Цитата(Genadi Zawidowski @ Jun 9 2010, 10:30)  Перевожу: в Вашем случае надо переслать три значения 0x30 и одно 0x20. Да, для проверки BF надо читать два ниббла (старшие 4 бита, затем младшие). Потом анализировать. Пишу под ARM свой драйвер, поэтому приведенный код не особо понятен. Что значит два ниббла? В даташите говорится только про DB7 он и есть BF, предварительно нужно устанавливать RS=L, RW=H. И для записи 0x20 (четвертым шагом) нужно проверять BF, до этого шага у меня не доходит поскольку BF остается высоким.
Сообщение отредактировал _Макс - Jun 9 2010, 09:45
|
|
|
|
|
Jun 9 2010, 10:28
|

Профессионал
    
Группа: Участник
Сообщений: 1 620
Регистрация: 22-06-07
Из: Санкт-Петербург, Россия
Пользователь №: 28 634

|
[attachment=44896:TC1_Jun_09_2010.zip]Два ниббла - означает, что чтение статуса по четырёхбитной шине возвращает 8 бтит регистра состояния за два приёма - старшие четыре бита и младшие. Кроме BF там ещё данные лежат. В аттачменте документ, в котором явно про это говорится и приведена инициализационная последовательность, переключающая как раз в четырёхбитный режим интерфейс - 2 это как раз команда переключения в 4-х битный режим. А 33 передаются для того, чтобы при любом предшествующем состоянии контроллера индикатора (8 или 4 бита) он точно воспринял команду. Код моего проекта для ARM AT91SAM7Sxxx в аттачмете. Работа с дисплеем в файле hd44780.c Сами представьте себе - идут чтения регистра статуса в 4-х битном режиме. Контроллер дисплея отдаёт по "половинкам". Первое чтение даёт старшую половину и BF. Проверяете и повторяете чтение - а контроллер отдаёт младшую половину - а Вы интерпретируете опть как статус! Проверил вот такой вариант инициализации: Код ws1602_io_initialize();
_delay_ms(20); /* 40 ms needed for Vcc = 2.7 V */ _delay_ms(20);
// switch interface to 4-bit wide mode ws1602_wrcmd_nowait(0x33); ws1602_wrcmd_nowait(0x33); //ws1602_wrcmd_nowait(0x32);
_delay_ms(20); // 4.1 ms in examples from ATMEL ws1602_wrcmd(0x20);
ws1602_wrcmd(0x28); // two lines
ws1602_wrcmd(0x0c); // ВКЛ.LCD , КУРСОР ОТКЛ., МИГАНИЕ КУРС. ОТКЛ. ws1602_wrcmd(0x06); // автомат перемещение курсора вправо Работает!
Сообщение отредактировал Genadi Zawidowski - Jun 9 2010, 11:17
|
|
|
|
|
Jun 13 2010, 14:04
|

Гуру
     
Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244

|
Цитата(_Макс @ Jun 13 2010, 15:51)  Спасибо, но я не могу выкладывать программу в публичный доступ, даже если она не работает Ой, а может тогда удалить эту тему, дабы режим секретности не нарушать? Тем более, что тема абсолютно "дежурная" и таких тем на этом форуме уже не менее сотни. Может поиском для начала воспользуетесь? Дабы не разводить гадание на кофейной гуще.
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
|
Jun 13 2010, 14:35
|

Гуру
     
Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244

|
Цитата(_Макс @ Jun 13 2010, 16:06)  Поиском пользовался, не помогло. Если пользовались поиском, то нашли, как минимум, родной хитачевский, а не непонятные китаские перепевки, мануал. Если и его прочитав не поняли, то ... либо воспользуйтесь любезным предложением Genadi Zawidowski вычитать Ваш исходник, либо хватит вести беспредметные разговоры на избитую тему.
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
|
Jun 13 2010, 15:03
|
Знающий
   
Группа: Участник
Сообщений: 691
Регистрация: 24-05-07
Пользователь №: 27 945

|
Цитата(Genadi Zawidowski @ Jun 13 2010, 18:00)  Да, насчёт чтения BF в четырёхбитном режиме в самсунговском файле на странице 19 есть рисунок 5. Там как раз нарисовано чтение регистра состояния за два приёма - по четыре бита.
Полное название STM32 c 5 вольт питанием можно? Да, там в два приема при 4х битном режиме все читается. Исходники выложил, посмотрите пожалуйста. STM32F107 питание у него 3.3V работает с открытым стоком на подтяжки к 5V. Порты five voltage tolerant.
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|