VladislavS
Это верно касательно ассемблера и только для записи фиксированного значения в фиксированный бит порта.
Однако...
Порты в адуринке не только из "стандартного ряда" - использующие команду CBI $P,b/SBI $P,b
В комплекте платформ имеются и экземпляры, где порт отображен в области ОЗУ (за пределами адресного поля 1-31)...
Обращение к ним должно выполняться иначе.
Второе digitalWrite(pin, value) выполняет как запись (1) так и сброс выбранного бита (0).
Третье... Это порты с комбинированной настройкой выводов - цифровой обмен или "альтернатива" одновременно.
А там уже дополнительные настройки необходимы и учет одновременно выполняемых функций.
Это не говоря о том, что аналоговый ряд может использоваться и как цифровой.
Так что "навороченность" функционала вполне объяснима.
Но мне как пользователю, работающему с адуринкой под Си/С++ вникать в то, как устроены функции совершенно без надобности.
Необходимо лишь знать что применить, чего правильно функции скормить и и что в результате получим.
Ежли захочется "садомазохизьму" - тогда гораздо приятнее под ассемблером поизвращаться.
ARV
Мурик попытался втянуть пользователя в обсуждение тоонкостей построения компилятора...
И... Чую... что-то не то вытащил...
Ибо не может бысть digitalWrite(pin, value) при таймере - она обрабатывает только порты выводов, но не настройки других ресурсов - в случае доступа к ОЗУ рассматривается bitWrite(x, n, b)...
А лезть в устройство IDE мне как-то уровень пока не позволяет...
