Косвенная адресация
- Войдите на сайт для отправки комментариев
Ср, 27/07/2016 - 08:28
Здравствуйте уважаемые.
Прошу помощи. Есть всем известный экранчик 1602 I2C. Собран он на расширителе портов PCF8574, у которого есть 2 версии: с "А" и без А. Отличаются адресами I2C. Я хочу устанавливать адрес I2C из eeprom.
Стандартный конструктор для lcd выглядит так:
LiquidCrystal_I2C lcd(lcd_adr, lcd_col, lcd_row); // set the LCD address to 0x27 for a 16 chars and 2 line display
Конструктор - глобальный.
Собственно вопрос. Как подставить "lcd_adr" в конструктор, если она (lcd_adr) иницируется только после вызова функции чтения ееprom?
Т.е. последовательность д.б. такая:
1 чтение из eeprom
2 инициализация lcd_adr
3 передача lcd_adr в конструктор
Спасибо.
Ну, и вызывайте после, какие проблемы? Если он так уж нужен глобально, сделайте глобальный указатель, а там, где уже можно вызывайте конструктор: new LiquidCrystal_I2C(...
я пробовал вызывать каждый раз в той функции, которая использует LCD. Получается бардак на индикаторе - строки сливаются в одну, либо в середине одной строки вылазит другая. По поводу глобального указателя можно поподробнее?
Если объект класса создаётся оператором new, то для доступа к чтенам класса используется оператор "->", а не точка:
уже поменял
Все получилось! Ура! Ура! Ура! Всем спасибо!!! Вопрос решен. Тема закрыта