PIC P16F690;
Main {
digital_output PORTC;
$var1 = TRUE;
$var2 = FALSE;
Loop {
if ($var1 != FALSE && $var2 != FALSE) {
$var1 = !$var2;
sim_assert $var1 == FALSE, "$var1 == FALSE. block 1";
write PORTC, 1;
sim_assert "pause. block 1";
} else if $var1 || $var2 {
$var2 = $var1;
write PORTC, 2;
sim_assert "pause. block 2";
} else if !$var1 {
$var2 = !$var1;
write PORTC, 4;
sim_assert "pause. block 3";
} else if $var2 {
$var2 = !$var1;
write PORTC, 4;
sim_assert "pause. block 4";
} else {
write PORTC, 8;
$var1 = !$var2;
sim_assert "pause. block 5";
break;
};
$var3 = 0xFF;
while $var3 != 0 {
$var3 >>= 1;
}
}
sim_assert "pause. end of main";
}
Simulator {
attach_led PORTC, 8;
stop_after 5s;
}