В какой-то мере все выглядит хорошо, но мне интересно несколько вещей:
1 / Почему вы выводите 0x20 дважды, чтобы установить адрес CGRAM в 4-битном разделе? Конечно, это нужно только один раз.
2 / Две другие записи (0x00 и 0xf0), я не понимаю из документов. Можете ли вы исправить комментарии, чтобы указать, что они должны делать?
3 / После переключения в 4-битный режим, вам нужно повторить другие инструкции (увеличение и возврат домой)? Может случиться так, что переключение режимов сбрасывает все данные.
4 / Одна вещь, которую я заметил, - флаг занятости указывает, что система еще не может получить другую инструкцию. Возможно, вы слишком быстро их передаете. Что происходит, когда вы увеличиваете задержки с 10 до 100.
Только некоторые вещи, которые нужно попробовать - дайте нам знать результаты.
=====
РЕПЛИКА:
Спасибо за ответ
1 и 2) Я записываю эти значения на основе стр. 29 таблицы (www.cloverlcd.com/pdf/S6A0069.pdf).
3) Вы правы, мне нужно выполнить и другие инструкции, но сейчас я просто пытаюсь заставить курсор мигать в 4-битном режиме (поэтому достаточно первых двух инструкций)
4) Я только что попробовал 100 задержек, это не сработало.
Извините за плохие комментарии, я постараюсь опубликовать лучший код в следующий раз.
Спасибо
=====
EDIT:
Теперь я вижу, как это работает. В 4-битном режиме используются только d7, d6, d5, d4, но каждая инструкция состоит из 2 записей (для создания 8-битной инструкции). Таким образом, он использует хитрость для записи команды 20 (в 8-битном режиме) или 22 (2020 в 4-битном режиме), которые устанавливают режим 4-битным. Очень умно, Samsung, я впечатлен.
Попробуйте пройти всю последовательность инициализации. Возможно, дисплей не запускается полностью, пока не завершится инициализация.
Таким образом, вам нужно вывести (hex) 20,20,80,00, f0, 00,10,00,60,00,20 . Вы должны добавить смелые.
Кроме того, мне нужно задать еще два вопроса (пожалуйста, ответьте как комментарий к этому ответу, а не отправляйте другой ответ)
1 / Проверяет ли COMPortC () сигнал занятости перед выводом данных?
2 / Задержка 10, в каких единицах, миллисекундах, микросекундах и т. Д.?