Do you mean something like this (I'm sure there's more elegant code, but ...):
Code:temp VAR WORD ;----[Main Program Loop]---------------------------------------- Main: x = (x + 1) // LEDcount IF LoopLED(x) < OnTime(x) THEN READ Brightness + x, temp IF Bright(x) < temp THEN Bright(x) = Bright(x) + 2 ELSE Bright(x) = temp ENDIF ELSE IF Bright(x) > 0 THEN Bright(x) = Bright(x) - 2 ELSE Bright(x) = 0 ENDIF ENDIF LoopLED(x) = (LoopLED(x) + 1) // (OnTime(x) + OffTime(x)) #IFDEF USE_RANDOM_SEQUENCE RandPeriod(x) = RandPeriod(x) - 1 IF RandPeriod(x) = 0 THEN READ RandPeriods+(x<<1), WORD RandPeriod(x) RANDOM RND OnTime(x) = (MAX_ON - MIN_ON)* RND.HighByte / 255 + MIN_ON OffTime(x)= (MAX_OFF - MIN_OFF)* RND.LowByte / 255 + MIN_OFF ENDIF #ENDIF IF x != (LEDcount - 1) THEN Main Waiting: IF !TMR0IF THEN Waiting TMR0 = 99 TMR0IF = 0 GOTO Main




Bookmarks