Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update fix #32

Open
wants to merge 1 commit into
base: master
Choose a base branch
from
Open

Update fix #32

wants to merge 1 commit into from

Conversation

Aleev2007
Copy link

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

@AlexGyver
Copy link
Owner

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

@AlexGyver
Copy link
Owner

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

@Aleev2007
Copy link
Author

Aleev2007 commented May 23, 2020

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

@AlexGyver
Copy link
Owner

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

@Aleev2007
Copy link
Author

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

@AlexGyver
Copy link
Owner

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

@Aleev2007
Copy link
Author

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

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

@AlexGyver
Copy link
Owner

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

@Aleev2007
Copy link
Author

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

@AlexGyver
Copy link
Owner

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

@Aleev2007
Copy link
Author

Aleev2007 commented May 25, 2020

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

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

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants