Den snabbaste rutinen (d.v.s pwm-räknarna) körs av en rutin, lämpligen via
ett timer interrupt.
Den andra långsammare rutinen (färgbytet) kan antingen köras av samma
interrupt rutin (ha ett par extra räknare som styr när pwm paramaterarna
ska justeras). Eller (beroende på vilken processor du har, hur många
timers den har och vad du använder timers till för övrigt) via en "eget" timer
interrupt.
Det kan vara enklare att undvika störningar i pwm hanteringen genom
att hantera färgskiftena i samma rutin. Då har man garanti för att pwm
hanteringen kör med samma intervall hela tiden, även om interruptrutinen
ibland tar lite olika lång tid, vilket är OK så länge det är marginal
till nästa interrupt.
Du kan naturligtsvis aldrig kör två eller fler rutiner "samtidigt", annat än skenbart...
> Hur räknar man ut hut många cycles det tar att utföra något?
Men "räknar" normalt inte ut det.
Kör man assembler så använder man "stopwatch" i MPLAB/MPSIM.
Sen så trodde jag att man kör C för att *slippa* räkna cycler...
