forked from Makuna/NeoPixelBus
corrections (#769)
This commit is contained in:
@ -249,10 +249,12 @@ struct HtmlColor
|
||||
return Parse<T_HTMLCOLORNAMES>(name, MAX_HTML_COLOR_NAME_LEN + 1);
|
||||
}
|
||||
|
||||
#if !defined(ARDUINO_AVR_DIGISPARK)
|
||||
template <typename T_HTMLCOLORNAMES> size_t Parse(String const &name)
|
||||
{
|
||||
return Parse<T_HTMLCOLORNAMES>(name.c_str(), name.length() + 1);
|
||||
}
|
||||
#endif
|
||||
|
||||
// ------------------------------------------------------------------------
|
||||
// Converts this color code to its HTML4/CSS3 name
|
||||
|
@ -223,7 +223,7 @@ public:
|
||||
// rather than stalling for the latch.
|
||||
while (!IsReadyToUpdate())
|
||||
{
|
||||
#if !defined(ARDUINO_TEEONARDU_LEO) && !defined(ARDUINO_TEEONARDU_FLORA)
|
||||
#if !defined(ARDUINO_TEEONARDU_LEO) && !defined(ARDUINO_TEEONARDU_FLORA) && !defined(ARDUINO_AVR_DIGISPARK)
|
||||
yield(); // allows for system yield if needed
|
||||
#endif
|
||||
}
|
||||
@ -292,7 +292,7 @@ public:
|
||||
// rather than stalling for the latch.
|
||||
while (!NeoAvrMethodBase<T_SPEED>::IsReadyToUpdate())
|
||||
{
|
||||
#if !defined(ARDUINO_TEEONARDU_LEO) && !defined(ARDUINO_TEEONARDU_FLORA)
|
||||
#if !defined(ARDUINO_TEEONARDU_LEO) && !defined(ARDUINO_TEEONARDU_FLORA) && !defined(ARDUINO_AVR_DIGISPARK)
|
||||
yield(); // allows for system yield if needed
|
||||
#endif
|
||||
}
|
||||
|
@ -678,7 +678,7 @@ void send_data_16mhz_600(uint8_t* data,
|
||||
bit = 8;
|
||||
|
||||
asm volatile(
|
||||
"head40:" "\n\t" // Clk Pseudocode (T = 0)
|
||||
"head60:" "\n\t" // Clk Pseudocode (T = 0)
|
||||
"st %a[port], %[hi]" "\n\t" // 2 PORT = hi (T = 2)
|
||||
"sbrc %[byte] , 7" "\n\t" // 1-2 if(b & 0b10000000)
|
||||
"mov %[next] , %[hi]" "\n\t" // 0-1 next = hi (T = 4)
|
||||
@ -689,18 +689,18 @@ void send_data_16mhz_600(uint8_t* data,
|
||||
"rjmp .+0" "\n\t" // 2 nop nop (T = 13)
|
||||
"rjmp .+0" "\n\t" // 2 nop nop (T = 15)
|
||||
"dec %[bit]" "\n\t" // 1 bit-- (T = 16)
|
||||
"breq nextbyte40" "\n\t" // 1-2 if(bit == 0)
|
||||
"breq nextbyte60" "\n\t" // 1-2 if(bit == 0)
|
||||
"st %a[port], %[lo]" "\n\t" // 2 PORT = lo (T = 18) duplicate here improves high length for non byte boundary
|
||||
"rol %[byte]" "\n\t" // 1 b <<= 1 (T = 21)
|
||||
"nop" "\n\t" // 1 nop (T = 22)
|
||||
"rjmp .+0" "\n\t" // 2 nop nop (T = 24)
|
||||
"rjmp head40" "\n\t" // 2 -> head40 (next bit out)
|
||||
"nextbyte40:" "\n\t" // (T = 18)
|
||||
"rjmp head60" "\n\t" // 2 -> head40 (next bit out)
|
||||
"nextbyte60:" "\n\t" // (T = 18)
|
||||
"st %a[port], %[lo]" "\n\t" // 2 PORT = lo (T = 20) duplicate here improves high length while reducing interbyte
|
||||
"ldi %[bit] , 8" "\n\t" // 1 bit = 8 (T = 21)
|
||||
"ld %[byte] , %a[ptr]+" "\n\t" // 2 b = *ptr++ (T = 23)
|
||||
"sbiw %[count], 1" "\n\t" // 2 i-- (T = 25)
|
||||
"brne head40" "\n" // 1-2 if(i != 0) -> (next byte)
|
||||
"brne head60" "\n" // 1-2 if(i != 0) -> (next byte)
|
||||
: [port] "+e" (port),
|
||||
[byte] "+r" (b),
|
||||
[bit] "+r" (bit),
|
||||
|
@ -86,7 +86,7 @@ public:
|
||||
{
|
||||
while (!IsReadyToUpdate())
|
||||
{
|
||||
#if !defined(ARDUINO_TEEONARDU_LEO) && !defined(ARDUINO_TEEONARDU_FLORA)
|
||||
#if !defined(ARDUINO_TEEONARDU_LEO) && !defined(ARDUINO_TEEONARDU_FLORA) && !defined(ARDUINO_AVR_DIGISPARK)
|
||||
yield(); // allows for system yield if needed
|
||||
#endif
|
||||
}
|
||||
|
Reference in New Issue
Block a user