jackhill/qmk/firmware.git
2 years agof77: Add jackhill's layout jackhill
Jack Hill [Thu, 9 Sep 2021 04:02:17 +0000 (00:02 -0400)]
f77: Add jackhill's layout

* keyboards/xwhatsit/brand_new_model_f/f77/keymaps/jackhill/: Add a personal
layout for jackhill's f77 Brand New Model F keyboard.
* Makefile: Do not look for qmk utility to allow installing requirements
via Guix.
* guix-readme.md: Document Guix procedures.

2 years agobugfix xwhatsit purdea/wip
Purdea Andrei [Mon, 16 Aug 2021 00:20:47 +0000 (03:20 +0300)]
bugfix

2 years agoAdded brand new beamspring command by model F labs.
Purdea Andrei [Sun, 15 Aug 2021 20:05:17 +0000 (23:05 +0300)]
Added brand new beamspring command by model F labs.

2 years agof62_scumyc default keymap: adjust for best ansi operation.
Purdea Andrei [Sun, 15 Aug 2021 10:35:22 +0000 (13:35 +0300)]
f62_scumyc default keymap: adjust for best ansi operation.

2 years agof62_scumyc: fix to LAYOUT_all in info.json
Purdea Andrei [Sun, 15 Aug 2021 10:32:10 +0000 (13:32 +0300)]
f62_scumyc: fix to LAYOUT_all in info.json

2 years agoAdded brand new f62 scumyc/scumnc layout keyboard
Purdea Andrei [Sun, 15 Aug 2021 10:27:37 +0000 (13:27 +0300)]
Added brand new f62 scumyc/scumnc layout keyboard

2 years agobrand_new_model_f/f62: fixed some typos in comments
Purdea Andrei [Sun, 15 Aug 2021 09:36:47 +0000 (12:36 +0300)]
brand_new_model_f/f62: fixed some typos in comments

2 years agoDisplaywriter fixes
Purdea Andrei [Mon, 2 Aug 2021 20:20:15 +0000 (23:20 +0300)]
Displaywriter fixes

2 years agobugfix to fxt type 1/bigfoot keyboards.
Purdea Andrei [Sat, 3 Jul 2021 01:49:08 +0000 (04:49 +0300)]
bugfix to fxt type 1/bigfoot keyboards.

2 years agoinclude action_tapping.h in haptic.c. This seems to be needed only in this older...
Purdea Andrei [Mon, 21 Jun 2021 20:48:32 +0000 (23:48 +0300)]
include action_tapping.h in haptic.c. This seems to be needed only in this older base of QMK, this change can be dropped when updating in the future.

2 years agoEnabling NO_HAPTIC_MOD on all keyboards on which haptic feedback is enabled
Purdea Andrei [Mon, 21 Jun 2021 20:34:12 +0000 (23:34 +0300)]
Enabling NO_HAPTIC_MOD on all keyboards on which haptic feedback is enabled

