analogWriteResolution()

Описание

analogWriteResolution() — это функция, расширяющая API для работы с аналоговыми величинами для Arduino Due.

analogWriteResolution() устанавливает размерность значений, передаваемых функции analogWrite(). С целью обратной совместимости с платами на базе AVR-микроконтроллеров эта размерность, по умолчанию, составляет 8 бит (диапазон значений 0-255) .

Due имеет следующие аппаратные возможности:

  • 12 выводов, по умолчанию принимающие 8-битные значения для вывода ШИМ-сигнала (как и на AVR-платах). Размерность может быть изменена на 12 бит.
  • 2 вывода 12-разрядного ЦАП (цифро-аналогового преобразователя)

Изменив размерность на 12, можно использовать функцию analogWrite() со значениями в диапазоне от 0 до 4095. Это позволит не только задействовать всю шкалу ЦАП, но и задавать более точные значения ШИМ-сигнала.

Синтаксис

Параметры

bits: размерность (в битах) значений, передаваемых функции analogWrite(). Может быть в пределах от 1 до 32. Допускается задавать размерности, которые не соответствуют аппаратным возможностям вашей платы. В этом случае значение, передаваемое analogWrite() будет либо отсекаться (если размерность слишком велика), либо дополняться нулями (если слишком мала). См. примечание ниже.

Возвращаемые значения

Нет.

Примечание

Если размерность, указанная в функции analogWriteResolution(), превышает возможности вашей платы, Ардуино просто отбросит лишние биты. Например: после вызова analogWriteResolution(16) на Arduino Due, при отправке 16-битного значения 12-битному ЦАП функцией analogWrite() будут использованы только первые 12 бит, остальные же 4 бита будут отброшены.

Если же размерность, указанная в функции analogWriteResolution(), меньше максимально возможной, то недостающие биты будут дополнены нулями. Например: после вызова analogWriteResolution(8), для отправки 8-битного значения 12-битному ЦАП Arduino Due добавит дополнительных 4 нулевых бита к значению, передаваемому функции analogWrite() .

Пример

Смотрите также