Показать сообщение отдельно
Старый 30.11.2016, 21:36   #599
xDriver
Старший Пользователь
 
Аватар для xDriver
 
Регистрация: 12.04.2007
Город: Москва
Регион: 77, 97, 99, 177
Машина: 2013 Hyundai IX35
Сообщений: 400
xDriver is on a distinguished road
По умолчанию

ну это и понятно
в угоду универсальности для множества плат
"родной" digitalWrite выглядит ужасно
Цитата:
void digitalWrite(uint8_t pin, uint8_t val)
{
uint8_t timer = digitalPinToTimer(pin);
uint8_t bit = digitalPinToBitMask(pin);
uint8_t port = digitalPinToPort(pin);
volatile uint8_t *out;

if (port == NOT_A_PIN) return;

// If the pin that support PWM output, we need to turn it off
// before doing a digital write.
if (timer != NOT_ON_TIMER) turnOffPWM(timer);

out = portOutputRegister(port);

uint8_t oldSREG = SREG;
cli();

if (val == LOW) {
*out &= ~bit;
} else {
*out |= bit;
}

SREG = oldSREG;
}
xDriver вне форума   Ответить с цитированием