2 years agoAdd Per Key exclusions for Haptic Feedback (#12386)
Roland Huber [Sun, 20 Jun 2021 02:28:54 +0000 (04:28 +0200)]
Add Per Key exclusions for Haptic Feedback (#12386)

Co-authored-by: Drashna Jaelre <drashna@live.com>
2 years agoBugfix
Purdea Andrei [Mon, 17 May 2021 21:39:15 +0000 (00:39 +0300)]
Bugfix

2 years agoAdded 3278_3279_led_78key keyboard
Purdea Andrei [Sat, 1 May 2021 19:25:47 +0000 (22:25 +0300)]
Added 3278_3279_led_78key keyboard

2 years agoAdded "5251_fake_temp" keyboard. It's a temporary synthesis of an 5251 with 3278...
Purdea Andrei [Sat, 1 May 2021 17:23:12 +0000 (20:23 +0300)]
Added "5251_fake_temp" keyboard. It's a temporary synthesis of an 5251 with 3278 top-buttons

2 years agoAdded support for additional direct pins
Purdea Andrei [Sat, 1 May 2021 16:59:05 +0000 (19:59 +0300)]
Added support for additional direct pins

2 years agoAdd support for LED_NON_BASE_LAYER_PIN
Purdea Andrei [Sun, 21 Feb 2021 18:09:20 +0000 (20:09 +0200)]
Add support for LED_NON_BASE_LAYER_PIN

2 years agoSwitch to HAPTIC_ENABLE_PIN, that is expected to land in core,
Purdea Andrei [Sat, 1 May 2021 14:40:29 +0000 (17:40 +0300)]
Switch to HAPTIC_ENABLE_PIN, that is expected to land in core,
and is more correct. Also disable solenoid in sleep and when
the keyboard is not yet configured

2 years agoUniversal: only init all 8 row pins with pull-up if all 8 row pins are used. If they...
Purdea Andrei [Sat, 1 May 2021 14:27:57 +0000 (17:27 +0300)]
Universal: only init all 8 row pins with pull-up if all 8 row pins are used. If they're not used for rows, they may be used for something else, and us touching them could affect the operation of whatever is on those pins.

2 years agohaptic: Feature to disable it when usb port is not configured or suspended.
Purdea Andrei [Sun, 25 Apr 2021 12:27:23 +0000 (15:27 +0300)]
haptic: Feature to disable it when usb port is not configured or suspended.

This also add support for specifying a LED pin to indicate haptic status,
and also adds support for a haptic-enable pin, which is useful to turn off
the boost converter on the solenoid driver.

2 years agoAdd power tracking api, to lufa only (not exactly what is trying to go into develop...
Purdea Andrei [Sat, 1 May 2021 11:19:32 +0000 (14:19 +0300)]
Add power tracking api, to lufa only (not exactly what is trying to go into develop now, but similar, should be compatible)

3 years agomacosx build of util: change paths to hidapi to be version-agnostic.
Purdea Andrei [Wed, 17 Mar 2021 21:00:39 +0000 (23:00 +0200)]
macosx build of util: change paths to hidapi to be version-agnostic.

3 years agojsoltren/XMIT build fixes for macOS
José Hiram Soltren [Sat, 13 Mar 2021 17:14:59 +0000 (11:14 -0600)]
jsoltren/XMIT build fixes for macOS

Builds Intel binary on macOS 10.15.7.
Demonstrated to work on ARM Macs.

3 years agof107: iso enter convention: in the layour macro place iso enter so that the key to...
Purdea Andrei [Wed, 17 Mar 2021 20:13:57 +0000 (22:13 +0200)]
f107: iso enter convention: in the layour macro place iso enter so that the key to its left is close bracket. in qmk there are keyboards that use both conventions, but so far the xwhatsit code all used the close bracket convention.

3 years agof107: fixing LAYOUT_105key_ansi info.json
Purdea Andrei [Wed, 17 Mar 2021 19:35:36 +0000 (21:35 +0200)]
f107: fixing LAYOUT_105key_ansi info.json

3 years agoFixed typo in LAYOUT_ALL label names
Abdelkafi Ahmed [Mon, 22 Feb 2021 16:44:41 +0000 (17:44 +0100)]
Fixed typo in LAYOUT_ALL label names

3 years agoUpdated default layout
Abdelkafi Ahmed [Mon, 22 Feb 2021 16:44:04 +0000 (17:44 +0100)]
Updated default layout

3 years agoAdded LAYOUT_106key_iso layout
Abdelkafi Ahmed [Mon, 22 Feb 2021 16:38:08 +0000 (17:38 +0100)]
Added LAYOUT_106key_iso layout

3 years agoAdded LAYOUT_105key_ansi layout
Abdelkafi Ahmed [Mon, 22 Feb 2021 16:35:44 +0000 (17:35 +0100)]
Added LAYOUT_105key_ansi layout

3 years agoAdded LAYOUT_103key_iso layout
Abdelkafi Ahmed [Mon, 22 Feb 2021 16:33:41 +0000 (17:33 +0100)]
Added LAYOUT_103key_iso layout

3 years agoChanged LAYOUT_102key_ansi matrix definition (3) reordered layout macros
Abdelkafi Ahmed [Mon, 22 Feb 2021 16:31:16 +0000 (17:31 +0100)]
Changed LAYOUT_102key_ansi matrix definition (3) reordered layout macros

3 years agoChanged LAYOUT_102key_ansi matrix definition (2) info.json changed
Abdelkafi Ahmed [Mon, 22 Feb 2021 16:31:16 +0000 (17:31 +0100)]
Changed LAYOUT_102key_ansi matrix definition (2) info.json changed

3 years agoChanged LAYOUT_102key_ansi matrix definition (1) Reuse LAYOUT_all for the 102-key...
Abdelkafi Ahmed [Mon, 22 Feb 2021 16:31:16 +0000 (17:31 +0100)]
Changed LAYOUT_102key_ansi matrix definition (1) Reuse LAYOUT_all for the 102-key layout macros

3 years agof62 original ibm: fixes to layouts (two rows were switched)
Purdea Andrei [Sun, 14 Mar 2021 01:26:38 +0000 (03:26 +0200)]
f62 original ibm: fixes to layouts (two rows were switched)

3 years agof62 original ibm: refactor so there's only one physical key position to matrix mappin...
Purdea Andrei [Sat, 13 Mar 2021 14:56:46 +0000 (16:56 +0200)]
f62 original ibm: refactor so there's only one physical key position to matrix mapping on LAYOUT_all, and other layouts use LAYOUT_all

3 years agoFixing buiild of xwhatsit/ibm/fat/xwhatsit_locklights, xwhatsit/ibm/fat/wcass_locklights
Purdea Andrei [Sat, 13 Mar 2021 13:15:58 +0000 (15:15 +0200)]
Fixing buiild of xwhatsit/ibm/fat/xwhatsit_locklights, xwhatsit/ibm/fat/wcass_locklights

3 years agoAdded F AT controller version for when it's configured with old style lock light...
Purdea Andrei [Sat, 13 Mar 2021 13:03:24 +0000 (15:03 +0200)]
Added F AT controller version for when it's configured with old style lock light connections.

3 years agoFixing original F62 kishsaver
Purdea Andrei [Sat, 13 Mar 2021 12:42:37 +0000 (14:42 +0200)]
Fixing original F62 kishsaver

3 years agomajor bugfix to layout to all wcass boards except brand new model f keyboards which...
Purdea Andrei [Tue, 16 Feb 2021 07:02:57 +0000 (09:02 +0200)]
major bugfix to layout to all wcass boards except brand new model f keyboards which were already okay.

3 years agomajor bugfix for when ellipse keyboards are used in conjunction with non-wcass contro...
Purdea Andrei [Tue, 16 Feb 2021 06:39:01 +0000 (08:39 +0200)]
major bugfix for when ellipse keyboards are used in conjunction with non-wcass controllers. Fortunetely nobody has been using these so far

3 years agoAdded note about regenerating kbd_defs.cpp
Purdea Andrei [Tue, 16 Feb 2021 02:14:26 +0000 (04:14 +0200)]
Added note about regenerating kbd_defs.cpp

3 years agoadded feature to help debugging control signals
Purdea Andrei [Tue, 16 Feb 2021 01:47:48 +0000 (03:47 +0200)]
added feature to help debugging control signals

3 years agoFixing use of parantheses in a number of macros. As far as I know no actual bug was...
Purdea Andrei [Mon, 8 Feb 2021 22:07:20 +0000 (00:07 +0200)]
Fixing use of parantheses in a number of macros. As far as I know no actual bug was caused by these so far.

3 years agoFix to 3178 column decoding
Purdea Andrei [Mon, 8 Feb 2021 22:00:46 +0000 (00:00 +0200)]
Fix to 3178 column decoding

3 years agotiny fix to default keymap
Purdea Andrei [Mon, 1 Feb 2021 06:50:39 +0000 (08:50 +0200)]
tiny fix to default keymap

3 years agogenerate_layout.py: slightly more usable error messages
Purdea Andrei [Mon, 1 Feb 2021 06:41:33 +0000 (08:41 +0200)]
generate_layout.py: slightly more usable error messages

3 years agoAdded initial support for xtant
Purdea Andrei [Mon, 1 Feb 2021 06:41:09 +0000 (08:41 +0200)]
Added initial support for xtant

3 years agofix columns of f50
Purdea Andrei [Wed, 30 Dec 2020 01:56:39 +0000 (03:56 +0200)]
fix columns of f50

3 years agobugfix to fxt_type_2 (3)
Purdea Andrei [Fri, 27 Nov 2020 09:50:37 +0000 (11:50 +0200)]
bugfix to fxt_type_2 (3)

3 years agobugfix to fxt_type_2 (2)
Purdea Andrei [Fri, 27 Nov 2020 09:34:47 +0000 (11:34 +0200)]
bugfix to fxt_type_2 (2)

3 years agobugfix to fxt_type_2
Purdea Andrei [Thu, 26 Nov 2020 23:57:29 +0000 (01:57 +0200)]
bugfix to fxt_type_2

3 years agoAdded F XT type 2 keyboard support (untested), and F XT type 1 / Bigfoot keyboard...
Purdea Andrei [Wed, 25 Nov 2020 01:17:56 +0000 (03:17 +0200)]
Added F XT type 2 keyboard support (untested), and F XT type 1 / Bigfoot keyboard support (untested).

3 years agoAdded the ability to use a board but redefine polarity
Purdea Andrei [Wed, 25 Nov 2020 00:48:06 +0000 (02:48 +0200)]
Added the ability to use a board but redefine polarity

3 years agoAdded note about also supporting beamfoot
Purdea Andrei [Tue, 24 Nov 2020 22:54:58 +0000 (00:54 +0200)]
Added note about also supporting beamfoot

3 years agoFix some typos
Purdea Andrei [Tue, 24 Nov 2020 18:37:15 +0000 (20:37 +0200)]
Fix some typos

3 years agoDebouncing documentation: Refactor, add some generic info, and merge into a single...
Purdea Andrei [Sun, 5 Jul 2020 12:20:02 +0000 (15:20 +0300)]
Debouncing documentation: Refactor, add some generic info, and merge into a single document

3 years agoquantum/debounce: rename debouncing algorithms according to Issue 8763
Purdea Andrei [Sat, 2 May 2020 16:01:53 +0000 (19:01 +0300)]
quantum/debounce: rename debouncing algorithms according to Issue 8763

This is the second attempt at implementation, with no ts_ and cy_ prefixes, since those will be implemented with macros.

3 years agoSolenoid: set default dwell to 4. Default of 12 isn't so great.
Purdea Andrei [Sat, 7 Nov 2020 13:19:16 +0000 (15:19 +0200)]
Solenoid: set default dwell to 4. Default of 12 isn't so great.

3 years agoUse default debounce type. There were some reports of less reliability with per-key...
Purdea Andrei [Sat, 7 Nov 2020 13:02:54 +0000 (15:02 +0200)]
Use default debounce type. There were some reports of less reliability with per-key debouncing, probably because it's slower.

3 years agoRevert "Changing default debounce type for all keyboards, to sym_pk"
Purdea Andrei [Sat, 7 Nov 2020 13:00:51 +0000 (15:00 +0200)]
Revert "Changing default debounce type for all keyboards, to sym_pk"

This reverts commit e78ee9569f2eb0fb54d3f824a2cb90703dc71b03.

3 years agoFix typo in coments
Purdea Andrei [Sat, 7 Nov 2020 12:58:46 +0000 (14:58 +0200)]
Fix typo in coments

3 years agotypewriter_65_85_95: added preliminary support
Purdea Andrei [Mon, 26 Oct 2020 07:48:50 +0000 (09:48 +0200)]
typewriter_65_85_95: added preliminary support

3 years agoadded support for FEXT
Purdea Andrei [Mon, 26 Oct 2020 05:34:40 +0000 (07:34 +0200)]
added support for FEXT

3 years agofssk: make default keymap more ansi-like
Purdea Andrei [Mon, 26 Oct 2020 05:06:57 +0000 (07:06 +0200)]
fssk: make default keymap more ansi-like

3 years agobufixes to _ansi and _iso layouts of fssk
Purdea Andrei [Mon, 26 Oct 2020 04:45:07 +0000 (06:45 +0200)]
bufixes to _ansi and _iso layouts of fssk

3 years agoAdded support for IBM F104 Unsaver
Purdea Andrei [Sat, 24 Oct 2020 17:58:03 +0000 (20:58 +0300)]
Added support for IBM F104 Unsaver

3 years agoadded support for IBM 3178
Purdea Andrei [Sat, 24 Oct 2020 07:12:19 +0000 (10:12 +0300)]
added support for IBM 3178

3 years agodisplaywriter: added support for xwhatsit controller, not tested
Purdea Andrei [Tue, 20 Oct 2020 05:44:15 +0000 (08:44 +0300)]
displaywriter: added support for xwhatsit controller, not tested

3 years agofssk and fat: remove incorrect comment
Purdea Andrei [Tue, 20 Oct 2020 04:34:07 +0000 (07:34 +0300)]
fssk and fat: remove incorrect comment

3 years agofssk readme: fixed image links
Purdea Andrei [Tue, 20 Oct 2020 04:19:10 +0000 (07:19 +0300)]
fssk readme: fixed image links

3 years ago5251/xwhatsit_rev4/readme.md: fix typo
Purdea Andrei [Tue, 20 Oct 2020 04:08:15 +0000 (07:08 +0300)]
5251/xwhatsit_rev4/readme.md: fix typo

3 years agodisplaywriter: enable per-key debouncing
Purdea Andrei [Tue, 20 Oct 2020 04:06:54 +0000 (07:06 +0300)]
displaywriter: enable per-key debouncing

3 years agofssk: added ansi and iso layouts
Purdea Andrei [Tue, 20 Oct 2020 03:46:13 +0000 (06:46 +0300)]
fssk: added ansi and iso layouts

3 years agoFSSK support added
Purdea Andrei [Tue, 20 Oct 2020 02:57:59 +0000 (05:57 +0300)]
FSSK support added

3 years agoutil: added another note to monitor window
Purdea Andrei [Mon, 19 Oct 2020 02:55:34 +0000 (05:55 +0300)]
util: added another note to monitor window

3 years agothrough_hole firmware variant renamed to universal
Purdea Andrei [Mon, 19 Oct 2020 02:51:02 +0000 (05:51 +0300)]
through_hole firmware variant renamed to universal

3 years agoAll model Fs: double the threshold offset used.
Purdea Andrei [Mon, 19 Oct 2020 02:03:37 +0000 (05:03 +0300)]
All model Fs: double the threshold offset used.

3 years agoChanging default debounce type for all keyboards, to sym_pk
Purdea Andrei [Fri, 4 Sep 2020 04:20:22 +0000 (07:20 +0300)]
Changing default debounce type for all keyboards, to sym_pk

3 years agoCAPSENSE_CAL_BINS bumped up to '5' for all model F keyboards
Purdea Andrei [Fri, 4 Sep 2020 03:59:47 +0000 (06:59 +0300)]
CAPSENSE_CAL_BINS bumped up to '5' for all model F keyboards

3 years agoAdded locklights support
Purdea Andrei [Mon, 19 Oct 2020 01:44:33 +0000 (04:44 +0300)]
Added locklights support

3 years agokeyboards/xwhatsit/sneakyrobb/beam104/through_hole: change default threshold offset
Purdea Andrei [Sun, 18 Oct 2020 01:03:51 +0000 (04:03 +0300)]
keyboards/xwhatsit/sneakyrobb/beam104/through_hole: change default threshold offset

3 years agomy keymap: add solenoid haptic keys
Purdea Andrei [Sun, 18 Oct 2020 01:03:18 +0000 (04:03 +0300)]
my keymap: add solenoid haptic keys

3 years agoFirst attempt at implementing displaywriter support
Purdea Andrei [Wed, 23 Sep 2020 00:53:56 +0000 (03:53 +0300)]
First attempt at implementing displaywriter support

3 years agoquantum/debounce/sym_pk: code review: cleaner code
Purdea Andrei [Sat, 11 Apr 2020 11:23:26 +0000 (14:23 +0300)]
quantum/debounce/sym_pk: code review: cleaner code

Co-Authored-By: Nick Brassel <nick@tzarc.org>
3 years agoquantum/debounce/sym_pk: Modifications for code readability according to code review (2)
Purdea Andrei [Sat, 4 Apr 2020 20:13:48 +0000 (23:13 +0300)]
quantum/debounce/sym_pk: Modifications for code readability according to code review (2)

3 years agoquantum/debounce/sym_pk: Modifications for code readability according to code review
Purdea Andrei [Sat, 4 Apr 2020 19:31:43 +0000 (22:31 +0300)]
quantum/debounce/sym_pk: Modifications for code readability according to code review

3 years agoquantum/debounce/sym_pk: delete comments and rename functions following code review
Purdea Andrei [Wed, 1 Apr 2020 04:27:23 +0000 (07:27 +0300)]
quantum/debounce/sym_pk: delete comments and rename functions following code review

3 years agoApply suggestions from code review
Purdea Andrei [Sun, 29 Mar 2020 09:52:04 +0000 (12:52 +0300)]
Apply suggestions from code review

Co-Authored-By: Ryan <fauxpark@gmail.com>
3 years agoquantum/debounce: Added sym_pk debounce algorithm
Purdea Andrei [Sat, 28 Mar 2020 07:02:14 +0000 (09:02 +0200)]
quantum/debounce: Added sym_pk debounce algorithm

3 years agoquantum/debounce/eager_pr and eager_pk: modifications for code readability according...
Purdea Andrei [Sat, 4 Apr 2020 20:12:41 +0000 (23:12 +0300)]
quantum/debounce/eager_pr and eager_pk: modifications for code readability according to code review. (2)

3 years agoquantum/debounce/eager_pr and eager_pk: modifications for code readability according...
Purdea Andrei [Sat, 4 Apr 2020 19:28:42 +0000 (22:28 +0300)]
quantum/debounce/eager_pr and eager_pk: modifications for code readability according to code review.

3 years agoquantum/debounce: Fix custom wrapping timers in eager_pr and eager_pk debounce algorithms
Purdea Andrei [Sat, 28 Mar 2020 04:35:24 +0000 (06:35 +0200)]
quantum/debounce: Fix custom wrapping timers in eager_pr and eager_pk debounce algorithms

Please see the below simulated sequence of events:
Column A is the 16-bit value returned by read_timer();
Column B is the value returned by custom_wrap_timer_read();
Column C is the original code: (timer_read() % MAX_DEBOUNCE)

    A,     B,     C
65530,    19,    30
65531,    20,    31
65532,    21,    32
65533,    22,    33
65534,    23,    34
65535,    24,    35
    0     25,     0
    1,    26,     1
    2,    27,     2
    3,    28,     3
    4,    29,     4
    5,    30,     5

read_timer() wraps about every 1.09 seconds, and so debouncing might
fail at these times without this commit.

3 years agotmk_core/common: Improve code generation for TIMER_DIFF* macros
Purdea Andrei [Sat, 28 Mar 2020 04:03:02 +0000 (06:03 +0200)]
tmk_core/common: Improve code generation for TIMER_DIFF* macros

Because of integer promotion the compiler is having a hard time generating
efficient code to calculate TIMER_DIFF* macros in some situations.
In the below example, the return value is "int", and this is causing the
trouble.

Example C code:

int __attribute__ ((noinline)) test(uint8_t current_timer, uint8_t start_timer)
{
    return TIMER_DIFF_8(current_timer, start_timer);
}

BEFORE: (with -Os)

00004c40 <test>:
    4c40:       28 2f           mov     r18, r24
    4c42:       30 e0           ldi     r19, 0x00       ; 0
    4c44:       46 2f           mov     r20, r22
    4c46:       50 e0           ldi     r21, 0x00       ; 0
    4c48:       86 17           cp      r24, r22
    4c4a:       20 f0           brcs    .+8             ; 0x4c54 <test+0x14>
    4c4c:       c9 01           movw    r24, r18
    4c4e:       84 1b           sub     r24, r20
    4c50:       95 0b           sbc     r25, r21
    4c52:       08 95           ret
    4c54:       c9 01           movw    r24, r18
    4c56:       84 1b           sub     r24, r20
    4c58:       95 0b           sbc     r25, r21
    4c5a:       93 95           inc     r25
    4c5c:       08 95           ret

AFTER: (with -Os)

00004c40 <test>:
    4c40:       86 1b           sub     r24, r22
    4c42:       90 e0           ldi     r25, 0x00       ; 0
    4c44:       08 95           ret

Note: the example is showing -Os but improvements can be seen at all optimization levels,
including -O0. We never use -O0, but I tested it to make sure that no extra code is
generated in that case.OA

3 years agotmk_core/common: Fixing TIMER_DIFF macro to calculate difference correctly after...
Purdea Andrei [Sat, 28 Mar 2020 03:34:11 +0000 (05:34 +0200)]
tmk_core/common: Fixing TIMER_DIFF macro to calculate difference correctly after the timer wraps.

Let's go through an example, using the following macro:

If the first timer read is 0xe4 and the second one is 0x32, the timer wrapped.
If the timer would have had more bits, it's new value would have been 0x132,
and the correct difference in time is 0x132 - 0xe4 = 0x4e

old code TIMER_DIFF_8(0x32, 0xe4) = 0xff - 0xe4 + 0x32 = 0x4d, which is wrong.
new code TIMER_DIFF_8(0x32, 0xe4) = 0xff + 1 - 0xe4 + 0x32 = 0x4e, which is correct.

This also gives a chance for a smart compiler to optimize the code using normal
integer overflow.

For example on AVR, the following C code:
uint8_t __attribute__ ((noinline)) test(uint8_t current_timer, uint8_t start_timer)
{
    return TIMER_DIFF_8(current_timer, start_timer);
}
With the original code, it gets translated to the following list of instructions:
00004c6e <test>:
    4c6e:       98 2f           mov     r25, r24
    4c70:       86 1b           sub     r24, r22
    4c72:       96 17           cp      r25, r22
    4c74:       08 f4           brcc    .+2             ; 0x4c78 <test+0xa>
    4c76:       81 50           subi    r24, 0x01       ; 1
    4c78:       08 95           ret
But with this commit, it gets translated to a single instruction:
00004c40 <test>:
    4c40:       86 1b           sub     r24, r22
    4c42:       08 95           ret

This unfortunately doesn't always work so nicely, for example the following C code:
int __attribute__ ((noinline)) test(uint8_t current_timer, uint8_t start_timer)
{
    return TIMER_DIFF_8(current_timer, start_timer);
}
(Note: return type changed to int)
With the original code it gets translated to:
00004c6e <test>:
    4c6e:       28 2f           mov     r18, r24
    4c70:       30 e0           ldi     r19, 0x00       ; 0
    4c72:       46 2f           mov     r20, r22
    4c74:       50 e0           ldi     r21, 0x00       ; 0
    4c76:       86 17           cp      r24, r22
    4c78:       20 f0           brcs    .+8             ; 0x4c82 <test+0x14>
    4c7a:       c9 01           movw    r24, r18
    4c7c:       84 1b           sub     r24, r20
    4c7e:       95 0b           sbc     r25, r21
    4c80:       08 95           ret
    4c82:       c9 01           movw    r24, r18
    4c84:       84 1b           sub     r24, r20
    4c86:       95 0b           sbc     r25, r21
    4c88:       81 50           subi    r24, 0x01       ; 1
    4c8a:       9f 4f           sbci    r25, 0xFF       ; 255
    4c8c:       08 95           ret
Wth this commit it gets translated to:
00004c40 <test>:
    4c40:       28 2f           mov     r18, r24
    4c42:       30 e0           ldi     r19, 0x00       ; 0
    4c44:       46 2f           mov     r20, r22
    4c46:       50 e0           ldi     r21, 0x00       ; 0
    4c48:       86 17           cp      r24, r22
    4c4a:       20 f0           brcs    .+8             ; 0x4c54 <test+0x14>
    4c4c:       c9 01           movw    r24, r18
    4c4e:       84 1b           sub     r24, r20
    4c50:       95 0b           sbc     r25, r21
    4c52:       08 95           ret
    4c54:       c9 01           movw    r24, r18
    4c56:       84 1b           sub     r24, r20
    4c58:       95 0b           sbc     r25, r21
    4c5a:       93 95           inc     r25
    4c5c:       08 95           ret
There is not much performance improvement in this case, however at least with this
commit it functions correctly.

Note: The following commit will improve compiler output for the latter example.

3 years agobrand_new_model_f: fixing typo in product descriptor string
Purdea Andrei [Fri, 4 Sep 2020 03:11:07 +0000 (06:11 +0300)]
brand_new_model_f: fixing typo in product descriptor string

3 years agoAdded some (so far unused) code to initialise unused pins to a known value by enablin...
Purdea Andrei [Sat, 22 Aug 2020 18:59:22 +0000 (21:59 +0300)]
Added some (so far unused) code to initialise unused pins to a known value by enabling the pull-up resistors.

3 years agoTH xwhatsit: enable internal pull-ups on rows. This will be necessary on some future...
Purdea Andrei [Sat, 22 Aug 2020 18:18:19 +0000 (21:18 +0300)]
TH xwhatsit: enable internal pull-ups on rows. This will be necessary on some future versions of TH controller

3 years agoBe explicit about the value of the OE pin. OE is active low.
Purdea Andrei [Sat, 22 Aug 2020 17:48:30 +0000 (20:48 +0300)]
Be explicit about the value of the OE pin. OE is active low.

3 years agobugfix to f122 iso layouts
Purdea Andrei [Thu, 6 Aug 2020 22:59:04 +0000 (01:59 +0300)]
bugfix to f122 iso layouts

3 years agoutil: added keyboard defs for at wcass and original xwhatsit controller variants
Purdea Andrei [Sun, 26 Jul 2020 18:41:03 +0000 (21:41 +0300)]
util: added keyboard defs for at wcass and original xwhatsit controller variants