mirror of
https://github.com/espressif/esp-idf.git
synced 2025-10-03 10:30:58 +02:00
fix(adc): fix ESP32-P4 ADC2 wrong channel num
This commit is contained in:
@@ -359,13 +359,14 @@ static inline void adc_ll_digi_set_pattern_table(adc_unit_t adc_n, uint32_t patt
|
|||||||
uint8_t offset = (pattern_index % 4) * 6;
|
uint8_t offset = (pattern_index % 4) * 6;
|
||||||
adc_ll_digi_pattern_table_t pattern = {0};
|
adc_ll_digi_pattern_table_t pattern = {0};
|
||||||
|
|
||||||
pattern.val = (table.atten & 0x3) | ((table.channel & 0xF) << 2);
|
|
||||||
if (table.unit == ADC_UNIT_1){
|
if (table.unit == ADC_UNIT_1){
|
||||||
|
pattern.val = (table.atten & 0x3) | ((table.channel & 0xF) << 2);
|
||||||
tab = ADC.sar1_patt_tab[index].sar1_patt_tab; //Read old register value
|
tab = ADC.sar1_patt_tab[index].sar1_patt_tab; //Read old register value
|
||||||
tab &= (~(0xFC0000 >> offset)); //Clear old data
|
tab &= (~(0xFC0000 >> offset)); //Clear old data
|
||||||
tab |= ((uint32_t)(pattern.val & 0x3F) << 18) >> offset; //Fill in the new data
|
tab |= ((uint32_t)(pattern.val & 0x3F) << 18) >> offset; //Fill in the new data
|
||||||
ADC.sar1_patt_tab[index].sar1_patt_tab = tab; //Write back
|
ADC.sar1_patt_tab[index].sar1_patt_tab = tab; //Write back
|
||||||
} else {
|
} else {
|
||||||
|
pattern.val = (table.atten & 0x3) | (((table.channel + 2) & 0xF) << 2);
|
||||||
tab = ADC.sar2_patt_tab[index].sar2_patt_tab; //Read old register value
|
tab = ADC.sar2_patt_tab[index].sar2_patt_tab; //Read old register value
|
||||||
tab &= (~(0xFC0000 >> offset)); //clear old data
|
tab &= (~(0xFC0000 >> offset)); //clear old data
|
||||||
tab |= ((uint32_t)(pattern.val & 0x3F) << 18) >> offset; //Fill in the new data
|
tab |= ((uint32_t)(pattern.val & 0x3F) << 18) >> offset; //Fill in the new data
|
||||||
|
Reference in New Issue
Block a user