while (1) macht ständig etwas, er kommt also nie in die 2. schleife.

Was genu macht eigentlich PortB.Output.Bit3 ^= 1;
Den Port immer umschalten.

+ und - gibts dort eigentlich nicht.
Es gibt am Portpin nur High und Low was in dem fall 3,3V und 0V sind.

PortB.Output.Bit3 = 1;
setzt den Pin auf 3,3V resp. HIGH

PortB.Output.Bit3 = 0;
auf 0V resp. LOW