Архив за месяц: Декабрь 2015

Процедура tone() — что там внутри…

В статье про формирование звука с помощью Arduino было отмечено удобство использования функции tone() для генерации сигнала. Интересно было покопаться в библиотеке Brett Hagman — каким образом реализована эта функция?whisper_music Читать далее Процедура tone() — что там внутри…

Что происходит после нажатия кнопки «Загрузить»

Вроде бы ничего экстраордиинарного после тыкания в кнопку не происходит… Все знают, что будет идти компиляция текста скетча и полученный исполняемый код загрузится в подключенную к компьютеру плату Arduino. Но, все-таки, интересно, а какие внутренние процессы совершаются в Arduino IDE…ld_1 Читать далее Что происходит после нажатия кнопки «Загрузить»

Как работает процедура analogWrite()

В статье про работу таймеров в Arduino было отмечено, что все три (имеем ввиду микроконтроллер ATmega328) таймера принимают участие в формировании «аналогового» сигнала на некоторых выходах платы Arduino. На самом деле, конечно, никакого аналогового сигнала не формируется, некоторые пины выводят ШИМ сигнал, который, при желании, с помощью интегрирующей цепочки можно преобразовать в «нормальный аналоговый уровень». Пример ШИМ и его «аналогового аналога»:acp_2

Разберем работу процедуры формирования ШИМ импульсов в платформе Arduino Читать далее Как работает процедура analogWrite()

Как работают таймеры Arduino после сброса…

В Arduino на основе ATmega328 используются все три имеющихся в микроконтроллере таймера. Таймер 0 задействован в функциях «определения времени» (millis(), micros()). Таймер 1 и Таймер 2 вместе с Таймер 0 используются в процедурах analogWrite() для формирования на некоторых выводах микроконтроллера ШИМ импульсов. 

Может быть полезным — знать в каком режиме работают таймеры после включения питания платы Arduino, или подачи сигнала сброса… Читать далее Как работают таймеры Arduino после сброса…

Как работает delay() и delayMicroseconds()

В предыдущих расследованиях мы посмотрели как работают функции millis() и micros().  Двигаясь далее по исследуемому файлу  ..\Arduino\hardware\arduino\cores\arduino\wiring.c — можно обнаружить самые частоупотребляемые в проектах на Arduino процедуры временных задержек. delay1

Посмотрим: как они устроены «внутри»… Читать далее Как работает delay() и delayMicroseconds()

Про функцию micros() — как она устроена…

В предыдущем расследовании стало ясно как работает функция millis(). Есть у Arduino более мелкая функция micros(). Посмотрим, что у нее внутри…sa7 Читать далее Про функцию micros() — как она устроена…