GyverLibs
GyverLibs copied to clipboard
Update fix
Добавлено немножко объектного программирования :-)
Очень сильно всё переделано, оно тестировалось? На меге тоже?)
Блин, жаль я раньше не заметил, мы с тех пор исправили несколько ошибок и добавили управление ногами аппаратно от таймера
Тестировалось ли? Ну мигал светодиодиком. Исправлено тут только корректное указание интервала мигания. Остальное полностью ваше, только свёрнуто, так, что бы на пять таймеров, не писать пять раз одно и тоже.
Тогда выделю время протестирую дополню всё) Так а такой вопрос: если в либе мы объект создаём, и не используем, компилятор его должен вырезать. Или в чем другом кроется подвох создания объекта внутри либы?
Компилятор это материя тёмная, и потому утверждать, что и кому он должен, довольно рискованно.)) И скажем так, объекты, это штуки динамические, и поэтому их создают и уничтожают по мере надобности, регулируя тем самым объём используемой ОЗУ. Для этого их кстати и придумали в основном)
Я беру пример с тех же стандартных wire, Serial, SPI. И в нестандартных тоже это встречается довольно часто...
В стандартных так сделано, видимо потому что это своего рода оболочка Arduino, и там обычно только один объект. А например в стандартной либе LiquidCristal, объект создаётся в зависимости от количества и качества экрана :-) Естественно когда у тебя в либе было 5 разных классов объекта для каждого таймера, то разумно было и создать 5 этих объектов. Я же переписал либу так, что класс Timer(uint8_t ), стал универсальным, и можно создавать объект только для того таймера с которым работаешь.
Кстати, я смотрю, ты часто используешь ЖК-экраны в проектах, вот я тут для русских буковок написал библиотечку, тебе понравится ;-) https://github.com/Aleev2007/LiquidCristalRUS
Ну вот таймеры и рассчитаны на создание только одного объекта и все, без дополнительных настроек даже. Либа дисплея - хорошо, но без и2с даже близко не подойду к нему :)
Я этим всем занимался в рамках изучения ООП для МК, Так что спорить не буду :-)) Скинь ссылку на либу для I2C ЖК, я посмотрю, что там как. ;-)
Вот эта например https://github.com/johnrickman/LiquidCrystal_I2C
Вот эта например https://github.com/johnrickman/LiquidCrystal_I2C
Добавил пару строчек, теперь можно и с I2C использовать, если сначала подключить библиотеку LiquidCrystal_I2C, а если ничего не подключать будет работать со стандартной LiquidCrystal. https://github.com/Aleev2007/LiquidCristalRUS/releases/tag/1.1.0
но, так как у меня нет в наличии ЖК-экрана с I2C, протестить не могу ;-)