Remove the DAC requirement that A0 must be PA02 #353
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Currently, in order to use the DAC output, each variant must define A0 so that it uses the physical pin PA02. This requirement creates some inflexibly when designing new boards.
This PR removes that requirement allowing for any pin (with PIN_ATTR_ANALOG) to be used for the DAC output, providing it is defined using the correct ADC channel AIN0. The pin must be described with ADC_Channel0, or optionally with DAC_Channel0.
Also the DAC_Channel0 definition does not actually seem to be used anywhere in the core except for the additional DAC entry in the pin description array (e.g. entry 43 for the zero or entry 47 for the mzero). Additionally, those pin entries currently cannot be used as the current analogWrite(pin, value) code will only configure the DAC output if the pin parameter is A0.