Код
static void
ws1602_wrcmd_nowait(
uint_fast8_t v)
{
enum { as = 0 };
_delay_ms(20); // 4.1 ms in examples from ATMEL
ws1602_to_write(as);
ws1602_send4_high(v);
ws1602_pulse_strobe();
_delay_ms(20); // 4.1 ms in examples from ATMEL
ws1602_send4_low(v);
ws1602_pulse_strobe();
ws1602_to_read(0); // as=0: status register will be read - initial state
}
...
// switch interface to 4-bit wide mode
ws1602_wrcmd_nowait(0x33);
ws1602_wrcmd_nowait(0x32);
ws1602_wrcmd(0x28); // two lines
ws1602_wrcmd(0x0c); // ВКЛ.LCD , КУРСОР ОТКЛ., МИГАНИЕ КУРС. ОТКЛ.
ws1602_wrcmd(0x06); // автомат перемещение курсора вправо
Перевожу: в Вашем случае надо переслать три знаяения 0x30 и одно 0x20.
Да, для проверки BF надо читать два ниббла (старшие 4 бита, затем младшие). Потом анализировать.
Сообщение отредактировал Genadi Zawidowski - Jun 9 2010, 07:32