Age | Commit message (Collapse) | Author |
|
|
|
let's see what happens!
|
|
|
|
inline', as it probably should have been previously, since it results is smaller and faster code in almost every case, since the body is only about 12 AVR instructions. ATtiny uses 'C' version since the AVR assembly code uses the hardware multplier, which the 12-years-old-now ATtiny doesn't have.
|
|
little smoother now and free from error noise in the low bits. This includes palette colors returned from ColorFromPalette, which are now slightly smoother. Also introduced a new lib8tion function, blend8( byte, byte, fract8). The new pixel blending should have negligible effect on code size, and it is ever so slightly faster than the old version with the error. Fixes #404.
|
|
scale16(foo,65535) now equals foo. Updated DemoReel100 to stay within range of NUM_LEDS on non-AVR platforms. Fixes #368.
|
|
right registers for andi. Fixes #302
|
|
effectively gave a range of [0,lim-1] when limiting the value of random. Oops, we've since fixed scale8 to stop doing that.
|
|
|
|
|
|
|
|
we're going to overwrite it. A little gcc asm shenanigans required to get this all right in terms of '=r' versus '+r' on the variable usage tag in the asm block. Basically the = versus + don't want to think about multi-byte variables. Coincidentally, neither do I.
|
|
Note that avg15, which is signed, has the same rounding behavior as avg7 (also signed), which is that it rounds up if the first argument is odd, and down if the first argument is even, resulting in a more even distribution of results -- but may result in mild surprise because avg15(a,b) is not always the same as (a+b)/2. If you're using this function though, you probably know enough to read the docs and/or not be TOO surprised.
|
|
|
|
|
|
format to doxygen as well.
|