GyverLibs icon indicating copy to clipboard operation
GyverLibs copied to clipboard

Update fix

Open Aleev2007 opened this issue 5 years ago • 11 comments

Добавлено немножко объектного программирования :-)

Aleev2007 avatar Feb 25 '20 06:02 Aleev2007

Очень сильно всё переделано, оно тестировалось? На меге тоже?)

AlexGyver avatar May 22 '20 17:05 AlexGyver

Блин, жаль я раньше не заметил, мы с тех пор исправили несколько ошибок и добавили управление ногами аппаратно от таймера

AlexGyver avatar May 22 '20 17:05 AlexGyver

Тестировалось ли? Ну мигал светодиодиком. Исправлено тут только корректное указание интервала мигания. Остальное полностью ваше, только свёрнуто, так, что бы на пять таймеров, не писать пять раз одно и тоже.

Aleev2007 avatar May 23 '20 00:05 Aleev2007

Тогда выделю время протестирую дополню всё) Так а такой вопрос: если в либе мы объект создаём, и не используем, компилятор его должен вырезать. Или в чем другом кроется подвох создания объекта внутри либы?

AlexGyver avatar May 23 '20 08:05 AlexGyver

Компилятор это материя тёмная, и потому утверждать, что и кому он должен, довольно рискованно.)) И скажем так, объекты, это штуки динамические, и поэтому их создают и уничтожают по мере надобности, регулируя тем самым объём используемой ОЗУ. Для этого их кстати и придумали в основном)

Aleev2007 avatar May 23 '20 23:05 Aleev2007

Я беру пример с тех же стандартных wire, Serial, SPI. И в нестандартных тоже это встречается довольно часто...

AlexGyver avatar May 23 '20 23:05 AlexGyver

В стандартных так сделано, видимо потому что это своего рода оболочка Arduino, и там обычно только один объект. А например в стандартной либе LiquidCristal, объект создаётся в зависимости от количества и качества экрана :-) Естественно когда у тебя в либе было 5 разных классов объекта для каждого таймера, то разумно было и создать 5 этих объектов. Я же переписал либу так, что класс Timer(uint8_t ), стал универсальным, и можно создавать объект только для того таймера с которым работаешь.

Кстати, я смотрю, ты часто используешь ЖК-экраны в проектах, вот я тут для русских буковок написал библиотечку, тебе понравится ;-) https://github.com/Aleev2007/LiquidCristalRUS

Aleev2007 avatar May 24 '20 05:05 Aleev2007

Ну вот таймеры и рассчитаны на создание только одного объекта и все, без дополнительных настроек даже. Либа дисплея - хорошо, но без и2с даже близко не подойду к нему :)

AlexGyver avatar May 24 '20 08:05 AlexGyver

Я этим всем занимался в рамках изучения ООП для МК, Так что спорить не буду :-)) Скинь ссылку на либу для I2C ЖК, я посмотрю, что там как. ;-)

Aleev2007 avatar May 24 '20 09:05 Aleev2007

Вот эта например https://github.com/johnrickman/LiquidCrystal_I2C

AlexGyver avatar May 24 '20 19:05 AlexGyver

Вот эта например https://github.com/johnrickman/LiquidCrystal_I2C

Добавил пару строчек, теперь можно и с I2C использовать, если сначала подключить библиотеку LiquidCrystal_I2C, а если ничего не подключать будет работать со стандартной LiquidCrystal. https://github.com/Aleev2007/LiquidCristalRUS/releases/tag/1.1.0

но, так как у меня нет в наличии ЖК-экрана с I2C, протестить не могу ;-)

Aleev2007 avatar May 25 '20 05:05 Aleev2007