sk6812: minor reorganizing. works now with newer BTF LED stripes.
This commit is contained in:
@@ -19,8 +19,8 @@
|
||||
.equ SK6812_MODE_AUTO = 2
|
||||
|
||||
|
||||
.equ SK6812_TYPE_BTF_NEW = 0
|
||||
.equ SK6812_TYPE_NUM = 1
|
||||
.equ SK6812_TYPE_BTF_TYPE1 = 0 ; new BTF stripes
|
||||
.equ SK6812_TYPE_NUM = 1
|
||||
|
||||
.equ SK6812_DEFAULT_ONTIME = 300 ; 30secs
|
||||
|
||||
@@ -295,6 +295,7 @@ sk6812SetState_off:
|
||||
|
||||
|
||||
|
||||
#if 0
|
||||
; ---------------------------------------------------------------------------
|
||||
; @routine sk6812SendPattern
|
||||
;
|
||||
@@ -323,6 +324,7 @@ sk6812SendPattern_loop2:
|
||||
brne sk6812SendPattern_loop1
|
||||
ret
|
||||
; @end
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
@@ -335,35 +337,14 @@ sk6812SendPattern_loop2:
|
||||
; @param r19 green value
|
||||
; @param r20 blue value
|
||||
; @param r21 white value
|
||||
; @clobbers r23 (r16, r17, r24, r25)
|
||||
; @clobbers r23 (r16)
|
||||
|
||||
sk6812SetAllColor:
|
||||
push zl
|
||||
push zh
|
||||
rcall sk6812GetJumpTableEntryForCurrentType
|
||||
brcc sk6812SetAllColor_done
|
||||
sbi SK6812_DDR, SK6812_PINNUM ; set to output
|
||||
cbi SK6812_PORT, SK6812_PINNUM
|
||||
push r15
|
||||
in r15, SREG
|
||||
cli
|
||||
; Utils_WaitNanoSecs 80000, 0, r22 ; wait for 80us
|
||||
nop
|
||||
nop
|
||||
lds r23, sk6812NumLeds
|
||||
sk6812SetAllColor_loop:
|
||||
rcall sk6812SendQuadruple ; (r16, r17, r24, r25, Z)
|
||||
dec r23
|
||||
brne sk6812SetAllColor_loop
|
||||
|
||||
; reset
|
||||
cbi SK6812_PORT, SK6812_PINNUM
|
||||
Utils_WaitNanoSecs 80000, 0, r22 ; wait for 80us
|
||||
|
||||
; sbi SK6812_PORT, SK6812_PINNUM
|
||||
|
||||
out SREG, r15
|
||||
pop r15
|
||||
icall
|
||||
sk6812SetAllColor_done:
|
||||
pop zh
|
||||
pop zl
|
||||
@@ -390,39 +371,6 @@ sk6812GetJumpTableEntryForCurrentType_ret:
|
||||
|
||||
|
||||
|
||||
; ---------------------------------------------------------------------------
|
||||
; @routine sk6812SendQuadruple
|
||||
;
|
||||
; Sends GRBW
|
||||
; @param r18 red value
|
||||
; @param r19 green value
|
||||
; @param r20 blue value
|
||||
; @param r21 white value
|
||||
; @param Z pointer to jumptable entry for SendByte function (called by ijmp)
|
||||
; @clobbers r16 (r17, r24, r25)
|
||||
|
||||
sk6812SendQuadruple:
|
||||
mov r16, r19 ; G
|
||||
rcall sk6812SendByte ; (r16, r17, r24, r25)
|
||||
mov r16, r18 ; R
|
||||
rcall sk6812SendByte ; (r16, r17, r24, r25)
|
||||
mov r16, r20 ; B
|
||||
rcall sk6812SendByte ; (r16, r17, r24, r25)
|
||||
mov r16, r21 ; W
|
||||
rcall sk6812SendByte ; (r16, r17, r24, r25)
|
||||
ret
|
||||
; @end
|
||||
|
||||
|
||||
|
||||
sk6812SendByte:
|
||||
ijmp
|
||||
|
||||
ret
|
||||
; @end
|
||||
|
||||
|
||||
|
||||
; ---------------------------------------------------------------------------
|
||||
; @routine sk6812WriteConfToEeprom
|
||||
;
|
||||
|
||||
Reference in New Issue
Block a user