В микроконтроллерах ATtiny2313, ATtiny13, ATtiny25, ATtiny45 в других ATtiny в AT90PWM2, AT90PWM3, в AT90USB, в ATmega640, 1280, 1281, 2560, 2561 Запись "1" в бит регистров PINx вызывает изменение соответствующего бита в PORTx
Вывод этих контроллеров можно переключать очень быстро - с частотой тактового сигнала!
Уточняйте по даташиту в разделе описания регистров портов.
Правила, по которым МК определяет логический уровень на своих выводах (ножках) были описаны выше.
PORTB - бит этого регистра нужно сделать "1" или "0" что бы на ножке порта с номером этого бита появился "1" или "0". При этом такой же бит регистра DDRB должен быть "1" - т.е. ножка должна быть выходом. Если она сконфигурирована как вход (т.е. её бит в регистре DDRB очищен или равен нулю) - то если очищен и соответствующий бит в регистре PORTB ножка будет высокоимпедансным входом (Z-состояние, вход с очень высоким входным сопротивлением более 10 МОм), а если бит в регистре PORTB установлен, т.е. равен "1" то включается "подтяжка" (pull-up) высокоимпедансного входа к плюсу питания МК через встроенный резистор примерно 40 КОм - ножку как бы соединяют таким резистором с питанием МК.