Belialek napisał: hmmm no tak, ale dla mnie największą niewiadomą tego programu jest miejsce, w którym "mówię" które wyjście ma np. świecić na 50% (czyli przyjąć wartość 128).
Dowolne miejsce w pętli głównej programu (do...Loop) gdzie przypisujesz zmiennym R, G, B konkretne wartości.
Belialek napisał: R, G, B są zwykłymi zmiennymi, w żaden sposób nie są przypisane do konkretnych pinów, a w programie piszesz:
Case 0:
'zapalam B
Incr B
If B = 255 Then Przejscie = 1
Wszystko jak najbardziej poprawnie. Konćowki są przecież przypisane we wcześniej przytoczonym fragmencie:
Software_pwm:
Incr Reference 'zmienna referencyjna
If Reference < R Then : Set Portb.0 : Else : Reset Portb.0 : End If 'red
If Reference < G Then : Set Portb.1 : Else : Reset Portb.1 : End If 'green
If Reference < B Then : Set Portb.2 : Else : Reset Portb.2 : End If 'blue
Return
R=>PB0, G=>PB1, B=>PB2. Widać to jak na dłoni.
Belialek napisał: w komentarzu jest napisane, że zapalasz kolor niebieski, a w kodzie ja widzę tylko zwiększenie zmiennej B o 1

W którym miejscu tego kodu jest informacja dla procesora, że wartość B ma być rozumiana jako poziom wypełnienia dla wyjścia powiedzmy Portb.2?
Patrz kod powtórzony wyżej.
Belialek napisał: Od rana próbuje bezskutecznie zaświecić jednocześnie 2 diody, jedną na 50%, druga na 25% ;/
Weź swój stary program, dodaj poprawkę jaką słusznie zaproponował kol.
MaxDamage18 w CONFIG TIMER0, wyrzuć CONFIG ADC bo jest niepotrzebny, zaprogramuj kość i podziwiaj.
Program inteligentnej lampki RGB wymaga zmian w bitach konfiguracji (fuse), gdyż wymaga taktowania procesora 4,8MHz. Ty tego nie zrobiłeś, zatem masz taktowanie 1,2MHz i wszystko miga zamiast się rozjaśniać.