Программирование

Вопросы по программированию Arduino.

Событийное программирование при помощи "слабых" функций (позднего связывания)

Кому-то - баян, кому-то, возможно, покажется достойным применения. Итак: некоторые библиотеки (боже, как бесит это слово!) работают в поле событийного интерфейса путём назначения коллбэков, простейший пример тому - Wire.onReceive(handler). Этот подход к реализации событий многим известен и многими практикуется, однако, наряду с достоинствами - у этого подхода есть и определённые недостатки, хотя бы тот факт, что указатель на функцию-обработчик надо где-то хранить (а это место в оперативной памяти).

Этюды для начинающих: Память 3. Динамические и автоматические переменные

В прошлый раз мы с Вами говорили о статической памяти, т.е. о памяти, которая выделяется  один раз перед началом выполнения программы и которую потом невозможно освободить. Сегодня поговорим о памяти динамической, т.е. о той, которой Вы можете управлять: выделить, освободить, выделить под другие нужды, снова освободить и т.д.

Этюды для начинающих: Память 2. Статические переменные.

Много транзисторов сгорело с тех пор, как мы с вами говорили о памяти. Я тогда обещал вернуться и продолжить разговор, но многочисленные прерывания вклинивались, и не давали этим заняться. Давайте всё-таки вернёмся к этой теме, тем более что количество вопросов и ошибок связанных с работой с памятью на форуме не уменьшается.

Разработка скетчей на языке BrainFuck

Данный материал предназначен для «настоящих программистов»  , которые, как известно, «не используют Паскаль». Это не значит, что читать его могут только профессионалы. К целевой аудитории относятся и новички, но только те из них, кто в душе «настоящие программисты» и набор необходимых навыков для них лишь вопрос времени.  

класс титановый велосипед StopWatch.

класс титановый велосипед StopWatch.
класс считает количество миллисекунд между двумя последними событиями.

Этюды для начинающих: blink и без delay, и без millis

Коллеги, я помню, что я обещал продолжение про память и обязательно сделаю, просто как-то сейчас не идёт. Зато вот последние темы на форуме навеяли желание поговорить о «ногодрыгах». Итак, стоит задача получить на какой-нибудь ноге меандр заданной частоты. Собственно, такой же, как в горячо любимом Blink’е.

Этюды для начинающих: Память 1. Что и как не надо делать

Колллеги, прошлый этюд вызвал бурный и долго не стихающий аплодисм холивар, счётчик сообщений в котором уже перевалил за тип byte и останавливаться не собирается. Поскольку этюды пишутся для начинающих, я хочу ответить на незаданный вопрос: кому верить, когда толпа гуру вцепилась друг другу в глотки и с брызгами слюны доказывает что-то непонятное на непонятном языке? Ответ простой - никому. Верить можно (если хочется) в Бога, а всё остальное должно подвергаться самостоятельной перепроверке и переосмыслению. Включайте голову, думайте.

Этюды для начинающих: мрамор и штукатурка эффективности

«Во имя эффективности в программировании было совершено больше прегрешений (причем не всегда ее удавалось достичь), чем по какой-либо другой причине, включая непроходимую глупость» 
В. Вульф

класс титановый велосипед для тактовой кнопки.

класс титановый велосипед для тактовой кнопки.
фильтр дребезга, отслеживание событий: нажатие, отпускание, двойное нажатие(doubleclick), нажато и удерживается в течении определённого времени, отпущено и неактивно в течении определённого времени.

Как прошить загрузчик Arduino (ATmega8A)

Доброго времени суток уважаемые профи и новечки.

В этом посте я хочу рассказать как залить Bootloader и выставить Fuse для ATmega8A. По тому как сам новичек в этом деле, испытавал большие сложности в сеё деле. Инфы на просторах интернета на столько много, что она не поможет. А скорее запутает начинающего ардуинщика.

И так, господа профи.. прошу не пинать, если что не так =)

Что понадобится:

1. Arduino UNO (думаю клоны тоже подойдут)

2. "Голая" ATmega8A