
Урок №9 Библиотека Button
Урок №9 Библиотека Button
Здравствуйте Эдуард! Не могли бы Вы помочь в решении одной проблемы? Не могу сообразить, как заставить работать библиотеку кнопки на I2C расширителе портов PCF8575. Как правильней сделать, что бы библиотека работала и на пинах микроконтроллера, и на дополнительных пинах расширителя портов? Создать в библиотеке дополнительный класс, с третьим аргументом типа объект "expander"? Или ввести в уже существующий класс третий необязательный аргумент? Например с таким конструктором - "Button(byte pin, byte timeButton, char exp);" Но как тогда выбирать нужный метод между DigitalRead и expander.DigitalRead? Если найдёте в себе капельку душевного тепла и поможете разобраться - буду Вам бесконечно благодарен 

Re: Урок №9 Библиотека Button
Почему-то попала не в тот раздел - я её в "Уроках" хотел разместить... Если можно, перенесите её туда
Re: Урок №9 Библиотека Button
Здравствуйте!
Я бы выбрал вариант - создать другую библиотеку, только для кнопок, подключенных через PCF8575. За универсальность всегда надо платить, а ресурсы контроллеров Ардуино ограничены. Зачем вы будите загружать в контроллер функции обработки кнопок, подключенных через PCF8575 если не собираетесь их использовать в данном проекте. И наоборот, для кнопок подключенных непосредственно к выводам микроконтроллера.
Я бы выбрал вариант - создать другую библиотеку, только для кнопок, подключенных через PCF8575. За универсальность всегда надо платить, а ресурсы контроллеров Ардуино ограничены. Зачем вы будите загружать в контроллер функции обработки кнопок, подключенных через PCF8575 если не собираетесь их использовать в данном проекте. И наоборот, для кнопок подключенных непосредственно к выводам микроконтроллера.
Re: Урок №9 Библиотека Button
Спасибо за совет! А как в таком случае правильней поступить - объявить объект расширителя внутри библиотеки или в основном скетче? Во втором случае Скетч не компилируется, с ошибкой - мол, объект не заявлен в данной области, а в первом - не получится использовать расширитель для других целей... В общем тупик
Re: Урок №9 Библиотека Button
Здравствуйте!
А вы включили библиотеку для расширителя в h и cpp файлы вашей библиотеки?
А вы включили библиотеку для расширителя в h и cpp файлы вашей библиотеки?
Re: Урок №9 Библиотека Button
Да, включал. Проблема проявляется при компиляции самой библиотеки кнопки - если объявляешь объект экспандера в основном скетче, то компиляция библиотеки завершается с ошибкой, что типа объект не заявлен в данной области. А если объявить объект экспандер внутри библиотеки кнопки - то в этом случае компиляция библиотеки проходит без ошибок, но тогда экспандер не получится использовать для других целей в основном скетче - ибо опять же он не заявлен в данной области. Что-то мне подсказывает, что при создании объекта "кнопка", нужно в качестве третьего аргумента (expander$$) вместо объекта "expander" нужно указывать ссылку на объект (или на адрес объекта - как правильно выразиться?). Вот щас пытаюсь с этим разобраться
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 0 гостей