fc660c/fc980c: clean up actuation point adjustment code (#21964)
Co-authored-by: Joel Challis <git@zvecr.com>
This commit is contained in:
parent
20cbe372a6
commit
f9ed1e3ebc
20 changed files with 254 additions and 630 deletions
|
@ -15,16 +15,46 @@ 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"
|
||||
#include "fc980c.h"
|
||||
|
||||
#ifdef ACTUATION_DEPTH_ADJUSTMENT
|
||||
#include "actuation_point.h"
|
||||
#endif
|
||||
|
||||
void matrix_init_kb(void) {
|
||||
#ifdef ACTUATION_DEPTH_ADJUSTMENT
|
||||
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
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue