summaryrefslogtreecommitdiff
path: root/keyboards/fc660c/fc660c.c
diff options
context:
space:
mode:
Diffstat (limited to 'keyboards/fc660c/fc660c.c')
-rw-r--r--keyboards/fc660c/fc660c.c45
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