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
				
			
		| 
						 | 
				
			
			@ -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"
 | 
			
		||||
 | 
			
		||||
#include "fc660c.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