Здравствуйте! Сегодня мы рассмотрим мигание светодиодом на ардуино. Для начала возьмём обычный blink из примеров в Arduino IDE. Как видим этот пример очень прост в написании и понимании, но давайте теперь обратим внимание на занимаемый объём памяти такой программой. Любому нормальному человеку понятно, что 924 байта флеша просто чтобы помигать светодиодом это мягко сказать многовато, да и переменных мы никаких здесь не используем, чтобы 9 байт на глобальные переменные тратить. В общем нужно искать способ как уменьшить вес кода. Первым делом мы можем заменить delay(1000) на _delay_ms(1000), также вверху нужно будет добавить #define F_CPU 16000000, данная строка сообщает функции _delay_ms() что микроконтроллер работает на чистоте 16МГц. В итоге мы получили 770 байт флеша (что на 154 байта меньше чем было) и по прежнему 9 байт занимают глобальные переменные, но нас это не устроит и мы пойдём дальше. Дело в том, что в микроконтроллере есть регистры, в нашем случае у Atmega328P
Blink на ардуино различными способами. Или облегчаем Blink.
13 февраля 202413 фев 2024
122
2 мин