summaryrefslogtreecommitdiff
path: root/platforms
diff options
context:
space:
mode:
authorSergey Vlasov <vsu@altlinux.ru>2021-02-09 00:33:04 +0300
committerGitHub <noreply@github.com>2021-02-09 08:33:04 +1100
commit627ceebef3ed19eceba3642a830ffbf44f4a9e04 (patch)
tree261ce414affa8c15f4973036153ec770553138ef /platforms
parentd2f204c1e3ef92d774feded0ba05a145c2d03cf7 (diff)
ws2812: Fix number of nops for AVR at 8 MHz (#9559)
* 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.
Diffstat (limited to 'platforms')
0 files changed, 0 insertions, 0 deletions