Arduino Nano и PB2

Что-то я не пойму - по идее для Nano

#define LEDS_PIN PB2
#define LEDS_PIN 10

Обе строки должны указывать на один и тот же порт. Но работает только вторая. На первую не ругается, но и вывода на указанный пин нет… В чем тут дело? С портом D - все нормально…

С какого счастья? Может ты удосужишься посмотреть определение макросов, которые используешь?

2 лайка

ТС, если ты куда-либо выведешь значение PB2 - оно будет равно 2. Более того, PD2 = 2, PC2 = 2 и тд.
Эти макросы нужны для доступа к выводу внутри порта, например:

DDRB = 0xFF;         // Порт B "на выход"
PORTB = 0x00;        // На всех выводах логический ноль
PORTB |= (1 << PB2); // Установить на втором выводе порта B (PB2) логическую единицу

Если использовать ядро MiniCore, то для прямого доступа там используются макросы PIN_PXY.
Где X - буква порта, Y - номер вывода. Например

PIN_PB2 = HIGH;

Пример, мягко говоря, странный

Что именно странно?
Кстати, лично мое мнение - эти макросы нафиг не нужны.

PORTD |= (1 << PD2);
PORTD |= (1 << PB2);
PORTD |= (1 << 2);    // Все эти записи эквивалентны

Кому это они так задолжали? У Вас есть долговая расписка? Если нет, забудьте, ничего они Вам не должны.