mirror of https://github.com/arendst/Tasmota.git
Fix WS2812 multi-strip support
This commit is contained in:
parent
16f0adec14
commit
7a4108ef93
|
@ -1203,9 +1203,9 @@ be_local_closure(Leds_show, /* name */
|
|||
********************************************************************/
|
||||
be_local_closure(Leds_ctor, /* name */
|
||||
be_nested_proto(
|
||||
10, /* nstack */
|
||||
4, /* argc */
|
||||
0, /* varg */
|
||||
12, /* nstack */
|
||||
5, /* argc */
|
||||
2, /* varg */
|
||||
0, /* has upvals */
|
||||
NULL, /* no upvals */
|
||||
0, /* has sup protos */
|
||||
|
@ -1217,23 +1217,34 @@ be_local_closure(Leds_ctor, /* name */
|
|||
}),
|
||||
&be_const_str_ctor,
|
||||
&be_const_str_solidified,
|
||||
( &(const binstruction[16]) { /* code */
|
||||
0x4C100000, // 0000 LDNIL R4
|
||||
0x1C100604, // 0001 EQ R4 R3 R4
|
||||
0x78120005, // 0002 JMPF R4 #0009
|
||||
0x8C100100, // 0003 GETMET R4 R0 K0
|
||||
0x58180001, // 0004 LDCONST R6 K1
|
||||
0x5C1C0200, // 0005 MOVE R7 R1
|
||||
0x5C200400, // 0006 MOVE R8 R2
|
||||
0x7C100800, // 0007 CALL R4 4
|
||||
0x70020005, // 0008 JMP #000F
|
||||
0x8C100100, // 0009 GETMET R4 R0 K0
|
||||
0x58180001, // 000A LDCONST R6 K1
|
||||
0x5C1C0200, // 000B MOVE R7 R1
|
||||
0x5C200400, // 000C MOVE R8 R2
|
||||
0x5C240600, // 000D MOVE R9 R3
|
||||
0x7C100A00, // 000E CALL R4 5
|
||||
0x80000000, // 000F RET 0
|
||||
( &(const binstruction[27]) { /* code */
|
||||
0x4C140000, // 0000 LDNIL R5
|
||||
0x1C140605, // 0001 EQ R5 R3 R5
|
||||
0x78160005, // 0002 JMPF R5 #0009
|
||||
0x8C140100, // 0003 GETMET R5 R0 K0
|
||||
0x581C0001, // 0004 LDCONST R7 K1
|
||||
0x5C200200, // 0005 MOVE R8 R1
|
||||
0x5C240400, // 0006 MOVE R9 R2
|
||||
0x7C140800, // 0007 CALL R5 4
|
||||
0x70020010, // 0008 JMP #001A
|
||||
0x4C140000, // 0009 LDNIL R5
|
||||
0x1C140805, // 000A EQ R5 R4 R5
|
||||
0x78160006, // 000B JMPF R5 #0013
|
||||
0x8C140100, // 000C GETMET R5 R0 K0
|
||||
0x581C0001, // 000D LDCONST R7 K1
|
||||
0x5C200200, // 000E MOVE R8 R1
|
||||
0x5C240400, // 000F MOVE R9 R2
|
||||
0x5C280600, // 0010 MOVE R10 R3
|
||||
0x7C140A00, // 0011 CALL R5 5
|
||||
0x70020006, // 0012 JMP #001A
|
||||
0x8C140100, // 0013 GETMET R5 R0 K0
|
||||
0x581C0001, // 0014 LDCONST R7 K1
|
||||
0x5C200200, // 0015 MOVE R8 R1
|
||||
0x5C240400, // 0016 MOVE R9 R2
|
||||
0x5C280600, // 0017 MOVE R10 R3
|
||||
0x5C2C0800, // 0018 MOVE R11 R4
|
||||
0x7C140C00, // 0019 CALL R5 6
|
||||
0x80000000, // 001A RET 0
|
||||
})
|
||||
)
|
||||
);
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
|
||||
|
||||
# Native commands
|
||||
# 00 : ctor (leds:int, gpio:int) -> void
|
||||
# 00 : ctor (leds:int, gpio:int[, type:int, rmt:int]) -> void
|
||||
# 01 : begin void -> void
|
||||
# 02 : show void -> void
|
||||
# 03 : CanShow void -> bool
|
||||
|
@ -57,11 +57,15 @@ class Leds : Leds_ntv
|
|||
self.show()
|
||||
end
|
||||
|
||||
def ctor(leds, gpio, rmt)
|
||||
if rmt == nil
|
||||
def ctor(leds, gpio, type, rmt)
|
||||
if type == nil
|
||||
self.call_native(0, leds, gpio)
|
||||
else
|
||||
self.call_native(0, leds, gpio, rmt)
|
||||
if rmt == nil
|
||||
self.call_native(0, leds, gpio, type)
|
||||
else
|
||||
self.call_native(0, leds, gpio, type, rmt)
|
||||
end
|
||||
end
|
||||
end
|
||||
def begin()
|
||||
|
|
|
@ -14,7 +14,6 @@ const be_const_member_t lv_gpio_constants[] = {
|
|||
{ "ADC_INPUT", (int32_t) GPIO_ADC_INPUT },
|
||||
{ "ADC_JOY", (int32_t) GPIO_ADC_JOY },
|
||||
{ "ADC_LIGHT", (int32_t) GPIO_ADC_LIGHT },
|
||||
{ "ADC_MQ", (int32_t) GPIO_ADC_MQ },
|
||||
{ "ADC_PH", (int32_t) GPIO_ADC_PH },
|
||||
{ "ADC_RANGE", (int32_t) GPIO_ADC_RANGE },
|
||||
{ "ADC_TEMP", (int32_t) GPIO_ADC_TEMP },
|
||||
|
@ -39,6 +38,8 @@ const be_const_member_t lv_gpio_constants[] = {
|
|||
{ "CC1101_GDO0", (int32_t) GPIO_CC1101_GDO0 },
|
||||
{ "CC1101_GDO2", (int32_t) GPIO_CC1101_GDO2 },
|
||||
{ "CHANGE", CHANGE },
|
||||
{ "CM11_RXD", (int32_t) GPIO_CM11_RXD },
|
||||
{ "CM11_TXD", (int32_t) GPIO_CM11_TXD },
|
||||
{ "CNTR1", (int32_t) GPIO_CNTR1 },
|
||||
{ "CNTR1_NP", (int32_t) GPIO_CNTR1_NP },
|
||||
{ "CSE7761_RX", (int32_t) GPIO_CSE7761_RX },
|
||||
|
@ -130,6 +131,7 @@ const be_const_member_t lv_gpio_constants[] = {
|
|||
{ "MAX7219CLK", (int32_t) GPIO_MAX7219CLK },
|
||||
{ "MAX7219CS", (int32_t) GPIO_MAX7219CS },
|
||||
{ "MAX7219DIN", (int32_t) GPIO_MAX7219DIN },
|
||||
{ "MAX_RMT", MAX_RMT },
|
||||
{ "MCP2515_CS", (int32_t) GPIO_MCP2515_CS },
|
||||
{ "MCP39F5_RST", (int32_t) GPIO_MCP39F5_RST },
|
||||
{ "MCP39F5_RX", (int32_t) GPIO_MCP39F5_RX },
|
||||
|
|
|
@ -616,7 +616,7 @@ const uint16_t kGpioNiceList[] PROGMEM = {
|
|||
AGPIO(GPIO_P9813_CLK), // P9813 CLOCK
|
||||
AGPIO(GPIO_P9813_DAT), // P9813 DATA
|
||||
#else
|
||||
AGPIO(GPIO_WS2812) + MAX_RMT,// WS2812 Led string, using RMT on ESP32
|
||||
AGPIO(GPIO_WS2812) + (MAX_RMT ? MAX_RMT + 1 : 0),// WS2812 Led string, using RMT on ESP32
|
||||
#endif // NEO_HW_P9813
|
||||
#endif
|
||||
#ifdef USE_ARILUX_RF
|
||||
|
|
|
@ -17,6 +17,8 @@ RISING
|
|||
FALLING
|
||||
CHANGE
|
||||
|
||||
MAX_RMT
|
||||
|
||||
NONE = GPIO_NONE
|
||||
KEY1 = GPIO_KEY1
|
||||
KEY1_NP = GPIO_KEY1_NP
|
||||
|
|
Loading…
Reference in New Issue