Unfortunately still nothing.
I would like to remove the ADV all together and just have the FOR...NEXT loop to generate the number of 0 - 255. And then the LEDs changing there PWM to emulate the colours of the spectrum. Here is what the code looks like at the moment with all the recommended changes.
TRISA = %11111111
TRISC = %00000000
rbgArray var byte[3] ' holds the rgb values in this case the led is rbg
x var byte
y var byte
adcVar var byte
rbg var byte ' which value we are changing in the rbg array
rainbowVal var byte ' the current value to produce rainbow
Delta var byte ' find the size of each section in the 6stage rainbow
Section var byte ' which section it is in
maxValue con 255 'the maximum input value for generating rainbow
delta = maxValue/6
y = 0
for x = 0 to 2
high x
pause 1000
low x
next
main:
for rainbowval = 0 to 255
gosub rbgrainbow
next
for rainbowval=255 to 0 step - 1
gosub rbgrainbow
next
goto main
rbgrainbow:
for rbg = 0 to 2
section = ((rainbowval + ((rbg * 2)*delta))/ delta) // 6 ' this gives what section it is in
'serout2 portc.6, 16468, ["rbg: ", dec rbg, 13,10,"section: ", dec section, 13, 10]
select case section
case 0
rbgarray[rbg] = (rainbowval // delta)*6 'this is how far it has gone in its section
case 1
rbgarray[rbg] = 255
case 2
rbgarray[rbg] = 255
case 3
rbgarray[rbg] = 255 - ((rainbowval //delta)*6)
case 4
rbgarray[rbg] = 0
case 5
rbgarray[rbg] = 0
case 6 'this one is for pics bad math
rbgarray[rbg] = 0
end select
next
gosub ledpwm
return
ledPWM:
For y = 0 to 2
Select Case y
Case 0
pwm PORTC.0, rbgarray[y], 1
case 1
pwm PORTC.1, rbgarray[y], 1
case 2
pwm PORTC.2, rbgarray[y], 1
end select
next




Bookmarks