Options -> C/C++ Compiler -> Preprocessor -> Preprocessor output to file.
void SendByte (unsigned char b)
{
unsigned char bit_count;
bit_count=0x80;
; {TCNT2 = 0; OCR2A = 16;};
__delay_cycles(100); // ñòàðò áèò
while (bit_count>0)
{
if (bit_count & b) ; {TCNT2 = 0; OCR2A = 0;};
else ; {TCNT2 = 0; OCR2A = 16;};
__delay_cycles(100); // äàííûå
bit_count >>= 1;
}
; {TCNT2 = 0; OCR2A = 0;};
__delay_cycles(100); // ñòop áèò
}
Правильный вариант:
#define PWM_ON() do {TCNT2 = 0; OCR2A = 16; }while(0)
#define PWM_OFF() do {TCNT2 = 0; OCR2A = 0; } while(0)
или хотя бы:
#define PWM_ON() {TCNT2 = 0; OCR2A = 16; }
#define PWM_OFF() {TCNT2 = 0; OCR2A = 0; }
и заключить тело "if" в скобочки.
Впрочем тела if, for, etc надо всегда заключать в фигурные скобки во избежание проблем и неоднозначностей в будущем.