Dabei könnte man sich ein ganz einfaches kooperatives Multitasking überlegen:
while (1) {
- Sensoren überprüfen
- Drehzahl Rad 1 einstellen
- Drehzahl Rad 2 einstellen
- Drehzahl Rad 3 einstellen
- seriell Daten versenden
}

Dabei darf natürlich die Rundenlaufzeit nicht zu hoch sein, sonst reagieren womöglich die Sensoren zu schnell usw...

Oder aber du verwendest ein preemptives Multitasking-System, dann aber musst du schon fast ein Betriebssystem für den PIC schreiben...
Dieses Betriebssystem wird mittels eines Timer-Interrupts aufgerufen (z.B. alle 1 ms) und legt dann immer der Reihe nach (oder nach einem anderen Verfahren) einen Prozess auf den Prozessor.

Dies sieht dann so aus, dass der Interrupt irgendwann zuschlägt, du den Prozesskontext (alten PC, benötigte RAM-Bereiche usw.) sichern musst, den PC mit dem nächsten Task laden usw...
Um in einem kritischen Prozess Unterbrechnungen zu vermeiden kannst du dann einfach während des kritischen Bereichs die Interrupts deaktivieren...

Das ganze ist längst nicht so kompliziert wie es sich anhört (vielleicht schreib ich demnächst dann auch mal ein kleines OS für PICs).

MfG
Stefan