The code i posted originally is what ive been using to test how many instruction cycles things take. I have 4 sockets (A to D) on this board each with 6 outputs (1 to 6).
There doesnt have to be an array involved. I just used that to make other parts of the code a little easier. I could create a bunch of variables named vPWM0, vPWM1 etc instead. The important part is reducing the number of instructions an if statement uses or not using an if statement at all.Code:'Define output pins pA1 VAR PORTB.1 pA2 VAR PORTB.2 pA3 VAR PORTB.0 'etc... 'Then further down inside the TMR0 interrupt 'Is the vPWMPos equal to 0? IF vPWMPos=0 THEN 'Turn off any outputs that are less than 255 IF vPWM[0]<255 THEN pA1=0 IF vPWM[1]<255 THEN pA2=0 IF vPWM[2]<255 THEN pA3=0 'etc... ELSE 'If vPWMPos is less than any of the chanels then turn those chanels on IF vPWMPos=vPWM[0] THEN pA1=1 IF vPWMPos=vPWM[1] THEN pA2=1 IF vPWMPos=vPWM[2] THEN pA3=1 'etc... ENDIF 'Decrement the PWM counter vPWMPos=vPWMPos-1




Bookmarks