louislouis
- 6th December 2020, 19:03
Hello.
These leds while delivering neopixel led like functionality, run on more common, SPI interface, with much more relaxed timing requirements. So they should be easier to use.
Search delivers no results, does anyone tried to used them with PBP?
I use them a lot. Easy to use in PBP, here some test blinks:
'************************************************* ***************
'* Name : APA LED *
'* Author : Louis *
'* Notice : Copyright (c) 2020 *
'* : All Rights Reserved *
'* Date : 7. 10. 2020 *
'* Version : 1.0 *
'* Notes : *
'* : PIC 12F1840 *
'************************************************* ***************
#CONFIG
__config _CONFIG1, _FOSC_INTOSC & _WDTE_OFF & _PWRTE_ON & _MCLRE_OFF & _CP_OFF & _CPD_OFF & _BOREN_ON & _CLKOUTEN_OFF & _IESO_ON & _FCMEN_ON
__config _CONFIG2, _WRT_OFF & _PLLEN_ON & _STVREN_ON & _BORV_19 & _LVP_OFF
#ENDCONFIG
DEFINE OSC 4 ; Use internal clock 4MHz
OSCCON = %01101010 ; 4 MHz internal
OSCTUNE = %00000000 ; Internal osc tunning
WHILE !OSCSTAT.3 ; Wait for stable OSC
WEND
TRISA = %100100 ; RA.2, RA.5 input rest output
ANSELA = %00000
OPTION_REG.7=1 ; disable internal pull-ups
INCLUDE "modedefs.bas"
di var porta.1
ci var porta.4
r var byte
g var byte
b var byte
n var byte
nn var byte
cyc var byte
clear
gosub clear_strip ; clear strip
main:
gosub white_fade
pause 1000
gosub police_blink
pause 1000
gosub color_blink
pause 1000
gosub Orange_Breathe
pause 1000
gosub Red_flicker
pause 1000
goto main
; ------- BLINK CODES --------
police_blink:
gosub clear_strip
led:
gosub start_frame
for nn=0 to 2
gosub start_frame
r=250:g=0:b=0:SHIFTOUT di, ci, 1, [%11100111,b,g,r]
r=250:g=0:b=0:SHIFTOUT di, ci, 1, [%11100111,b,g,r]
r=0:g=0:b=0:SHIFTOUT di, ci, 1, [%11100111,b,g,r]
r=0:g=0:b=0:SHIFTOUT di, ci, 1, [%11100111,b,g,r]
gosub start_frame
pause 30
gosub clear_strip
pause 30
next nn : nn=0
pause 100
for nn=0 to 2
gosub start_frame
r=0:g=0:b=0:SHIFTOUT di, ci, 1, [%11100111,b,g,r]
r=0:g=0:b=0:SHIFTOUT di, ci, 1, [%11100111,b,g,r]
r=0:g=0:b=250:SHIFTOUT di, ci, 1, [%11100111,b,g,r]
r=0:g=0:b=250:SHIFTOUT di, ci, 1, [%11100111,b,g,r]
gosub start_frame
pause 30
gosub clear_strip
pause 30
next nn : nn=0
pause 100
return
; --------- END of police Blink ----------
; --------- Color Blink ----------
color_blink:
gosub clear_strip
leds:
gosub start_frame
for nn=0 to 5
gosub start_frame
r=250:g=0:b=0:SHIFTOUT di, ci, 1, [%11100111,b,g,r]
r=150:g=50:b=0:SHIFTOUT di, ci, 1, [%11100111,b,g,r]
r=250:g=0:b=0:SHIFTOUT di, ci, 1, [%11100111,b,g,r]
r=150:g=50:b=0:SHIFTOUT di, ci, 1, [%11100111,b,g,r]
gosub start_frame
pause 30
gosub clear_strip
pause 30
next nn : nn=0
pause 100
for nn=0 to 5
gosub start_frame
r=0:g=50:b=10:SHIFTOUT di, ci, 1, [%11100111,b,g,r]
r=0:g=200:b=0:SHIFTOUT di, ci, 1, [%11100111,b,g,r]
r=0:g=50:b=10:SHIFTOUT di, ci, 1, [%11100111,b,g,r]
r=0:g=200:b=0:SHIFTOUT di, ci, 1, [%11100111,b,g,r]
gosub start_frame
pause 30
gosub clear_strip
pause 30
next nn : nn=0
pause 100
return
; --------- END of color Blink ----------
; --------- White Fade ----------
white_fade:
gosub clear_strip
gosub start_frame
lit_up:
for nn=0 to 3
r=255:g=255:b=255:SHIFTOUT di, ci, 1, [%11100111,b,g,r]
next nn : nn=0
gosub start_frame
for cyc = 0 to 254
r=r-1:g=g-1:b=b-1
for nn=0 to 3
SHIFTOUT di, ci, 1, [%11100111,b,g,r]
next nn : nn=0
gosub start_frame
next cyc : cyc=0
return
; --------- END of White Fade ---------
; --------- Orange Breathe ---------
Orange_Breathe:
gosub clear_strip
gosub start_frame
for cyc = 0 to 24
pause 30
r=r+10:g=g+1:b=0
for nn=0 to 3
SHIFTOUT di, ci, 1, [%11100111,b,g,r]
next nn : nn=0
gosub start_frame
next cyc : cyc=0
pause 300
for cyc = 0 to 24
pause 30
r=r-10:g=g-1:b=0
for nn=0 to 3
SHIFTOUT di, ci, 1, [%11100111,b,g,r]
next nn : nn=0
gosub start_frame
next cyc : cyc=0
glow_up:
gosub start_frame
for nn=0 to 4
r=10:g=0:b=0:SHIFTOUT di, ci, 1, [%11100111,b,g,r]
next nn : nn=0
return
; ------- END of Orange Breathe -------
; --------- Red flicker ----------
Red_flicker:
gosub clear_strip
gosub start_frame
flicker:
for nn=0 to 3
r=255:g=0:b=0:SHIFTOUT di, ci, 1, [%11100111,b,g,r]
next nn : nn=0
gosub start_frame
pause 500
for cyc=0 to 10
gosub start_frame
for nn=0 to 3
r=255:g=0:b=0:SHIFTOUT di, ci, 1, [%11100111,b,g,r]
next nn : nn=0
pause 50
gosub clear_strip
pause 50
next cyc : cyc=0
return
; --------- END of Red flicker ---------
; --------- Blink subroutines ----------
start_frame:
SHIFTOUT di, ci, 1, [%00000000,%00000000,%00000000,%00000000]
return
clear_strip:
SHIFTOUT di, ci, 1, [%00000000,%00000000,%00000000,%00000000]
for n=0 to 4
r=0:g=0:b=0
SHIFTOUT di, ci, 1, [%11100111,b,g,r]
next n : n=0
return
; ---------- END of Blink Subroutines -----------
Powered by vBulletin® Version 4.1.7 Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.