i don't want to broke you nuts but this is tested and working.
Code:TRISC = 0 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 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 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 return
- 1. Are your LEDs connected between PORTC and gnd via resistor?
2. Is your MCLR pin tie to VCC with a 10K resistor?
3. Have you place 0.1uf cap close to your PIC?
4. is your supply line 5V and neat, un-noisy?
5. Is your crystal match to your DEFINE OSC setting?
6. Case you're using 8MHZ or higher, did you set HS oscillator in your Programmer program before programming your PIC?




Bookmarks