Етить-колотить...
Но вот это:
state_PWM ? ({blinkOFF();state_PWM -=1;}) : ({blinkON ();state_PWM +=1;});
просто ШЕДЕВР!
Тернарная операция! Вычисляется выражение слева от знака вопроса, и если оно истинно - вычисляется выражение слева от двоеточия и оно становится результатом операции иначе вычисляется выражение справа от двоеточия и результатом становится выражение справа от двоеточия.
Результатом операции является одно из выражений вокруг двоеточия. Этот результат может быть присвоен какой либо переменной или использован в другом выражении, в выражениях вокруг двоеточия могут быть вызовы функций...
АБЗАЦ... Си - это СИЛА.
ЗЫ. Вместо стрелки осциллографа подключил тележку с моточиками. Весело крутит моторчиками!
Кода всего-то:
Program: 524 bytes (1.6% Full)
(.text + .data + .bootloader)
Data: 5 bytes (0.2% Full)
(.data + .bss + .noinit)
Build succeeded with 0 Warnings...