- 
          
- 
                Notifications
    You must be signed in to change notification settings 
- Fork 112
Open
Description
ArduinoCore-sam/system/libsam/source/adc.c
Lines 632 to 635 in c893c62
| uint32_t ul_temp; | |
| ul_temp = p_adc->ADC_COR; | |
| p_adc->ADC_COR &= 0xfffeffffu << channel; | |
| p_adc->ADC_COR |= ul_temp; | 
By ORing with the previous value, the resulting of ANDing with the mask is undone, so the function results in no action being taken (once adc_enable_channel_differential_input is run, adc_disable_channel_differential_input doesn't work).
trivially with one bit, the truth table for (A and B) or A is:
| A | B | (A and B) or A | 
|---|---|---|
| T | T | T | 
| T | F | T | 
| F | T | F | 
| F | F | F | 
I believe the desired result could be obtained by ORing with the set value (basically running adc_enable_channel_differential_input), then XORing with the same value, but I'm not a good enough C programmer to know if this is the optimal way to do this.
Metadata
Metadata
Assignees
Labels
No labels