@@ -22,7 +22,18 @@ static uint16_t magnet_threshold = MAGNET_THRESHOLD_DEFAULT;
2222/* matrix state(1:on, 0:off) */
2323static matrix_row_t matrix [MATRIX_ROWS ];
2424
25- void init_adc_col_pin (uint8_t column ) {
25+ // NRF_SAADC_INPUT_AIN0 has been used to detect battery voltage
26+ #define ADC_COL_PIN3 NRF_SAADC_INPUT_AIN1
27+ #define ADC_COL_PIN4 NRF_SAADC_INPUT_AIN2
28+ #define ADC_COL_PIN5 NRF_SAADC_INPUT_AIN3
29+ #define ADC_COL_PIN28 NRF_SAADC_INPUT_AIN4
30+ #define ADC_COL_PIN29 NRF_SAADC_INPUT_AIN5
31+ #define ADC_COL_PIN30 NRF_SAADC_INPUT_AIN6
32+ #define ADC_COL_PIN31 NRF_SAADC_INPUT_AIN7
33+ #define ADC_COL_PIN (NUM ) ADC_COL_PIN##NUM
34+
35+ // TODO pin_channel->period 多少合适? 10以内?
36+ void init_adc_col_pin (uint8_t pin ) {
2637 static nrf_saadc_channel_config_t channel_config = {
2738 .resistor_p = NRF_SAADC_RESISTOR_DISABLED ,
2839 .resistor_n = NRF_SAADC_RESISTOR_DISABLED ,
@@ -31,14 +42,14 @@ void init_adc_col_pin(uint8_t column) {
3142 .acq_time = NRF_SAADC_ACQTIME_10US ,
3243 .mode = NRF_SAADC_MODE_SINGLE_ENDED ,
3344 .burst = NRF_SAADC_BURST_DISABLED ,
34- .pin_p = (nrf_saadc_input_t )(column_pin_array [ column ] ),
45+ .pin_p = (nrf_saadc_input_t )(ADC_COL_PIN ( pin ) ),
3546 .pin_n = NRF_SAADC_INPUT_DISABLED
3647 };
3748
3849 static struct adc_channel_config pin_channel = {
3950 .adc_start = 0 ,
4051 .adc_finish = 0 ,
41- .period = DEBOUNCE , // TODO 多少合适?10以内?
52+ .period = DEBOUNCE ,
4253 .config = & channel_config ,
4354 };
4455
@@ -61,7 +72,7 @@ void matrix_init(void) {
6172
6273 // 初始化模拟引脚
6374 for (uint_fast8_t i = 0 ; i < MATRIX_COLS ; i ++ ) {
64- init_adc_col_pin (i );
75+ init_adc_col_pin (column_pin_array [ i ] );
6576 }
6677
6778 // 正常使用时禁用唤醒引脚
0 commit comments