The ADC can raise the Window Comparator Interrupt (WCMP) flag in the Interrupt
Flags (ADCn.INTFLAGS) register and request an interrupt (WCMP) when the output of a
conversion or accumulation is above and/or below certain thresholds. The available modes
are:
- The result is below a threshold
- The result is above a threshold
- The result is inside a window (above
the lower threshold and below the upper threshold)
- The result is outside a window
(either under the lower threshold or above the upper threshold)
The thresholds are defined by writing to the Window Comparator Low and High
Threshold (ADCn.WINLT and ADCn.WINHT) registers. Writing to the Window Comparator Mode
(WINCM) bit field in the Control E (ADCn.CTRLE) register selects the Window mode to
use.
When accumulating multiple samples, the
comparison between the result and the threshold will happen after the last sample was
acquired. Consequently, the flag is raised only once, after taking the last sample of the
accumulation.
Assuming the ADC is already configured to run, follow these steps to use the
Window Comparator:
- 1.Set the required threshold(s) by
writing to the Window Comparator Low and High Threshold (ADCn.WINLT and ADCn.WINHT)
registers.
- 2.Optional: Enable the interrupt
request by writing a ‘
1
’ to the Window Comparator Interrupt Enable
(WCMP) bit in the Interrupt Control (ADCn.INTCTRL) register.
- 3.Enable the Window Comparator and
select a mode by writing a valid non-zero value to the Window Comparator Mode (WINCM)
bit field in the Control E (ADCn.CTRLE) register.
When accumulating samples, the window comparator thresholds are applied to the accumulated
value and not to each sample. Using left adjustment of the result will make the comparator
values independent of number of samples.