Спасибо будем разбираться, просто есть исходники на асемблере, но внем я не понимаю.Добавлено (04.11.2012, 15:35)
---------------------------------------------
ed1 EQU 0
Led2 EQU 1
Led3 EQU 2
;***** Variables ************
CBLOCK 0x20
cnt ;счётчик
cLed1 ; Уровень яркрсти Led1
cLed2 ; Уровень яркрсти Led2
cLed3 ; Уровень яркрсти Led3
ENDC
;Инициализация и т. д.
; (всякое разное)
;Загрузка начального свечения.
MOVLW 0x40
MOVWF cLed1
MOVLW 0x80
MOVWF cLed2
MOVLW 0xC0
MOVWF cLed3
;Основной цикл
mainloop
movf cLed1,0 ;читаем уровень яркости Led1
subwf cnt,0 ;вычитаем из счётчика
btfss status,0 ;если флаг переноса установлен - жжом
b led1off ;Иначе гасим Led1
BCF GPIO,Led1 ;Зажигаем Led1
b led1skip
led1off
BSF GPIO,Led1 ;Гасим Led1
led1skip
movf cLed2,0 ;читаем уровень яркости Led2
subwf cnt,0 ;вычитаем из счётчика
btfss status,0 ;если флаг переноса установлен - жжом
b led2off ;Иначе гасим Led2
BCF GPIO,Led2 ;Зажигаем Led2
b led2skip
led2off
BSF GPIO,Led2 ;Гасим Led2
led2skip
movf cLed3,0 ;читаем уровень яркости Led3
subwf cnt,0 ;вычитаем из счётчика
btfss status,0 ;если флаг переноса установлен - жжом
b led3off ;Иначе гасим Led3
BCF GPIO,Led3 ;Зажигаем Led3
b led3skip
led3off
BSF GPIO,Led3 ;Гасим Led3
led3skip
incf cnt
b mainloop ;зациклились :-
Добавлено (04.11.2012, 15:38)
---------------------------------------------
у китаянцев это сделано так , в контролерах RGB лент - период 12 милисек , разбит на 16 шагов , до полного заполнения ...и нормально это выглядит от 0 до 100% яркости любого цвета и белого в тч.