RB SETCOLOR

Aus MCS Wiki AVR
Wechseln zu: Navigation, Suche

Inhaltsverzeichnis

Action

Set the color of a LED.

 

 

Syntax

RB_SETCOLOR LEDnr , color()

 

 

Remarks

LEDnr

A word variable or numeric constant which defines the index of the LED. This should be a valid index for the active channel. When the current channel has 8 leds defined with CONFIG RAINBOW, a valid number would be in the range from 0-7. Leds start counting at 0. This is independent of the option base !

color()

A byte array with a minimum length of 3 that holds the RGB information. A LONG or DWORD can be used as well.

 

The color information is set in memory. To update the color of the LED, use RB_SEND

See also

RB_ADDCOLOR , RB_ANDCOLOR , RB_ORCOLOR, RB_SUBCOLOR, RB_CLEARSTRIPE , RB_CLEARCOLORS , RB_FILL , RB_FILLCOLORS , RB_FILLSTRIPE , RB_SELECTCHANNEL , RB_SEND, RB_SETCOLOR , RB_SWAPCOLOR , RB_ROTATELEFT , RB_ROTATERIGHT , RB_SHIFTLEFT , RB_SHIFTRIGHT , RB_CHANGEPIN , RB_SETTABLECOLOR , RB_GETCOLOR , RB_LOOKUPCOLOR


Example

'-------------------------------------------------------------------------------
' rainbow_ws2812_KnightriderDual.bas
' based on sample from Galahat
'-------------------------------------------------------------------------------
$Regfile = "m88pdef.dat"
$Crystal = 8000000
$hwstack = 40
$swstack = 16
$framesize = 32
 
Config RAINBOW=1, RB0_LEN=8, RB0_PORT=PORTB,rb0_pin=0
' ^ connected to pin 0
' ^------------ connected to portB
' ^-------------------------- 8 leds on stripe
' ^------------------------------------- 1 channel
 
 
'Global Color-variables
Dim Color(3) as Byte
R alias Color(_base) : G alias Color(_base + 1) : B alias Color(_base + 2)
 
'CONST
const numLeds=8
 
'----[MAIN]---------------------------------------------------------------------
Dim n as Byte
 
RB_SelectChannel 0 ' select first channel
R = 50 : G = 0 : B = 100 ' define a color
RB_SetColor 0 , color(1) ' update led on the left
RB_SetColor 7 , color(1) ' update led on the right
RB_Send
 
Do
 For n = 1 to Numleds/2 - 1
 rb_Shiftright 0 , Numleds/2 'shift to the right
 rb_Shiftleft 4 , Numleds/2 'shift to the left all leds except the last one
 Waitms 100
 RB_Send
 Next
 For n = 1 to Numleds/2 - 1
 rb_Shiftleft 0 , Numleds/2 'shift to the left all leds except the last one
 rb_Shiftright 4 , Numleds/2 'shift to the right
 Waitms 100
 RB_Send
 Next
 waitms 500 'wait a bit
Loop

Languages   English  
Meine Werkzeuge
Namensräume
Varianten
Aktionen
Navigation
Sprache