forked from forks/qmk_firmware
* ws2812: Fix number of nops for AVR at 8 MHz When trying to calculate the number of nops for AVR running at 8 MHz, the value of `w3` is expected to be negative; however, because `F_CPU` is defined in tmk_core/avr.mk with the `UL` suffix, the preprocessor performs its calculations using `unsigned long`, getting a very large positive number instead of the expected negative number; this then results in generating code with a huge number of nops. Fix the broken calculations by performing a comparison before subtraction, so that the unsigned number wraparound does not occur. The keyboard which triggers the problem is `handwired/promethium`; the buggy code silently compiles, but the resulting timings would be completely wrong. * ws2812: Clean up the code after the 8 MHz fix Remove old code which was unsuccessfully trying to clamp negative w1, w2 and w3 values to 0, and set w1_nops, w2_nops and w3_nops directly. |
||
|---|---|---|
| .. | ||
| analog.c | ||
| analog.h | ||
| apa102.c | ||
| apa102.h | ||
| glcdfont.c | ||
| hd44780.c | ||
| hd44780.h | ||
| i2c_master.c | ||
| i2c_master.h | ||
| i2c_slave.c | ||
| i2c_slave.h | ||
| serial.c | ||
| serial.h | ||
| spi_master.c | ||
| spi_master.h | ||
| ssd1306.c | ||
| ssd1306.h | ||
| ws2812.c | ||
| ws2812_i2c.c | ||