diff options
| author | Ryan | 2023-09-14 05:57:10 +0200 |
|---|---|---|
| committer | GitHub | 2023-09-14 05:57:10 +0200 |
| commit | f9ed1e3ebc66b568a20848ae0f07052fbef5e4a8 (patch) | |
| tree | 10284c5b25b8c8c517995b42c23b087a9f6e0ddd /keyboards/fc660c/fc660c.c | |
| parent | 20cbe372a68762e0e09072bc6a3bdd987f7ab988 (diff) | |
fc660c/fc980c: clean up actuation point adjustment code (#21964)
Co-authored-by: Joel Challis <git@zvecr.com>
Diffstat (limited to 'keyboards/fc660c/fc660c.c')
| -rw-r--r-- | keyboards/fc660c/fc660c.c | 45 |
1 files changed, 38 insertions, 7 deletions
diff --git a/keyboards/fc660c/fc660c.c b/keyboards/fc660c/fc660c.c index 2054cd2818..50540cbfb9 100644 --- a/keyboards/fc660c/fc660c.c +++ b/keyboards/fc660c/fc660c.c @@ -14,16 +14,47 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see <http://www.gnu.org/licenses/>. */ -#include "quantum.h" -#ifdef ACTUATION_DEPTH_ADJUSTMENT -#include "actuation_point.h" -#endif +#include "fc660c.h" -void matrix_init_kb(void) { #ifdef ACTUATION_DEPTH_ADJUSTMENT +void matrix_init_kb(void) { adjust_actuation_point(ACTUATION_DEPTH_ADJUSTMENT); -#endif - matrix_init_user(); + matrix_init_user(); +} + +void actuation_point_up(void) { + // write RDAC register: lower value makes actuation point shallow + uint8_t rdac = ad5258_read_rdac(); + if (rdac == 0) { + ad5258_write_rdac(0); + } else { + ad5258_write_rdac(rdac - 1); + } +} + +void actuation_point_down(void) { + // write RDAC register: higher value makes actuation point deep + uint8_t rdac = ad5258_read_rdac(); + if (rdac == 63) { + ad5258_write_rdac(63); + } else { + ad5258_write_rdac(rdac + 1); + } } + +void adjust_actuation_point(int offset) { + ad5258_init(); + uint8_t rdac = ad5258_read_eeprom() + offset; + if (rdac > 63) { // protects from under and overflows + if (offset > 0) { + ad5258_write_rdac(63); + } else { + ad5258_write_rdac(0); + } + } else { + ad5258_write_rdac(rdac); + } +} +#endif |